Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of TM_H when building...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-29  Mike Stump  <mikestump@comcast.net>
2
3         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
4         TM_H when building to avoid dependency loops.
5
6 2010-05-29  Jan Hubicka  <jh@suse.cz>
7
8         * cgraphunit.c (cgraph_materialize_clone): Only remove calles, refs and body;
9         not the whole node for masters of materialized clones.
10
11 2010-05-29  Mike Stump  <mikestump@comcast.net>
12
13         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
14
15 2010-05-29  Jan Hubicka  <jh@suse.cz>
16
17         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
18         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
19         use of clone_function_name.
20         * cgraph.h (cgraph_create_virtual_clone, 
21         cgraph_function_versioning): update prototypes.
22         (clone_function_name): Declare.
23         * ipa-cp.c (ipcp_insert_stage): Update call of
24         cgraph_create_virtual_clone.
25         * omp-low.c (create_omp_child_function_name): Use
26         cgraph_create_virtual_clone.
27         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28         (cgraph_function_versioning): Take SUFFIX argument; produce new name
29         and make decl local.
30
31 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
32
33         * vec.h: Include statistics.h
34         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
35         with VEC_H.
36
37 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
38
39         * c-lex.c: Do not include c-tree.h.
40         * c-pretty-print.c: Likewise.
41         * c-opts.c: Likewise.
42         * c-gimplify.c: Likewise.
43         * c-common.c: Likewise.
44         * c-dump.c: Likewise.  Include c-common.h.
45
46 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
47
48         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
49         before including diagnostic-core.h.
50         (c_cpp_error): New prototype moved from c-tree.h.
51         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
52         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
53         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
54         (c_cpp_error): Prototype moved to c-common.h.
55         * Makefile.in: Update dependency for C_COMMON_H.
56
57 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
58
59         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
60         * c-common.c (c_register_addr_space): Remove here.
61         * c-decl.c (c_register_addr_space): Re-add here.
62
63 2010-05-28  Mike Stump  <mikestump@comcast.net>
64
65         * config/darwin-c.c: Remove c-tree.h include.
66
67 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
68
69         * gcc.c: Include diagnostic.h.
70         (error_count): Remove.  All users changed to use errorcount.
71         (programname): Remove.  All users changed to use progname.
72         (fancy_abort, internal_error, fatal_error, error, warning, inform,
73         fnotice): Remove.
74         (execute): Don't include "Internal error" and bug reporting
75         information in argument of internal_error call.
76         (process_command): Don't increment error_count after calling
77         perror_with_name.
78         (input_filename): Rename to gcc_input_filename.  All users
79         changed.
80         (main): Call diagnostic_initialize.  Register delete_temp_files
81         with atexit.  Use seen_error to test for errors.
82         * gcc.h: Include diagnostic-core.h.
83         (fatal_error, error, warning): Remove.
84         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
85         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
86         (gcc.o): Update dependencies.
87
88 2010-05-28  Jeff Law  <law@redhat.com>
89
90         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
91         functions.
92         * ira.h (ira_bad_reload_regno): Declare
93         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
94
95         * ira-color.c (update_curr_costs): Free updated hard reg costs.
96         (ira_reassign_conflict_allocnos): Remove bogus asserts.
97         (allocno_reload_assign): Likewise.
98
99 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
100
101         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
102         build1_stat.
103
104 2010-05-28  Richard Guenther  <rguenther@suse.de>
105
106         PR lto/44312
107         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
108         Stream fixed-point constants mode.
109         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
110         and TYPE_PRECISION.
111         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
112         Stream fixed-point constants mode.
113         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
114         and TYPE_PRECISION.
115
116 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
117
118         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
119         only place it was called from.
120         (number_of_latch_executions): Do not return chrec_dont_know when the
121         may_be_zero is a runtime condition: instead, return a COND_EXPR
122         including the may_be_zero condition.
123         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
124         of nb_iterations.
125         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
126         COND_EXPRs.
127
128 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
129
130         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
131         generate COND_EXPRs for degenerate_phi_result.
132
133 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
134
135         PR middle-end/44293
136         * tree-if-conv.c (if_convertible_loop_p): Check the
137         if-convertibility of phi nodes in non predicated BBs.
138
139 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
140
141         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
142
143 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
144
145         PR driver/15303
146         * gcc.c (inform, warning, inform): New functions.
147         (fatal_ice): Rename to internal_error; change cmsgid parameter to
148         gmsgid.  All callers changed.
149         (notice): Rename to fnotice; add parameter fp.  All callers
150         changed.
151         (fatal_error): Rename to fatal_signal.  All users changed.
152         (fatal): Rename to fatal_error; change cmsgid parameter to
153         gmsgid.  All callers changed.
154         (process_command): Use warning instead of error for warnings.
155         (end_going_arg): Don't use _() around argument of error.
156         (do_spec_1): Use inform for message from %n specs.  Use warning
157         instead of error for warnings.
158         (main): Use inform for comparison messages.  Use warning for
159         message about unused linker input.
160         (error): Increment error_count.  Print "error: ".
161         * gcc.h (fatal): Change to fatal_error.
162         (warning): Declare.
163         * config/darwin-driver.c (darwin_default_min_version): Use warning
164         instead of fprintf for warnings.
165         * cppspec.c (lang_specific_driver): Use fatal_error instead of
166         fatal.
167
168 2010-05-28  Julian Brown  <julian@codesourcery.com>
169
170         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
171         (*thumb2_addsi3_compare0_scratch): New.
172         * config/arm/constraints.md (Pv): New.
173         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
174         for ARM mode only.
175         (*addsi3_compare0_scratch): Likewise.
176
177 2010-05-28  Jan Hubicka  <jh@suse.cz>
178
179         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
180         check.
181         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
182         only on local statics.
183
184 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
185
186         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
187
188 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
189
190         PR bootstrap/44314
191         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
192         (OPTION_GLIBC): Define.
193
194 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
195
196         PR debug/41048
197         * dwarf2out.c (double_int_type_size_in_bits): New function.
198         (round_up_to_align): Change first argument and return value to
199         double_int.
200         (field_byte_offset): Work internally on double_ints.
201
202         PR target/43636
203         * builtins.c (expand_movstr): Use a temporary pseudo instead
204         of target even when target is not NULL and not const0_rtx, but
205         fails movstr predicate.
206         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
207
208 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
209
210         * final.c (rest_of_clean_state): Use %m in errors instead of
211         strerror (errno).
212         * gengtype.c (read_input_list, close_output_files): Use xstrerror
213         instead of strerror.
214         * toplev.c (process_options): Use %m in errors instead of strerror
215         (errno).
216         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
217         (errno).
218
219 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
220
221         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
222         (ix86_canonical_va_list_type): Make static.  Add declaration.
223         (ix86_enum_va_list): Make static.  Reindent.
224         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
225         (ix86_canonical_va_list_type): Ditto.
226         (ix86_enum_va_list): Ditto.
227
228 2010-05-28  Richard Guenther  <rguenther@suse.de>
229
230         * lto-wrapper.c (run_gcc): With -save-temps generate a
231         user-visible ltrans filename.  Fixup ltrans unit numbering.
232
233 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
234
235         * c-common.c (c_common_nodes_and_builtins): Replace use
236         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
237         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
238         to ix86_enum_va_list.
239         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
240         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
241         (TARGET_ENUM_VA_LIST_P): Add hook description.
242         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
243         * target.h (gcc_target): Add enum_va_list hook.
244
245         PR bootstrap/44299
246         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
247         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
248         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
249
250 2010-05-28  Alan Modra  <amodra@gmail.com>
251
252         PR target/44266
253         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
254         emit_library_call machinery to set up __tls_get_addr calls.
255
256 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
257
258         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
259
260 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
261
262         Revert fix for PR c++/44188
263         * c-common.c (is_typedef_decl): Revert the moving of  this
264         definition ...
265         * tree.c (is_typedef_decl): ... here.
266         (typdef_variant_p): Revert the moving of this  definition
267         here from gcc/cp/tree.c.
268         * c-common.h (is_typedef_decl): Revert the moving of this
269         declaration ...
270         * tree.h (is_typedef_decl): ... here.
271         (typedef_variant_p): Revert the moving of this  declaration here
272         from gcc/cp/cp-tree.h
273         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
274         (gen_tagged_type_die): Revert the splitting out of ...
275         (gen_type_die_with_usage): ... this function. Revert the anonymous
276         tagged type handling.
277         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
278         typedefs naming anonymous tagged types.
279
280 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
281
282         * config/rs6000/rs6000-modes.def (PSImode): Delete.
283
284 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
285
286         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
287         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
288         throughout.
289         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
290         "xer" to "ca".
291         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
292         XER_REGS to CA_REGS throughout.
293         * config/rs6000/rs6000.h: Same.
294         (ADDITIONAL_REGISTER_NAMES): Add "xer".
295         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
296         that mode_iterator "P" is the size for arithmetic carries as well.
297         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
298
299 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
300
301         PR bootstrap/44255
302         * combine.c (struct rtx_subst_pair): Define unconditionally.
303         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
304         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
305         Call make_compound_operation on pair->to.
306         (propagate_for_debug): Don't call make_compound_operation here.
307         Always use simplify_replace_fn_rtx.
308
309 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
310
311         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
312         * config/xtensa/xtensa.c (override_options): Check
313           TARGET_FORCE_NO_PIC and set flag_pic.
314         * config/xtensa/xtensa.opt: Document -mforce-no-pic
315
316 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
317
318         PR bootstrap/44299
319         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
320         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
321
322 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
323
324         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
325         toplev.h.
326         * diagnostic.c: Don't include toplev.h.
327         (progname): Define.  Moved from toplev.c.
328         (seen_error): New function.
329         * diagnostic.h: Include diagnostic-core.h.
330         (diagnostic_t, emit_diagnostic): Don't declare here.
331         * toplev.c (progname): Move to toplev.c.
332         (emit_debug_global_declarations, compile_file, finalize,
333         do_compile, toplev_main): Use seen_error.
334         * toplev.h: Include diagnostic-core.h.
335         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
336         internal_error, warning, warning_at, error, error_n, error_at,
337         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
338         verbatim, fnotice, progname): Move to diagnostic-core.h.
339         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
340         (expand_builtin_expect): Use seen_error.
341         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
342         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
343         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
344         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
345         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
346         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
347         errorcount for errors.
348         * c-opts.c (c_common_finish): Use seen_error.
349         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
350         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
351         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
352         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
353         (get_coverage_counts): Use seen_error.
354         * dwarf2out.c (dwarf2out_finish): Use seen_error.
355         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
356         gimplify_body): Use seen_error.
357         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
358         * ipa-pure-const.c (gate_pure_const): Use seen_error.
359         * ipa-reference.c (gate_reference): Use seen_error.
360         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
361         * lambda-code.c: Include diagnostic-core.h instead of
362         diagnostic.h.
363         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
364         * lto-compress.c: Include diagnostic-core.h instead of
365         diagnostic.h.
366         * lto-section-in.c: Include diagnostic-core.h instead of
367         diagnostic.h.
368         * lto-streamer-out.c: Include diagnostic-core.h instead of
369         diagnostic.h.
370         * lto-streamer.c: Include diagnostic-core.h instead of
371         diagnostic.h.
372         (gate_lto_out): Use seen_error.
373         * matrix-reorg.c: Include diagnostic-core.h instead of
374         diagnostic.h.
375         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
376         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
377         (gate_expand_omp, lower_omp_1): Use seen_error.
378         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
379         (rest_of_decl_compilation, rest_of_type_compilation,
380         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
381         * tree-cfg.c (label_to_block_fn): Use seen_error.
382         * tree-inline.c (optimize_inline_calls): Use seen_error.
383         * tree-mudflap.c (mudflap_finish_file): Use
384         seen_error.
385         * tree-optimize.c (gate_all_optimizations,
386         gate_all_early_local_passes, gate_all_early_optimizations): Use
387         seen_error.
388         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
389         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
390         (varpool_remove_unreferenced_decls,
391         varpool_assemble_pending_decls): Use seen_error.
392         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
393         (TOPLEV_H, DIAGNOSTIC_H): Update.
394         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
395         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
396         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
397         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
398         coverage.o, lambda-code.o): Update dependencies.
399
400 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
401
402         PR c++/44188
403         * c-common.c (is_typedef_decl): Move this definition ...
404         * tree.c (is_typedef_decl): ... here.
405         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
406         * c-common.h (is_typedef_decl): Move this declaration ...
407         * tree.h (is_typedef_decl): ... here.
408         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
409         * dwarf2out.c (is_naming_typedef_decl): New function.
410         (gen_tagged_type_die): Split out of ...
411         (gen_type_die_with_usage): ... this function. When an anonymous
412         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
413         is emitted for the typedef.
414         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
415         anonymous tagged types.
416
417 2010-05-27  Jason Merrill  <jason@redhat.com>
418
419         * print-tree.c (debug_vec_tree): New fn.
420         (print_vec_tree): New fn.
421         * tree.h: Declare them.
422         * gdbinit.in (pvt): New command.
423
424         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
425
426         * gdbinit.in (pdd): New command.
427
428 2010-05-27  Jan Hubicka  <jh@suse.cz>
429
430         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
431         (update_caller_keys): Return early if there are no callers;
432         only update fibheap when decresing the key.
433         (update_callee_keys): Avoid recursion.
434         (decide_inlining_of_small_functions): When badness does not match;
435         re-insert into fibheap.
436
437 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
438
439         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
440         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
441         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
442         (ALL_HOST_OBJS): Now a union of the above two.
443         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
444         all files in ALL_HOST_FRONTEND_OBJS.
445         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
446
447         * c-common.c: Pretend to be a backend file by undefining
448         IN_GCC_FRONTEND (still need rtl.h here).
449
450 2010-05-27  Jan Hubicka  <jh@suse.cz>
451
452         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
453         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
454
455 2010-05-27  Jan Hubicka  <jh@suse.cz>
456
457         * sched-ebb.c: Rename struct deps to struct deps_desc.
458         * ddg.c: Likewise.
459         * sel-sched-ir.c: Likewise.
460         * sched-deps.c: Likewise.
461         * sched-int.h: Likewise.
462         * sched-rgn.c: Likewise.
463
464 2010-05-27  Jon Beniston <jon@beniston.com>
465
466         PR 43726
467         * config/lm32/lm32.h: Remove definition of 
468         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
469
470 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
471
472         PR lto/44230
473         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
474
475 2010-05-27  Richard Guenther  <rguenther@suse.de>
476
477         PR tree-optimization/44284
478         * tree-vect-stmts.c (vectorizable_assignment): Handle
479         sign-changing conversions as simple copy.
480
481 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
482
483         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
484         Bionic C library.
485         (__gthread_active_p): Check for pthread_create if compiling against
486         Bionic C library.
487
488 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
489
490         Support compilation for Android platform.  Reimplement -mandroid.
491
492         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
493         (*android*): Set ANDROID_DEFAULT.
494         (arm*-*-linux*): Include linux-android.h.
495         (arm*-*-eabi*): Don't include previous -mandroid implementation.
496         * config/arm/eabi.h: Remove, move Android-specific parts ...
497         * config/linux-android.h: ... here.  New file.
498         * config/arm/eabi.opt: Rename to ...
499         * config/linux-android.opt: ... this.
500         (mandroid): Allow -mno-android option.  Initialize based on
501         ANDROID_DEFAULT.
502         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
503         Move logic to corresponding LINUX_TARGET_* macros.
504         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
505         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
506         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
507         Android definitions.
508         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
509         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
510         Document.
511
512 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
513
514         Add support for Bionic C library
515
516         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
517         macro.
518         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
519         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
520
521         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
522         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
523         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
524         to support multiple C libraries.  Handle Bionic.
525         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
526         (BIONIC_DYNAMIC_LINKER64): Define.
527         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
528         Update.
529         (TARGET_HAS_SINCOS): Enable for Bionic.
530
531         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
532         the last option specified on command line take effect.
533         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
534         (mbionic): New.
535         (mglibc, muclibc): Update.
536
537         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
538         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
539         DEFAULT_LIBC.
540
541         * doc/invoke.texi (-mglibc, -muclibc): Update.
542         (-mbionic): Document.
543
544 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
545
546         * c-common.h (c_register_addr_space): Add prototype.
547         (ADDR_SPACE_KEYWORD): Remove.
548         * c-common.c (c_register_addr_space): New function.
549         (c_addr_space_name): Reimplement.
550         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
551
552         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
553         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
554
555         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
556         Remove TARGET_ADDR_SPACE_KEYWORDS.
557
558 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
559
560         * input.c: New file.
561         * input.h (main_input_filename): Move declaration to toplev.h.
562         * toplev.c (input_location, line_table): Move to input.c
563         * toplev.h (main_input_filename): Move declaration from input.h.
564         * tree.c (expand_location): Move to input.c.
565         * Makefile.in (OBJS-common): Add input.o.
566         (input.o): Add dependencies.
567
568 2010-05-27  Richard Guenther  <rguenther@suse.de>
569
570         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
571         for non-existant files.
572         (fork_execute): Mark args_name file as deleted.
573
574 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
575
576         PR bootstrp/44287
577         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
578         (narrow_signed_type): Likewise.
579
580 2010-05-26  Jan Hubicka  <jh@suse.cz>
581
582         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
583         edge only when checking is enabled; check using former_clone_of;
584         check inline clones too.
585         (cgraph_materialize_clone): Record former_clone_of pointer.
586         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
587         combining redirections; dump args_to_skip bitmap
588         (cgraph_materialize_all_clones): Do no redirection here.
589         * ipa-inline.c (inline_transform): Do redirection here.
590         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
591         cheking only).
592
593 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
594
595         * config/avr/avr-c.c: Do not include regs.h.
596         Include cpplib.h for cpp_define and tree.h for c-common.h.
597         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
598         * config/avr/t-avr: Fix dependencies for avr-c.o.
599
600 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
601
602         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
603         string instead of SYMBOL_REF rtx.
604         * rtl.h (set_stack_check_libfunc): Move prototype from here...
605         * libfuncs.h: ...to here.  Adjust for explow.c change.
606
607 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
608
609         * pretty-print.c: Don't include ggc.h.
610         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
611         (identifier_to_locale): Use them for allocation.
612         * pretty-print.h (identifier_to_locale_alloc,
613         identifier_to_locale_free): Declare.
614         * toplev.c (alloc_for_identifier_to_locale): New.
615         (general_init): Set identifier_to_locale_alloc and
616         identifier_to_locale_free.
617         * Makefile.in (pretty-print.o): Update dependencies.
618
619 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
620
621         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
622         pointer types if they have different alignment or mode.
623
624 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
625
626         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
627         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
628         * config/sparc/sparc-protos.h (function_value): Remove declaration.
629         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
630         sparc_function_value_regno_p): New functions.
631         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
632         TARGET_FUNCTION_VALUE_REGNO_P): Define.
633         (function_value): Rename to...
634         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
635         argument to 'outgoing'.
636         (function_arg_record_value, function_arg_union_value,
637         function_arg_vector_value): Update comment.
638
639 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
640
641         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
642         (fde_needed_for_eh_p): New predicate.
643         (output_call_frame_info): Use it throughout to decide whether FDEs
644         are needed for EH purpose.
645         (dwarf2out_begin_prologue): Reorder assignments.
646
647 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
648
649         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
650         special case loop->header.
651         (is_predicated): New.
652         (if_convertible_loop_p): Call it.
653
654 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
655
656         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
657         iterator in parameter.  Do not generate code during the analysis.
658         (tree_if_convert_cond_stmt): Removed.
659         (tree_if_convert_stmt): Removed.
660         (predicate_bbs): New.
661         (if_convertible_loop_p): Call predicate_bbs.
662         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
663         now contains all the analysis part.
664
665 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
666
667         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
668         statements in the analysis part.
669         (tree_if_convert_stmt): Update comment.
670         (remove_conditions_and_labels): New.
671         (combine_blocks): Call remove_conditions_and_labels.
672         (tree_if_conversion): Update comment.
673
674 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
675
676         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
677         than 2 predecessors or more than 2 successors.
678
679 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
680
681         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
682         of loops in which the data dependence analysis fails.
683
684 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
685
686         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
687         CDI_POST_DOMINATORS.
688         (tree_if_conversion): Same.
689
690 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
691
692         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
693
694 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
695
696         * tree-if-conv.c: Update copyright years.  Fix comments.
697         Fix indentation.
698
699 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
700
701         * builtin-types.def (BT_INT128): New primitive type.
702         (BT_UINT128): Likewise.
703         * c-common.c (c_common_r): Add __int128 keyword.
704         (c_common_type_for_size): Handle __int128.
705         (c_common_type_for_mode): Likewise.
706         (c_common_signed_or_unsigned_type): Likewise.
707         (c_common_nodes_and_builtins): Add builtin type
708         if target supports 128-bit integer scalar.
709         * c-common.h (enum rid): Add RID_INT128.
710         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
711         if target supports 128-bit integer scalar.
712         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
713         (finish_declspecs): Likewise.
714         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
715         (c_token_starts_declspecs): Likewise.
716         (c_parser_declspecs): Likewise.
717         (c_parser_attributes): Likewise.
718         (c_parser_objc_selector): Likewise.
719         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
720         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
721         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
722         * tree.c (make_or_reuse_type): Likewise.
723         (make_unsigned_type): Likewise.
724         (build_common_tree_nodes_2): Likewise.
725         * tree.h (enum integer_type_kind): Add itk_int128 and
726         itk_unsigned_int128.
727         (int128_integer_type_node): New define.
728         (int128_unsigned_type_node): New define.
729         * doc/extend.texi: Add documentation about __int128 type.
730
731 2010-05-26  Richard Guenther  <rguenther@suse.de>
732
733         * tree-ssa-sccvn.c (copy_nary): Adjust.
734         (copy_phis): Rename to ...
735         (copy_phi): ... this.  Adjust.
736         (copy_references): Rename to ...
737         (copy_reference): ... this.  Adjust.
738         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
739         result into the valid table.
740
741 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
742
743         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
744         insn-config.h, insn-codes.h, recog.h, and optabs.h.
745
746 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
747
748         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
749
750 2010-05-26  Richard Guenther  <rguenther@suse.de>
751
752         * opts.c (common_handle_option): Handle OPT_Ofast.
753
754 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
755
756         * diagnostic.c: Don't include opts.h.
757         (permissive_error_option): Define.
758         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
759         for classify_diagnostic.  Don't use memset for
760         classify_diagnostic.  Initialize new and recently added fields.
761         (diagnostic_classify_diagnostic): Use context->n_opts instead of
762         N_OPTS.
763         (diagnostic_report_diagnostic): Pass context parameter to
764         diagnostic_report_warnings_p.  Use option_enabled and option_name
765         hooks from context.
766         (emit_diagnostic): Use permissive_error_option.
767         (permerror): Likewise.
768         * diagnostic.h: Don't include options.h.
769         (struct diagnostic_context): Add n_opts, opt_permissive,
770         inhibit_warnings, warn_system_headers, option_enabled and
771         option_name fields.  Change classify_diagnostic to a pointer.
772         * opts-diagnostic.h: New file.
773         * opts.c: Include opts-diagnostic.h.
774         (common_handle_option): Set global_dc fields for -Wfatal-errors,
775         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
776         (option_name): New function.
777         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
778         (c_common_handle_option): Set global_dc->permissive for
779         -fpermissive.
780         * c-common.c (c_cpp_error): Save and restore
781         global_dc->warn_system_headers, not variable warn_system_headers.
782         * toplev.c: Include opts-diagnostic.h.
783         (general_init): Update call to diagnostic_initialize.  Set
784         global_dc->show_column, global_dc->option_enabled and
785         global_dc->option_name.
786         (process_options): Don't set global_dc fields here.
787         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
788         (diagnostic.o, opts.o, toplev.o): Update dependencies.
789
790 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
791
792         * config/picochip/picochip.md (movsi): Split a movsi from a
793         const after reload.
794
795 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
796
797         * ggc-zone.c: Update copyright year.
798         (poison_region): Mark memory for Valgrind as undefined before
799         memset () call and inaccessible afterwards.
800         (ggc_pch_total_size): Change type of i to int.
801
802 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
803
804         * ggc-common.c (ggc_free_overhead): Allow empty slot.
805
806 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
807
808         * ggc-common.c: Update copyright year.
809         (ggc_rlimit_bound): Remove prototype.  Compile only if
810         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
811         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
812         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
813         (ggc_min_heapsize_heuristic): Likewise.
814
815 2010-05-26  Richard Guenther  <rguenther@suse.de>
816
817         PR rtl-optimization/44164
818         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
819         no-common access-path disambiguation.
820         (indirect_ref_may_alias_decl_p): Adjust.
821         (indirect_refs_may_alias_p): Likewise.
822         (refs_may_alias_p_1): Likewise.
823
824 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
825
826         * c-typeck.c: Do not include expr.h.
827
828 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
829
830         * rtl.h (decl_default_tls_model): Move prototype from here...
831         * output.h: ...to here.
832         * c-decl.c: Do not include rtl.h.
833         * c-pragma.c: Likewise.
834         * c-parser.c: Likewise.
835         * c-gimplify.c: Likewise.  And also not hard-reg-set.
836         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
837         FIXME note for it.  Add a FIXME note for expr.h.
838         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
839         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
840         defined.
841
842 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
843
844         PR target/44199
845         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
846         or total_size is larger than red zone size for non-V4 ABI, emit a
847         stack_tie resp. frame_tie insn before stack pointer restore.
848         * config/rs6000/rs6000.md (frame_tie): New insn.
849
850 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
851
852         * function.h (struct function): Add can_throw_non_call_exceptions bit.
853         * lto-streamer-in.c (input_function): Stream it in.
854         * lto-streamer-out.c (output_function): Stream it out.
855         * function.c (allocate_struct_function): Set it.
856         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
857         for flag_non_call_exceptions.
858         * cfgbuild.c (control_flow_insn_p): Likewise.
859         (make_edges): Likewise.
860         * cfgexpand.c (expand_stack_alignment): Likewise.
861         * combine.c (distribute_notes): Likewise.
862         * cse.c (cse_extended_basic_block): Likewise.
863         * except.c (insn_could_throw_p): Likewise.
864         * gcse.c (simple_mem): Likewise.
865         * ipa-pure-const.c (check_call): Likewise.
866         (check_stmt ): Likewise.
867         * lower-subreg.c (lower-subreg.c): Likewise.
868         * optabs.c (emit_libcall_block): Likewise.
869         (prepare_cmp_insn): Likewise.
870         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
871         * postreload.c (rest_of_handle_postreload): Likewise.
872         * reload1.c (reload_as_needed): Likewise.
873         (emit_input_reload_insns): Likewise.
874         (emit_output_reload_insns): Likewise.
875         (fixup_abnormal_edges): Likewise.
876         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
877         * store-motion.c (find_moveable_store): Likewise.
878         * tree-eh.c (stmt_could_throw_p): Likewise.
879         (tree_could_throw_p): Likewise.
880         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
881         * config/arm/arm.c (arm_expand_prologue): Likewise.
882         (thumb1_expand_prologue): Likewise.
883         * config/rx/rx.md (cbranchsf4): Likewise.
884         (cmpsf): Likewise.
885         * config/s390/s390.c (s390_emit_prologue): Likewise.
886         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
887         (inline_forbidden_into_p): New predicate.
888         (expand_call_inline): Use it to forbid inlining.
889         (tree_can_inline_p): Likewise.
890
891 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
892
893         * config/i386/i386-c.c: Do not include rtl.h.
894         * config/i386/t-i386: Update dependencies.
895
896 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
897
898         * attribs.c: Do not include rtl.h.
899         * Makefile.in: Update dependencies.
900
901 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
902
903         * double-int.h (double_int_and): New.
904         * combine.c (try_combine): Clean up, use double_int_* and
905         immed_double_int_const functions.
906
907 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
908
909         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
910         stderr to /dev/null instead of grep -q.
911         * configure: Regenerate.
912
913 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
914
915         * Makefile.in (EXCEPT_H): Fix typo.
916
917 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
918
919         * ira-build.c (update_conflict_hard_reg_costs): New.
920         (ira_build): Call update_conflict_hard_reg_costs.
921
922 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
923
924         PR debug/41371
925         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
926         ENABLE_CHECKING.
927         (intersect_loc_chains): Walk the s2var's loc_chain together
928         with s1node chain as long as the locations are equal, don't
929         call find_loc_in_1pdv in that case.
930
931         PR debug/42801
932         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
933         (copy_bind_expr): ... instead of here.
934         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
935         if the block hasn't been remapped.
936         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
937         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
938
939 2010-05-25  Richard Guenther  <rguenther@suse.de>
940
941         PR middle-end/44069
942         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
943         out-of-bounds array accesses.
944
945 2010-05-25  Richard Guenther  <rguenther@suse.de>
946
947         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
948         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
949         (run_gcc): Re-organize to make cleanup easier.
950
951 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
952
953         * config/s390/s390.c (optimization_options): Fix and move the
954         flag_prefetch_loop_arrays override ...
955         (override_options): ... here.
956
957 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
958
959         * diagnostic.c: Don't include plugin.h.
960         (diagnostic_report_diagnostic): Don't handle plugins specially
961         here.  Pass context to internal_error callback.
962         * diagnostic.h (struct diagnostic_context): Add context parameter
963         to internal_error callback.
964         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
965         * plugin.h (struct diagnostic_context): Declare.
966         (warn_if_plugins, plugins_internal_error_function): Declare.
967         * toplev.c (general_init): Set global_dc->internal_error.
968         * Makefile.in (diagnostic.o): Update dependencies.
969
970 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
971
972         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
973         * config/rs6000/t-darwin64: New.
974         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
975         build crt2.
976
977 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
978
979         PR 44203
980         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
981         match the original (and intended) behaviour before r159557.  This
982         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
983         in two ways.
984
985 2010-05-25  Richard Guenther  <rguenther@suse.de>
986
987         * doc/invoke.texi: Document -Ofast.
988         * target.h (struct gcc_target): Add handle_ofast.
989         * target-def.h (TARGET_HANDLE_OFAST): Add.
990         (TARGET_INITIALIZER): Adjust.
991         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
992         * common.opt (Ofast): Add.
993
994 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
995
996         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
997         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
998
999 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1000
1001         PR target/43610
1002         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
1003         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
1004         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
1005         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
1006
1007 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1008
1009         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
1010         DW_OP_minus with negated offset instead of DW_OP_plus.
1011         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
1012
1013 2010-05-25  Wei Guozhi  <carrot@google.com>
1014
1015         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
1016         tst instruction and a new alternative.
1017         * config/arm/constraints.md (Pu): New constraint.
1018
1019 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
1020
1021         * function.c (assign_stack_local_1): Initialize variable
1022         to avoid warning when bootstrapping at -O3.
1023
1024 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
1025
1026         * configure.ac (all_lang_makefiles): Remove everything related to it.
1027         * configure: Regenerate.
1028         * Makefile.in: Fix reference to ada Make-lang.in.
1029         Remove support for LANG_MAKEFILES.
1030
1031 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
1032             Sandra Loosemore  <sandra@codesourcery.com>
1033
1034         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
1035         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
1036         description.  Add arm_neon_fp16_ok.
1037         (Add Options): Add arm_neon and arm_neon_fp16.
1038
1039 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
1040
1041         * diagnostic.c: Don't include flags.h.
1042         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
1043         context parameters.  Check flags in the context passed as a parameter.
1044         (diagnostic_build_prefix): Add context parameter.  Check
1045         show_column flag in context.
1046         (diagnostic_action_after_output): Check fatal_errors flag in context.
1047         (diagnostic_report_current_module): Check show_column flag in context.
1048         (default_diagnostic_starter): Update call to
1049         diagnostic_build_prefix.
1050         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
1051         (emit_diagnostic): Pass context to permissive_error_kind.
1052         (permerror): Pass context to permissive_error_kind.
1053         * diagnostic.h (struct diagnostic_context): Add show_column,
1054         pedantic_errors, permissive and fatal_errors fields.
1055         (diagnostic_build_prefix): Update prototype.
1056         * langhooks.c
1057         * toplev.c (process_options): Set flags in global_dc from
1058         flag_show_column, flag_pedantic_errors, flag_permissive,
1059         flag_fatal_errors.
1060         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
1061         to diagnostic_build_prefix.
1062         * Makefile.in (diagnostic.o): Update dependencies.
1063
1064 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1065
1066         * config/i386/ia32intrin.h (__crc32q): Define only if
1067         __SSE4_2__ is defined.
1068
1069 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
1070
1071         PR target/44132
1072         PR middle-end/43602
1073         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
1074         DECL_VISIBILITY_SPECIFIED.
1075         (emutls_decl): Set DECL_PRESERVE_P and copy
1076         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
1077         (emutls_finalize_control_var): New callback.
1078         (emutls_finish): Finalize emutls control variables.
1079         * toplev.c (compile_file): Move the call to emutls_finish ()
1080         before varpool_assemble_pending_decls ().
1081
1082 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
1083
1084         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
1085         added to the preprocessor condition.
1086
1087 2010-05-24  Paul Brook  <paul@codesourcery.com>
1088
1089         * gengtype-lex.l: Add HARD_REG_SET.
1090         * expr.c (expand_expr_real_1): Record writes to hard registers.
1091         * function.c (rtl_data): Add asm_clobbers.
1092         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
1093         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
1094         Use crtl->asm_clobbers.
1095
1096 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1097
1098         * doc/makefile.texi (Makefile): Mention stages 'profile'
1099         and 'feedback' for profiledbootstrap.
1100
1101 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1102
1103         PR target/44245
1104         * config/i386/i386.c (def_builtin): Properly check
1105         OPTION_MASK_ISA_64BIT.
1106
1107 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
1108
1109         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1110         typedefs with different but compatible types.  Allow duplicate
1111         typedefs with the same type except for pedantic non-C1X, but give
1112         warning for variably modified types.
1113         * c-typeck.c (tagged_types_tu_compatible_p,
1114         function_types_compatible_p, type_lists_compatible_p,
1115         comptypes_internal): Add parameter different_types_p; set
1116         *different_types_p for different but compatible types.  All
1117         callers changed.
1118         (comptypes_check_different_types): New.
1119         * c-tree.h (comptypes_check_different_types): Declare.
1120
1121 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1122
1123         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
1124         * jump.c: Include basic-block.h.
1125         * profile.c: Likewise.
1126         * tree-profile.c: Likewise.
1127         * coverage.c: Likewise.
1128         * basic-block.h (optimize_function_for_size_p): Move to function.h.
1129         (optimize_function_for_speed_p): Likewise.
1130         * function.h (optimize_function_for_size_p,
1131         optimize_function_for_speed_p): Moved here from basic-block.h.
1132         * Makefile.in: Update dependencies.
1133
1134 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1135
1136         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1137         before calling make; allow override through $MAKE.
1138         * doc/invoke.texi (Optimize Options): Document override.
1139
1140 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
1141
1142         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1143         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1144         (rs6000_mode_dependent_address_ptr): Make static.
1145         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1146         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1147         Remove.
1148
1149 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1150
1151         PR target/43869
1152         * config/i386/i386.c: Make sure that the correct regparm is passed.
1153
1154 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1155
1156         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1157         * sbitmap.c: ...to here to internalize sbitmap element access.
1158         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1159         Explain why basic-block.h is included.
1160         * function.h: Include tm.h for CUMULATIVE_ARGS.
1161         * Makefile.in: Update dependencies.
1162
1163 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1164
1165         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1166         New core types.
1167         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1168         * sbitmap.c: Include sbitmap.h.
1169         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1170         hard-reg-set.h.  Split everything related to regsets out from here...
1171         * regset.h: ...to here.  New file.
1172         * df.h: Include regset.h and sbitmap.h.
1173         * tree-flow.h: Likewise.
1174         * cfgloop.h: Likewise.
1175         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1176         * cgraph.h: Include vec.h and function.h.
1177         * reload.h (struct insn_chain): Change types of live_throughout
1178         and dead_or_set from regset_head to bitmap_head.
1179         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1180         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1181         spilled_regs from regset_head to bitmap_head to avoid dependency
1182         in regset.h.
1183         * sel-sched-ir.h: Include regset.h.
1184         * reload.c: Include df.h before reload.h.
1185         * caller-save.c: Likewise.
1186         * reload1.c: Likewise.
1187         * ira.c: Likewise.
1188         (mark_elimination): Update type of r to bitmap, consistent with
1189         DF_LR_IN.
1190         * dominance.c: Include bitmap.h.
1191         * modulo-sched.c: Include df.h.
1192         * cfganal.c: Include bitmap.h and sbitmap.h.
1193         * cfgbuild.c: Include sbitmap.h.
1194         * lcm.c: Include sbitmap.h.
1195         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1196         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1197         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1198         * cselib.c: Include bitmap.h.
1199         * tree-optimize.c: Include regset.h.
1200         * stmt.c: Include bitmap.h.
1201         * Makefile.in: Update dependencies.
1202
1203 2010-05-22  Jan Hubicka  <jh@suse.cz>
1204
1205         * cgraph.h (struct varpool_node): Add same_comdat_group.
1206         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1207         pointer.
1208         (output_varpool): Update call of lto_output_varpool_node.
1209         (input_varpool): Read same_comdat_group pointer.
1210         (input_varpool_1): Fixup same_comdat_group pointer.
1211         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1212         group is needed, all are.
1213         * varpool.c (varpool_remove_node): Remove node from same comdat group
1214         linklist too.
1215         (varpool_analyze_pending_decls): Walk same comdat groups.
1216
1217 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1218
1219         * rtl.h (union rtunion_def): Remove rt_bit member.
1220         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1221         * print-rtl (print_rtx): Do not print the member.
1222         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1223         * gengenrtl.c (type_from_format): Likewise.
1224         (accessor_from_format): Likewise.
1225
1226 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1227
1228         * dbgcnt.c: Include toplev.h instead of errors.h.
1229         * ira-emit.c: Don't include errors.h.
1230         * ira.c: Include toplev.h instead of errors.h.
1231         * lto-compress.c: Include toplev.h instead of errors.h.
1232         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1233         ira.o, dbgcnt.o): Update dependencies.
1234
1235 2010-05-22  Richard Guenther  <rguenther@suse.de>
1236
1237         * gimple.c (gimple_types_compatible_p): Check type qualifications
1238         before merging pointer to complete and pointer to incomplete type.
1239         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1240         we use our own resolution algorithm.  The gold linker plugin
1241         doesn't do the job we want it to do here.
1242
1243 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1244
1245         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1246         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1247         (sparc_mode_dependent_address_p): New function.
1248
1249 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1250
1251         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1252
1253         * timevar.c: Do not include any core headers.
1254         (timevar_print): De-i18n-ize.
1255         (print_time): Likewise.
1256         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1257
1258 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1259
1260         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1261         langhooks-def.h.
1262         (diagnostic_initialize): Initialize x_data not last_function.
1263         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1264         (default_diagnostic_starter): Call
1265         diagnostic_report_current_module not
1266         diagnostic_report_current_function.
1267         (diagnostic_report_diagnostic): Initialize x_data not
1268         abstract_origin.
1269         (verbatim): Likewise.
1270         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1271         x_data.
1272         (struct diagnostic_context): Change last_function to x_data.
1273         (diagnostic_auxiliary_data): Replace with
1274         diagnostic_context_auxiliary_data and
1275         diagnostic_info_auxiliary_data.
1276         (diagnostic_last_function_changed, diagnostic_set_last_function,
1277         diagnostic_report_current_function): Move to tree-diagnostic.h.
1278         (print_declaration, dump_generic_node, print_generic_stmt,
1279         print_generic_stmt_indented, print_generic_expr,
1280         print_generic_decl, debug_c_tree, dump_omp_clauses,
1281         print_call_name, debug_generic_expr, debug_generic_stmt,
1282         debug_tree_chain, default_tree_printer): Move to
1283         tree-pretty-print.h.
1284         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1285         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1286         gimple-pretty-print.h.
1287         * pretty-print.c: Don't include tree.h
1288         (pp_base_format): Don't handle %K here.
1289         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1290         * pretty-print.h (text_info): Change abstract_origin to x_data.
1291         (pp_tree_identifier, pp_unsupported_tree,
1292         pp_base_tree_identifier): Move to tree-pretty-print.h.
1293         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1294         tree-pretty-print.h: New files.
1295         * tree-pretty-print.c: Include tree-pretty-print.h.
1296         (percent_K_format): New.  Moved from pretty-print.c.
1297         (pp_base_tree_identifier): Move from pretty-print.c.
1298         * c-objc-common.c: Include tree-pretty-print.h.
1299         (c_tree_printer): Handle %K here.
1300         * langhooks.c: Include tree-diagnostic.h.
1301         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1302         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1303         (default_tree_printer): Handle %K using percent_K_format.
1304         (general_init): Use default_tree_diagnostic_starter.
1305         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1306         (free_lang_data): Use default_tree_diagnostic_starter.
1307         * c-pretty-print.c: Include tree-pretty-print.h.
1308         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1309         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1310         * dwarf2out.c: Include tree-pretty-print.h.
1311         * except.c: Include tree-pretty-print.h.
1312         * gimple-pretty-print.c: Include tree-pretty-print.h and
1313         gimple-pretty-print.h.
1314         * gimplify.c: Include tree-pretty-print.h.
1315         * graphite-poly.c: Include tree-pretty-print.h and
1316         gimple-pretty-print.h.
1317         * ipa-cp.c: Include tree-pretty-print.h.
1318         * ipa-inline.c: Include gimple-pretty-print.h.
1319         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1320         * ipa-pure-const.c: Include gimple-pretty-print.h.
1321         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1322         gimple-pretty-print.h.
1323         * ipa-type-escape.c: Include tree-pretty-print.h.
1324         * print-rtl.c: Include tree-pretty-print.h.
1325         * print-tree.c: Include gimple-pretty-print.h.
1326         * sese.c: Include tree-pretty-print.h.
1327         * tree-affine.c: Include tree-pretty-print.h.
1328         * tree-browser.c: Include tree-pretty-print.h.
1329         * tree-call-cdce.c: Include gimple-pretty-print.h.
1330         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1331         * tree-chrec.c: Include tree-pretty-print.h.
1332         * tree-data-ref.c: Include tree-pretty-print.h and
1333         gimple-pretty-print.h.
1334         * tree-dfa.c: Include tree-pretty-print.h.
1335         * tree-if-conv.c: Include tree-pretty-print.h and
1336         gimple-pretty-print.h.
1337         * tree-inline.c: Include tree-pretty-print.h.
1338         * tree-into-ssa.c: Include tree-pretty-print.h and
1339         gimple-pretty-print.h.
1340         * tree-nrv.c: Include tree-pretty-print.h.
1341         * tree-object-size.c: Include tree-pretty-print.h and
1342         gimple-pretty-print.h.
1343         * tree-outof-ssa.c: Include tree-pretty-print.h and
1344         gimple-pretty-print.h.
1345         * tree-parloops.c: Include tree-pretty-print.h and
1346         gimple-pretty-print.h.
1347         * tree-predcom.c: Include tree-pretty-print.h and
1348         gimple-pretty-print.h.
1349         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1350         gimple-pretty-print.h.
1351         * tree-sra.c: Include tree-pretty-print.h.
1352         * tree-ssa-address.c: Include tree-pretty-print.h.
1353         * tree-ssa-alias.c: Include tree-pretty-print.h.
1354         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1355         gimple-pretty-print.h.
1356         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1357         * tree-ssa-copy.c: Include tree-pretty-print.h and
1358         gimple-pretty-print.h.
1359         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1360         * tree-ssa-dce.c: Include tree-pretty-print.h and
1361         gimple-pretty-print.h.
1362         * tree-ssa-dom.c: Include tree-pretty-print.h and
1363         gimple-pretty-print.h.
1364         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1365         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1366         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1367         * tree-ssa-live.c: Include tree-pretty-print.h and
1368         gimple-pretty-print.h.
1369         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1370         gimple-pretty-print.h.
1371         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1372         gimple-pretty-print.h.
1373         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1374         gimple-pretty-print.h.
1375         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1376         gimple-pretty-print.h.
1377         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1378         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1379         * tree-ssa-operands.c: Include tree-pretty-print.h and
1380         gimple-pretty-print.h.
1381         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1382         gimple-pretty-print.h.
1383         * tree-ssa-pre.c: Include tree-pretty-print.h and
1384         gimple-pretty-print.h.
1385         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1386         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1387         gimple-pretty-print.h.
1388         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1389         gimple-pretty-print.h.
1390         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1391         * tree-ssa-ter.c: Include tree-pretty-print.h and
1392         gimple-pretty-print.h.
1393         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1394         * tree-ssa.c: Include tree-pretty-print.h and
1395         gimple-pretty-print.h.
1396         * tree-stdarg.c: Include gimple-pretty-print.h.
1397         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1398         * tree-tailcall.c: Include tree-pretty-print.h and
1399         gimple-pretty-print.h.
1400         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1401         gimple-pretty-print.h.
1402         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1403         gimple-pretty-print.h.
1404         * tree-vect-loop.c: Include tree-pretty-print.h and
1405         gimple-pretty-print.h.
1406         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1407         * tree-vect-slp.c: Include tree-pretty-print.h and
1408         gimple-pretty-print.h.
1409         * tree-vect-stmts.c: Include tree-pretty-print.h and
1410         gimple-pretty-print.h.
1411         * tree-vectorizer.c: Include tree-pretty-print.h.
1412         * tree-vrp.c: Include tree-pretty-print.h and
1413         gimple-pretty-print.h.
1414         * value-prof.c: Include tree-pretty-print.h and
1415         gimple-pretty-print.h.
1416         * var-tracking.c: Include tree-pretty-print.h.
1417         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1418         (tree-diagnostic.o): New dependencies.
1419         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1420         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1421         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1422         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1423         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1424         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1425         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1426         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1427         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1428         tree-ssa-address.o, tree-ssa-loop-niter.o,
1429         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1430         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1431         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1432         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1433         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1434         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1435         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1436         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1437         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1438         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1439         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1440         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1441         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1442         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1443         cfgexpand.o, pretty-print.o): Update dependencies.
1444
1445 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1446
1447         * tree-ssa-structalias.c: Remove tm_p.h from include.
1448
1449 2010-05-21  Jeff Law  <law@redhat.com>
1450
1451         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1452
1453 2010-05-21  Jason Merrill  <jason@redhat.com>
1454
1455         * tree-eh.c (cleanup_is_dead_in): New.
1456         (lower_try_finally): Don't generate a dead cleanup region.
1457         (lower_cleanup): Likewise.
1458
1459 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1460
1461         PR debug/44223
1462         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1463         unchain each use from the cyclic next_regno_use chain first.
1464
1465 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1466
1467         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1468         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1469         (real_value_negate, real_value_abs): New prototypes.
1470         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1471         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1472         new include file for interface between MPFR and REAL_VALUE_TYPE.
1473         * real.c: Include realmpfr.h.
1474         (real_arithmetic2): Remove legacy function.
1475         (real_value_negate): New.
1476         (real_value_abs): New.
1477         (mfpr_from_real, real_from_mpfr): Move from here...
1478         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1479         * builtins.c: Include realmpfr.h.
1480         * fold-const.c: Include realmpfr.h.
1481         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1482         (fold_negate_const): Likewise.
1483         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1484         * toplev.c: Include realmpfr.h.
1485         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1486         and real_value_negate.
1487         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1488         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1489         (vfp3_const_double_index): Likewise.
1490         (arm_print_operand): Likewise.
1491         * Makefile.in: Update dependencies.
1492
1493 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1494
1495         * config/s390/s390.c (override_options): Increase the default
1496         of max-completely-peel-times.
1497
1498 2010-05-21  Julian Brown  <julian@codesourcery.com>
1499             Mark Mitchell  <mark@codesourcery.com>
1500
1501         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1502         sibling calls for Thumb-1.
1503         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1504         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1505         Thumb-2.
1506         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1507         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1508         for Thumb-2.
1509         (return): New expander.
1510         (*arm_return): New name for ARM return insn.
1511         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1512
1513 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1514
1515         * config.gcc (sparc64-*-rtems*): New target.
1516
1517 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1518
1519         * tree.c (build_function_decl_skip_args): Fix grammar.
1520         (build_function_type_list_1): Fix typos, adjust formatting.
1521
1522 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1523
1524         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1525         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1526         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1527         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1528         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1529         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1530         tree-pretty-print.c, tree-loop-distribution.c,
1531         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1532         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1533         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1534         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1535         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1536         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1537         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1538         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1539         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1540         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1541         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1542         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1543         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1544         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1545         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1546         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1547         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1548         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1549         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1550         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1551         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1552         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1553         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1554         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1555         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1556         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1557         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1558         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1559         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1560         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1561         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1562         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1563         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1564         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1565         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1566         config/bfin/bfin.c: Clean up redundant includes.
1567         * Makefile.in: Update accordingly.
1568
1569 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1570
1571         PR middle-end/44204
1572         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1573         statement has no arguments.
1574
1575 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1576
1577         PR/44139
1578         * varasm.c (emutls_decl): Merge attributes to new decl.
1579
1580 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1581
1582         PR middle-end/44101
1583         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1584         around the uniquized constructor if its type requires a conversion.
1585
1586 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1587
1588         PR debug/44205
1589         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1590         at -O0 goto_locus of any of the incoming edges differs from
1591         goto_locus of outgoing edge, or gimple_location of any of the
1592         labels differs.
1593
1594 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1595
1596         * ira.c (ira_non_ordered_class_hard_regs): Define.
1597         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1598         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1599         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1600         cost of unaligned hard regs when allocating multi-reg pseudos.
1601
1602 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1603
1604         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1605         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1606         for TARGET_NO_FLOAT.
1607         * config/mips/mips.c (mips_file_start): Expand conditional expression
1608         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1609         (mips_override_options): Move -mno-float override -msoft-float and
1610         -mhard-float.
1611         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1612         Condition(TARGET_SUPPORTS_NO_FLOAT).
1613         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1614         __mips_no_float here.
1615         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1616         (TARGET_SUPPORTS_NO_FLOAT): Define.
1617         * config/mips/sdemtk.opt: Delete.
1618
1619 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1620
1621         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1622
1623 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1624
1625         PR target/43733
1626         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1627         * configure: Regenerate.
1628         * config.in: Regenerate.
1629         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1630         instead of sahf only for 64bit targets.
1631
1632 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1633
1634         PR debug/44178
1635         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1636         setup_ref_regs for DEBUG_INSNs.
1637
1638 2010-05-20  Jan Hubicka  <jh@suse.cz>
1639
1640         PR middle-end/44197
1641         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1642
1643 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1644
1645         PR bootstrap/43870
1646         * df-scan.c (df_ref_compare): Stabilize sort.
1647
1648 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1649
1650         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1651         argument.  Don't use DW_OP_piece if offset is non-zero,
1652         put offset into second DW_OP_bit_piece argument.
1653         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1654         compute offset.
1655
1656 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1657
1658         PR target/44202
1659         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1660         settings for 16-bit-constant "addo" alternative.
1661
1662 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1663
1664         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1665         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1666
1667         PR target/43764
1668         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1669         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1670         Use it.
1671
1672 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1673
1674         * diagnostic.c (FLOAT, FFS): Don't undefine.
1675         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1676         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1677         include ordering.
1678
1679 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1680
1681         * combine.c (propagate_for_debug): Call make_compound_operation
1682         on the source value.
1683         (try_combine): When implementing a split chosen by find_split_point,
1684         either copy i2src or set it to null.  Assert that i2src is not null
1685         before substituting into CALL_INSN_FUNCTION_USAGE.
1686
1687 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1688
1689         * double-int.h (double_int_ior): New function.
1690         * tree.h (build_int_cst_wide_type): Remove.
1691         * tree.c (build_int_cst_wide_type): Remove.
1692         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1693         of build_int_cst_wide_type.
1694         * stor-layout.c (set_sizetype): (Ditto.).
1695         * dojump.c (do_jump): Use build_int_cstu instead of
1696         build_int_cst_wide_type.
1697
1698 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1699
1700         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1701         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1702         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1703         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1704         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1705         propagate the 'data' argument to copy_tree_r.
1706         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1707         Propagate 'data' argument to walk_tree.
1708         (copy_if_shared): New function.
1709         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1710         (unmark_visited): New function.
1711         (unshare_body): Call copy_if_shared instead of doing it manually.
1712         (unvisit_body): Call unmark_visited instead of doing it manually.
1713
1714 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1715
1716         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1717         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1718         * hooks.c: Likewise.
1719         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1720         hook_tree_tree_int_treep_bool_null.
1721         * target.h (struct gcc_target): Update signature of fold_builtin
1722         field.
1723         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1724         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1725         instead of the call expression.
1726         (fold_builtin_call_array): Pass n and argarray directly.
1727         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1728         consing a list.
1729         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1730         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1731         `i' and use it in place of `arity'.
1732         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1733         Dereference `args' directly.
1734         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1735
1736 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1737
1738         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1739         3dnow, sse3, sse2.
1740         (Directives): Document optional dg-require-effective-target
1741         selector.
1742
1743 2010-05-19  Richard Guenther  <rguenther@suse.de>
1744
1745         PR lto/44196
1746         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1747
1748 2010-05-19  Richard Guenther  <rguenther@suse.de>
1749
1750         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1751         * common.opt (fwhopr=): New.
1752         * opts.c (common_handle_option): Handle OPT_fwhopr.
1753         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1754         * collect2.c (main): Match -fwhopr*.
1755         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1756         Execute ltrans stage in parallel when jobs is bigger than 1.
1757
1758 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1759
1760         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1761         pentiumpro on Solaris 8/x86 with Sun as.
1762         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1763         hidden alias bug.
1764         (gcc_cv_as_ix86_quad): Check for .quad directive.
1765         * configure: Regenerate.
1766         * config.in: Regenerate.
1767         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1768
1769 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1770
1771         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1772         also for indirect edges.  Actual printing moved...
1773         (ipa_print_node_jump_functions_for_edge): ...here.
1774         (ipa_compute_jump_functions): Renamed to
1775         ipa_compute_jump_functions_for_edge and made static.
1776         (ipa_compute_jump_functions): New function.
1777         (make_edge_direct_to_target): Check if the number of arguments on
1778         the newly direct edge is the same as the number of parametrs of
1779         the callee.
1780         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1781         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1782         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1783         analysis functions unconditionally, call the new
1784         ipa_analyze_params_uses on the node instead of every edge.
1785
1786 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1787
1788         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1789         to tree.
1790         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1791         also checks for a constant int vs.  non-constant but
1792         loop-invariant steps.
1793         (find_or_create_group): Change the sort algorithm to only consider
1794         steps that are constant ints.
1795         (idx_analyze_ref): Adopt code to handle a tree instead of a
1796         HOST_WIDE_INT for step.
1797         (gather_memory_references_ref): Handle tree instead of int and be
1798         prepared to see a NULL_TREE.
1799         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1800         prefetches if the step cannot be calculated at compile time.
1801         (issue_prefetch_ref): Issue prefetches for non-constant but
1802         loop-invariant steps.
1803
1804 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1805
1806         Revert:
1807         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1808
1809         * tree.h (build_call_list): Remove.
1810         * tree.c (build_call_list): Remove.
1811
1812 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1813
1814         * tree.h (build_call_list): Remove.
1815         * tree.c (build_call_list): Remove.
1816
1817 2010-05-18  Jan Hubicka  <jh@suse.cz>
1818
1819         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1820
1821 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1822
1823         PR rtl-optimization/43332
1824         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1825
1826 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1827
1828         * tree.h (build_int_cstu): Implement as static inline.
1829         * tree.c (build_int_cstu): Remove function.
1830         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1831         sign extended.
1832
1833 2010-05-18  Richard Guenther  <rguenther@suse.de>
1834
1835         PR lto/44143
1836         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1837         (debug): Initialize from -save-temps.
1838         (collect_execute): Print command-line when verbose.
1839         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1840         for ltrans invocation.  Produce -dumpbase flag again.
1841         (process_args): Remove.
1842         (main): Simplify.
1843         * collect2.c (maybe_run_lto_and_relink): Only pass object
1844         files to lto-wrapper.
1845         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1846
1847 2010-05-18  Jan Hubicka  <jh@suse.cz>
1848
1849         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1850         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1851
1852 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1853
1854         PR lto/44184
1855         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1856         in a GIMPLE_ASM.
1857         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1858         in a GIMPLE_ASM.
1859
1860 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1861
1862         PR debug/41371
1863         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1864         rtx_equal_p inline.
1865
1866 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1867
1868         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1869         lto-macho as lto_binary_reader.
1870
1871         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1872         after .section directive; just print it before the directive instead.
1873
1874 2010-05-17  Jan Hubicka  <jh@suse.cz>
1875
1876         * cgraph.c (cgraph_create_virtual_clone): Only check
1877         versionable_function_p when not in wpa and checking is enabled.
1878         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1879         there are no more functions to materialize.
1880
1881 2010-05-17  Jan Hubicka  <jh@suse.cz>
1882
1883         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1884         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1885         New functions.
1886         (output_cgraph): Call output_cgraph_opt_summary.
1887         (input_cgrpah): Call input_cgraph_opt_summary.
1888         (output_cgraph_opt_summary_p, output_node_opt_summary,
1889         input_node_opt_summary, input_cgraph_opt_section): New functions.
1890         * lto-section-in.c (lto_section_name): Add cgraphopt.
1891         * tree-inline.c (tree_function_versioning): Handle parm_num.
1892         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1893         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1894
1895 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1896
1897         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1898         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1899         the insn to prefetch ratio heuristic to loops with known trip count.
1900
1901 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1902
1903         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1904         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1905         is far from what is required by the prefetch.
1906
1907 2010-05-17  Jan Hubicka  <jh@suse.cz>
1908
1909         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1910         (ipcp_estimate_growth): Likewise.
1911         (ipcp_const_param_count): Likewise.
1912         (ipcp_insert_stage): Likewise.
1913         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1914         (visit_store_addr_for_mod_analysis): Set used flag.
1915         (ipa_detect_param_modifications): Set used flag for SSE params;
1916         update use of walk_stmt_load_store_addr_ops.
1917         (ipa_print_node_params): Print used flag.
1918         (ipa_write_node_info): Stream used flag.
1919         (ipa_read_node_info): Likewise.
1920         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1921         (ipa_is_param_used): New function.
1922         (lto_ipa_fixup_call_notes): Remove unused declaration.
1923
1924 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1925
1926         PR target/44074
1927         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1928         * configure: Regenerate.
1929         * config.in: Regenerate.
1930         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1931         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1932         Don't emit whitespace.
1933         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1934         (*rep_movsi): Likewise.
1935         (*rep_movsi_rex64): Likewise.
1936         (*rep_movqi): Likewise.
1937         (*rep_movqi_rex64): Likewise.
1938         (*rep_stosdi_rex64): Likewise.
1939         (*rep_stossi): Likewise.
1940         (*rep_stossi_rex64): Likewise.
1941         (*rep_stosqi): Likewise.
1942         (*rep_stosqi_rex64): Likewise.
1943         (*cmpstrnqi_nz_1): Use {%;} after repz.
1944         (*cmpstrnqi_nz_rex_1): Likewise.
1945         (*cmpstrnqi_1): Likewise.
1946         (*cmpstrnqi_rex_1): Likewise.
1947         (*strlenqi_1): Use {%;} after repnz.
1948         (*strlenqi_rex_1): Likewise.
1949         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1950         (*sync_compare_and_swap<mode>): Likewise.
1951         (sync_double_compare_and_swap<mode>): Likewise.
1952         (*sync_double_compare_and_swapdi_pic): Likewise.
1953         (sync_old_add<mode>): Likewise.
1954         (sync_add<mode>): Likewise.
1955         (sync_sub<mode>): Likewise.
1956         (sync_<code><mode>): Likewise.
1957
1958 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1959
1960         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1961         otr_token and polymorphic.
1962         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1963         (cgraph_clone_edge): Copy the above fields.
1964         * tree.c (get_binfo_at_offset): New function.
1965         * tree.h (get_binfo_at_offset): Declare.
1966         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1967         type, reordered items, updated comments.
1968         (union jump_func_value): Added base_type field, reordered fields.
1969         (enum ipa_lattice_type): Moved down in the file.
1970         (struct ipa_param_descriptor): New field polymorphic.
1971         (ipa_is_param_polymorphic): New function.
1972         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1973         (ipa_print_node_jump_functions): Print known type jump functions.
1974         (compute_complex_pass_through): Renamed to...
1975         (compute_complex_assign_jump_func): this.
1976         (compute_complex_ancestor_jump_func): New function.
1977         (compute_known_type_jump_func): Likewise.
1978         (compute_scalar_jump_functions): Create known type and complex ancestor
1979         jump functions.
1980         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1981         flag in the call note accordingly.
1982         (ipa_analyze_call_uses): Renamed to...
1983         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1984         variable var only in the block where it is used.
1985         (ipa_analyze_virtual_call_uses): New function.
1986         (ipa_analyze_call_uses): Likewise.
1987         (combine_known_type_and_ancestor_jfs): Likewise.
1988         (update_jump_functions_after_inlining): Implemented handling of a
1989         number of new jump function types combination.
1990         (print_edge_addition_message): Removed.
1991         (make_edge_direct_to_target): New function.
1992         (try_make_edge_direct_simple_call): Likewise.
1993         (try_make_edge_direct_virtual_call): Likewise.
1994         (update_call_notes_after_inlining): Renamed to...
1995         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1996         indirect calls to try_make_edge_direct_simple_call, also calls
1997         try_make_edge_direct_virtual_call for virtual calls.
1998         (ipa_print_node_params): Changed the header message.
1999         (ipa_write_jump_function): Stream also known type jump functions.
2000         (ipa_read_jump_function): Likewise.
2001         (ipa_write_indirect_edge_info): Stream new fields in
2002         cgraph_indirect_call_info.
2003         (ipa_read_indirect_edge_info): Likewise.
2004         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
2005         GIMPLE_FOLD_H.
2006
2007 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2008
2009         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
2010
2011 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2012
2013         * tree.h (CALL_EXPR_ARGS): Delete.
2014         (call_expr_arglist): Delete.
2015         * tree.c (call_expr_arglist): Delete.
2016         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
2017         targetm.fold_builtin.
2018         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
2019         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
2020         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
2021         arglist parameter.  Use CALL_EXPR_ARG.
2022         (picochip_expand_builtin_3op): Likewise.
2023         (picochip_expand_builtin_2opvoid): Likewise.
2024         (picochip_expand_array_get): Likewise.
2025         (picochip_expand_array_put): Likewise.
2026         (picochip_expand_array_testport): Likewise.
2027         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
2028         rather than arglist.
2029         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
2030         CALL_EXPR_ARGS.
2031         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
2032         than TREE_VALUE and TREE_CHAIN.
2033         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
2034         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
2035         the arglist.
2036
2037 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2038
2039         PR bootstrap/42347
2040         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
2041         to have no fallthru edge.
2042
2043         PR middle-end/44102
2044         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
2045         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
2046         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
2047         add BARRIER after previous bb if needed.
2048
2049 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2050
2051         * tree.c (build_function_type_list_1): Remove bogus assert condition.
2052
2053 2010-05-17  Alan Modra  <amodra@gmail.com>
2054
2055         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
2056         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
2057         with copy_reg rtx param.
2058         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
2059         Correct cases where code for ABI_V4 did not initialise the reg
2060         used to access frame.  Also leave frame_reg_rtx as sp for large
2061         frames that save no regs.
2062
2063 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2064
2065         PR middle-end/44133
2066         * tree-sra.c (create_access_replacement): New parameter rename, mark
2067         the replaement for renaming only when it is true.
2068         (get_access_replacement): Pass true in the rename parameter of
2069         create_access_replacement.
2070         (get_unrenamed_access_replacement): New function.
2071         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
2072         replacement declaration from it.
2073
2074 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
2075
2076         * function.c (try_fit_stack_local, add_frame_space): New static
2077         functions.
2078         (assign_stack_local_1): Use them.  Look for opportunities to use
2079         space previously wasted on alignment.
2080         * function.h (struct frame_space): New.
2081         (struct rtl_data): Add FRAME_SPACE_LIST member.
2082         * reload1.c (something_was_spilled): New static variable.
2083         (alter_reg): Set it.
2084         (reload): Test it in addition to testing if the frame size changed.
2085
2086 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
2087
2088         * config/s390/s390.c: Define sane prefetch settings and activate
2089         flag_prefetch_loop_arrays on -O3.
2090         * config/s390/s390.h: Declare that read can use write prefetch.
2091
2092 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2093
2094         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
2095         build.
2096
2097 2010-05-16  Jan Hubicka  <jh@suse.cz>
2098
2099         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2100         function body; do not check stdarg field of struct function.
2101
2102 2010-05-16  Jan Hubicka  <jh@suse.cz>
2103
2104         * cgraph.c (dump_cgraph_node): Dump versionable flag.
2105         * cgraph.h (cgraph_local_info): Add versionable flag.
2106         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2107         (ipcp_versionable_function_p): Use it.
2108         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2109         versionable flag.
2110
2111 2010-05-16  Jan Hubicka  <jh@suse.cz>
2112
2113         * cgraph.c (cgraph_clone_node): Take decl argument and insert
2114         clone into hash when it is different from orig.
2115         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2116         * cgraph.h (cgraph_clone_node): Update prototype.
2117         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2118         (lto_cgraph_encoder_delete): Delete body map.
2119         (lto_cgraph_encoder_size): Move to header.
2120         (lto_cgraph_encoder_encode_body_p,
2121         lto_set_cgraph_encoder_encode_body): New.
2122         (lto_output_node): Do not take written_decls argument; output clone_of
2123         pointer.
2124         (add_node_to): Add include_body_argument; call
2125         lto_set_cgraph_encoder_encode_body on master of the clone.
2126         (add_references): Update use of add_node_to.
2127         (compute_ltrans_boundary): Likewise.
2128         (output_cgraph): Do not create written_decls bitmap.
2129         (input_node): Take nodes argument; stream in clone_of correctly.
2130         (input_cgraph_1): Update use of input_node.
2131         * lto-streamer-out.c (lto_output): Use encoder info to decide
2132         what bodies to output.
2133         * ipa-inline.c (cgraph_clone_inlined_nodes,
2134         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2135         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2136         (lto_cgraph_encoder_size): Define here.
2137         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2138         Declare.
2139
2140 2010-05-16  Richard Guenther  <rguenther@suse.de>
2141
2142         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2143         -fipa-type-escape.
2144         * ipa-type-escape.c (gate_type_escape_vars): Run when
2145         -fipa-struct-reorg runs.
2146         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2147         * common.opt (fipa-type-escape): Remove.
2148
2149 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2150
2151         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2152         (decode_options): Likewise.
2153         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2154
2155 2010-05-16  Jan Hubicka  <jh@suse.cz>
2156
2157         * ipa.c (function_and_variable_visibility): Also bring local all
2158         aliases.
2159
2160 2010-05-16  Richard Guenther  <rguenther@suse.de>
2161
2162         * alias.c (nonoverlapping_memrefs_p): Remove use of
2163         IPA type-escape information.
2164
2165 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2166
2167         * c-common.c (c_common_reswords): Add _Static_assert for C.
2168         * c-parser.c (c_token_starts_declaration,
2169         c_parser_next_token_starts_declaration,
2170         c_parser_static_assert_declaration_no_semi,
2171         c_parser_static_assert_declaration): New.
2172         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2173         Handle static assertions if static_assert_ok.
2174         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2175         c_parser_compound_statement_nostart, c_parser_label,
2176         c_parser_for_statement, c_parser_objc_methodprotolist,
2177         c_parser_omp_for_loop): All callers of
2178         c_parser_declaration_or_fndef changed.
2179         (c_parser_struct_declaration): Handle static assertions.
2180         (c_parser_compound_statement_nostart): Use
2181         c_parser_next_token_starts_declaration and
2182         c_token_starts_declaration to detect start of declarations.
2183         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2184         Likewise.
2185
2186 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2187
2188         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2189         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2190         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2191         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2192         (mmix_function_outgoing_value): Rename to...
2193         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2194         (mmix_function_value_regno_p): Make static.
2195         (mmix_libcall_value): New function.
2196         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2197         mmix_function_value_regno_p): Remove declaration.
2198
2199 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2200
2201         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2202         BUILT_IN_ALLOCA if stack checking is enabled.
2203
2204 2010-05-16  Richard Guenther  <rguenther@suse.de>
2205
2206         * var-tracking.c (vars_copy_1): Inline ...
2207         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2208         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2209         (variable_merge_over_cur): Adjust.  Merge asserts.
2210         (variable_merge_over_src): Likewise.
2211         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2212         (variable_post_merge_new_vals): Merge asserts.
2213         (variable_post_merge_perm_vals): Likewise.
2214         (find_mem_expr_in_1pdv): Likewise.
2215         (dataflow_set_different_value): Remove.
2216         (onepart_variable_different_p): Merge asserts.
2217         (variable_different_p): Likewise.
2218         (dataflow_set_different_1): Inline ...
2219         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2220         (emit_notes_for_differences_1): Merge asserts.
2221
2222 2010-05-16  Richard Guenther  <rguenther@suse.de>
2223
2224         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2225         * optabs.c (libfunc_decl_hash): Likewise.
2226         * varasm.c (emutls_decl): Likewise.
2227
2228 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2229
2230         * c-decl.c: Don't include gimple.h.
2231         (merge_decls): Do not copy gimple_body.
2232
2233 2010-05-15  Jason Merrill  <jason@redhat.com>
2234
2235         * c.opt: Add -fnothrow-opt.
2236
2237 2010-05-15  Jan Hubicka  <jh@suse.cz>
2238
2239         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2240         analyzed.
2241         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2242
2243 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2244
2245         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2246         * Makefile.in: Add it.
2247         Fix all other Makefile dependencies for changes below.
2248         * tree.h: Include it instead of defining VEC primitives here.
2249         * gimple.h: Likewise.
2250         * rtl.h: Likewise.
2251         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2252         * except.h: Include vecir.h, break dependence on tree.h.
2253
2254         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2255         Move from here...
2256         * tree-iterator.c: ...to here.
2257         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2258
2259         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2260         tm_p.h.
2261         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2262         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2263         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2264         tree-mudflap.h, and target.h.
2265         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2266         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2267         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2268         Add FIXME for why gimple.h is still included (should be unnecessary
2269         since GCC 4.5 gimplification unit-at-a-time).
2270         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2271         * c-pragma.c: Add FIXME for why function.h needs to be included just
2272         for cfun, at front-end level.
2273         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2274         Do not include ggc.h, but include vecprim.h for VEC(char).
2275         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2276         Explain why target.h is included.
2277         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2278         Explain why gimple.h is included.
2279         * c-ppoutput.c: Do not include tm.h.
2280         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2281         * c-parses.c: Explain why rtl.h is included, and that this (and only
2282         this) is also why tm.h must be included.
2283         Do not include except.h.
2284         * c-lang.c: Do not include ggc.h.
2285
2286 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2287
2288         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2289
2290 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2291
2292         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2293         unions by default if those structs and unions have no tags.  Do
2294         not condition anonymous struct and unions handling on flag_iso.
2295         Allow anonymous structs and unions for C1X.
2296         (finish_struct): Do not diagnose lack of named fields when
2297         anonymous structs and unions present for C1X.  Accept flexible
2298         array members in structure with anonymous structs or unions but no
2299         directly named fields.
2300         * doc/extend.texi (Unnamed Fields): Update.
2301
2302 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2303
2304         * gimple.h (compare_field_offset): Rename into...
2305         (gimple_compare_field_offset): ...this.
2306         * gimple.c (compare_field_offset): Rename into...
2307         (gimple_compare_field_offset): ...this.  Compare the full access if
2308         the offset is self-referential.
2309         (gimple_types_compatible_p): Adjust for above renaming.
2310         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2311         DECL_NONADDRESSABLE_P flag of fields before merging them.
2312
2313 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2314
2315         * tree.h (ctor_to_list): Delete.
2316         * tree.c (ctor_to_list): Delete.
2317
2318 2010-05-15  Jan Hubicka  <jh@suse.cz>
2319
2320         * ipa-reference.c: Include toplev.h
2321         (is_proper_for_analysis): Only add to all_module_statics
2322         if it is allocated.
2323         (write_node_summary_p, stream_out_bitmap,
2324         ipa_reference_write_optimization_summary,
2325         ipa_reference_read_optimization_summary): New.
2326         (struct ipa_opt_pass_d pass_ipa_reference): Add
2327         optimization summary streaming.
2328         * lto-cgraph.c (referenced_from_this_partition_p,
2329         reachable_from_this_partition_p): New functions.
2330         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2331         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2332         * opts.c (decode_options): Enable ipa_reference.
2333         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2334         * lto-streamer.h (referenced_from_this_partition_p,
2335         reachable_from_this_partition_p): Declare.
2336
2337 2010-05-15  Richard Guenther  <rguenther@suse.de>
2338
2339         PR tree-optimization/44038
2340         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2341         taking the address of a V_C_E of a constant.
2342
2343 2010-05-14  Jan Hubicka  <jh@suse.cz>
2344
2345         * tree.h (memory_identifier_string): Remove.
2346         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2347         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2348         statics_not_written.
2349         (ipa_reference_optimization_summary_d): New structure.
2350         (ipa_reference_optimization_summary_t): New type and vector.
2351         (ipa_reference_vars_info_d): Embedd structures instead of using
2352         pointers.
2353         (reference_vars_to_consider): Remove out of GGC space.
2354         (module_statics_escape): Remove.
2355         (global_info_obstack): Rename to ...
2356         (optimization_summary_obstack): ... this one.
2357         (initialization_status_t): Remove.
2358         (memory_identifier_string): Remove.
2359         (get_reference_vars_info): Fix indenting.
2360         (set_reference_vars_info): Likewise.
2361         (get_reference_optimization_summary): New.
2362         (set_reference_optimization_summary): New.
2363         (get_global_reference_vars_info): Remove.
2364         (ipa_reference_get_read_global): Remove.
2365         (ipa_reference_get_written_global): Remove.
2366         (ipa_reference_get_not_read_global): Update.
2367         (ipa_reference_get_not_written_global): Update.
2368         (is_proper_for_analysis): Outlaw addressable.
2369         (propagate_bits): Update for new datastructures.
2370         (analyze_variable): Remove.
2371         (init_function_info): Update for new datastructures.
2372         (clean_function_local_data): Remove.
2373         (clean_function): Remove.
2374         (copy_global_bitmap): Use optimizations_summary_obstack.
2375         (duplicate_node_data): Duplicate optimization summary only.
2376         (remove_node_data): Remove optimization summary only.
2377         (generate_summary): Do not analyze variables; do not compute
2378         module_statics_escape; do not prune solutions by it.
2379         (read_write_all_from_decl): Fix typos in comments.
2380         (propagate): Doscover readonly and nonaddressable first;
2381         update for new datastructures; share global bitmaps.
2382         * ipa-reference.h (ipa_reference_get_read_global,
2383         ipa_reference_get_written_global): Remove.
2384         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2385         * Makefile.in: Remove ipa-refereference from GT files.
2386
2387 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2388
2389         PR debug/44112
2390         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2391         for all SYMBOL_REF_DECLs.
2392
2393 2010-05-14  Jan Hubicka  <jh@suse.cz>
2394
2395         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2396         (varpool_all_refs_explicit_p): New inline function.
2397         * ipa-reference.c: Update comment.
2398         (module_statics_written): Remove.
2399         (get_static_decl): Remove.
2400         (ipa_init): Do not initialize module_statics_written.
2401         (analyze_function): Likewise.
2402         (generate_summary): Likewise; do not compute module_statics_readonly
2403         and do not update variable flags.
2404         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2405         * ipa.c: Inlucde flags.h
2406         (cgraph_local_node_p): New.
2407         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2408         promote functions to local.
2409         (ipa_discover_readonly_nonaddressable_vars): New function.
2410         (function_and_variable_visibility): Use cgraph_local_node_p.
2411         * varpool.c (varpool_finalize_decl): Set force_output for
2412         DECL_PRESERVE_P vars.
2413
2414 2010-05-14  Jan Hubicka  <jh@suse.cz>
2415
2416         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2417
2418 2010-05-14  Richard Guenther  <rguenther@suse.de>
2419
2420         PR tree-optimization/44119
2421         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2422         a PHI node necessary.
2423
2424 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2425
2426         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2427
2428 2010-05-14  Jason Merrill  <jason@redhat.com>
2429
2430         PR c++/44127
2431         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2432         (gimple_call_set_nothrow): New.
2433         * gimple.c (gimple_build_call_from_tree): Call it.
2434         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2435
2436         PR c++/44127
2437         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2438         * gimple.h: Declare it.
2439         * gimple.c (gimple_build_eh_filter): No ops.
2440
2441 2010-05-14  Jan Hubicka  <jh@suse.cz>
2442
2443         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2444         nodes already in queue.
2445         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2446         re-enqueueing node.
2447
2448 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2449
2450         PR debug/44136
2451         * cfgexpand.c (expand_debug_expr): If non-memory op0
2452         has BLKmode, return NULL.
2453
2454 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2455
2456         * config.gcc: Add support for --with-cpu option for bdver1.
2457         * config/i386/i386.h (TARGET_BDVER1): New macro.
2458         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2459         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2460         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2461         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2462         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2463         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2464         (processor_type): Add PROCESSOR_BDVER1.
2465         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2466         processor_type in config/i386/i386.h.
2467         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2468         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2469         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2470         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2471         to emit packed xor instead of packed double/packed integer
2472         xor for SSE and AVX when moving a zero value.
2473         * config/i386/sse.md: Add check for
2474         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2475         movapd/movdqa for SSE and AVX.
2476         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2477         single logical operations i.e and, or and xor instead of packed double
2478         logical operations for SSE and AVX.
2479         * config/i386/i386-c.c (ix86_target_macros_internal):
2480         Add PROCESSOR_BDVER1.
2481         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2482         (has_fma4, has_xop): New.
2483         * config/i386/i386.c (bdver1_cost): New variable.
2484         (m_BDVER1): New macro.
2485         (m_AMD_MULTIPLE): Add m_BDVER1.
2486         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2487         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2488         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2489         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2490         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2491         x86_tune_sse_partial_reg_dependency,
2492         x86_tune_sse_unaligned_load_optimal,
2493         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2494         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2495         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2496         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2497         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2498         Enable/disable for bdver1.
2499         (processor_target_table): Add bdver1_cost.
2500         (cpu_names): Add bdver1.
2501         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2502          processor_alias_table.
2503         (ix86_expand_vector_move_misalign): Change.
2504         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2505         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2506         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2507         of movupd/movdqu for SSE and AVX.
2508         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2509         (ix86_tune_adjust_cost): Add code for bdver1.
2510         (standard_sse_constant_opcode): Add check for
2511         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2512         of packed double xor for SSE and AVX.
2513
2514 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2515
2516         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2517         result to unsigned.
2518
2519 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2520
2521         * toplev.c (default_debug_hooks): Remove this variable.
2522         (process_options): Remove assignments to default_debug_hooks.
2523
2524 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2525
2526         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2527         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2528         * langhooks.h (struct lang_hooks_for_decls): Removed field
2529         fold_obj_type_ref.
2530         * tree.c (free_lang_data): Remove assignment to
2531         lang_hooks.fold_obj_type_ref.
2532         * tree.def (OBJ_TYPE_REF): Update comment.
2533
2534 2010-05-14  Richard Guenther  <rguenther@suse.de>
2535
2536         PR tree-optimization/44124
2537         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2538
2539 2010-05-14  Alan Modra  <amodra@gmail.com>
2540
2541         PR target/44075
2542         * config/rs6000/rs6000.c (struct machine_function): Reorder
2543         fields for better packing.  Add lr_save_state.
2544         (rs6000_ra_ever_killed): Return lr_save_state if set.
2545         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2546
2547 2010-05-13  Jan Hubicka  <jh@suse.cz>
2548
2549         * varpool.c (decide_is_variable_needed): Drop code checking
2550         TREE_SYMBOL_REFERENCED.
2551
2552 2010-05-13  Jan Hubicka  <jh@suse.cz>
2553
2554         * final.c (output_addr_const): Do not call mark_decl_referenced.
2555         * cgraphunit.c (process_function_and_variable_attributes): Use
2556         mark_needed_node dirrectly.
2557         (assemble_thunk): Do not call mark_decl_referenced.
2558
2559 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2560
2561         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2562
2563 2010-05-13  Jeff Law  <law@redhat.com>
2564
2565         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2566         from...
2567         (print_conflicts): Call print_allocno_conflicts.
2568
2569 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2570
2571         PR debug/44104
2572         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2573         if it is NULL.
2574
2575 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2576
2577         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2578         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2579         * config/i386/t-mingw-w32: New.
2580         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2581
2582 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2583
2584         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2585         gimple-fold.c).
2586         * gimple-fold.c (get_base_binfo_for_type): New function.
2587         (gimple_get_relevant_ref_binfo): Likewise.
2588         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2589         (gimple_fold_obj_type_ref): Likewise.
2590         (fold_gimple_call): Simplify condition for folding virtual calls
2591         and call gimple_fold_obj_type_ref.
2592         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2593         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2594
2595 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2596
2597         * config/rs6000/rs6000-protos.h
2598         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2599         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2600         (rs6000_debug_mode_dependent_address)
2601         (rs6000_mode_dependent_address_ptr): Likewise.
2602
2603 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2604
2605         PR debug/43983
2606         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2607         by SRA.
2608         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2609         * tree-sra.c (create_access_replacement): Call unshare_expr before
2610         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2611         * dwarf2out.c: Include tree-flow.h.
2612         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2613         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2614         Handle DW_OP_bit_piece.
2615         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2616         construct_piece_list, adjust_piece_list): New functions.
2617         (add_var_loc_to_decl): Handle SRA optimized variables.
2618         Adjust for var_loc_note to loc field renaming.
2619         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2620         in VAR_LOCATION note.
2621         (new_loc_descr_op_bit_piece): New function.
2622         (dw_sra_loc_expr): New function.
2623         (dw_loc_list): Use it.  Don't handle the last range after the
2624         loop, handle it inside of the loop.  Adjust for var_loc_note
2625         to loc field renaming.
2626         (add_location_or_const_value_attribute): Only special case
2627         single entry loc lists if loc is NOTE_P.  Adjust for
2628         var_loc_note to loc field renaming.
2629         (dwarf2out_var_location): Don't set newloc->var_loc_note
2630         and newloc->next here.
2631
2632 2010-05-12  Jan Hubicka  <jh@suse.cz>
2633
2634         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2635         flag.
2636         * cgraph.h (cgraph_only_called_directly_p,
2637         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2638         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2639         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2640         (assemble
2641         * ipa.c (cgraph_remove_unreachable_nodes): Use
2642         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2643         flags.
2644         * tree-inline.c (copy_bb): Check address_taken flag.
2645         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2646         externally_visible flag.
2647
2648 2010-05-12  Jason Merrill  <jason@redhat.com>
2649
2650         PR bootstrap/44048
2651         PR target/44099
2652         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2653         * sdbout.c (plain_type_1): Likewise.
2654         * dwarf2out.c (is_base_type): Likewise.
2655         (gen_type_die_with_usage): Likewise.  Generate
2656         DW_TAG_unspecified_type for any LANG_TYPE.
2657
2658 2010-05-12  Jan Hubicka  <jh@suse.cz>
2659
2660         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2661         indrect edges too.
2662         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2663         (cgraph_clone_edge): Update.
2664         (cgraph_node_remove_callees): Remove indirect calls too.
2665         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2666         (cgraph_create_indirect_edge): Update prototype.
2667         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2668         is_proper_for_analysis.
2669         (add_new_function, visited_nodes, function_insertion_hook_holder,
2670         get_local_reference_vars_info, mark_address_taken, mark_address,
2671         mark_load, mark_store, check_asm_memory_clobber, check_call,
2672         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2673         (ipa_init): Do not initialize visited_nodes;
2674         function_insertion_hook_holder.
2675         (analyze_variable): Rewrite.
2676         (analyze_function): Rewrite.
2677         (copy_local_bitmap): Remove.
2678         (duplicate_node_dat): Do not duplicate local info.
2679         (generate_summary): Simplify to only walk cgraph.
2680         (write_node_summary_p, ipa_reference_write_summary,
2681         ipa_reference_read_summary): Remove.
2682         (propagate): Do not remove function insertion;
2683         generate summary.
2684         (pass_ipa_reference): NULLify summary handling fields.
2685         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2686         (input_edge): Input ecf_flags.
2687         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2688         (update_indirect_edges_after_inlining): Ignore edges with unknown
2689         param.
2690
2691 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2692
2693         * implicit-zee.c: New file.
2694         * tree-pass.h (pass_implicit_zee): Declare.
2695         * passes.c (init_optimization_passes): Add zee pass.
2696         * common.opt (fzee): New flag.
2697         * timevar.def (TV_ZEE): Define.
2698         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2699         and beyond.
2700         * Makefile.in (implicit-zee.o): Add new build file.
2701
2702 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2703             Nathan Froyd  <froydnj@codesourcery.com>
2704
2705         * c-common.c (sync_resolve_params): Remove write-only variable.
2706
2707 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2708
2709         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2710         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2711         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2712         * targhooks.c (default_mode_dependent_address_p): New function.
2713         * targhooks.h (default_mode_dependent_address_p): Declare function.
2714         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2715         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2716         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2717         target hook. Change return type to bool.
2718         * recog.h (mode_dependent_address_p): Change return type to bool.
2719
2720 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2721             Nathan Froyd  <froydnj@codesourcery.com>
2722
2723         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2724         build_function_type_2, build_function_type_3): Remove.
2725         (mudflap_init): Use build_function_type_list.
2726
2727 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2728             Nathan Froyd  <froydnj@codesourcery.com>
2729
2730         * coverage.c (build_fn_info_value): Call build_constructor instead of
2731         build_constructor_from_list.
2732         (build_ctr_info_value): Likewise.
2733         (build_gcov_info): Likewise.
2734
2735 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2736
2737         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2738         resultant constructor.
2739         (build_constructor_single): Don't set TREE_CONSTANT.
2740         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2741
2742 2010-05-12  Jan Hubicka  <jh@suse.cz>
2743
2744         * cgraph.h (struct varpool_node): Add aux.
2745         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2746         * varpool.c (varpool_remove_node): Do not remove initializer.
2747         (varpool_reset_queue): Export.
2748         (varpool_finalize_decl): Volatile vars are forced to be output.
2749         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2750         replaced decl.
2751         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2752         process_references, varpool_can_remove_if_no_refs): New functions.
2753         (cgraph_remove_unreachable_nodes): Handle variables too.
2754
2755 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2756
2757         PR target/44088
2758         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2759
2760 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2761
2762         PR middle-end/44085
2763         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2764         change value of ORT_TASK.
2765         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2766         (omp_notice_threadprivate_variable): New function.
2767         (omp_notice_variable): Call it for threadprivate variables.
2768         If enclosing ctx is a task, print enclosing task rather than
2769         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2770         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2771         if task has untied clause.
2772
2773         PR debug/42278
2774         * dwarf2out.c (base_type_die): Don't add name attribute here.
2775         (modified_type_die): Instead of sizetype use
2776         its underlying original type.  If a DW_TAG_base_type doesn't
2777         have name added, add __unknown__.
2778         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2779         always call force_type_die instead.
2780
2781 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2782
2783         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2784         for __stack_chk_guard.
2785
2786 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2787
2788         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2789         don't call start_source_file debug hook here...
2790         (finish_options): ... but here, after outputting predefined and
2791         command line defines and undefs.
2792
2793         PR middle-end/44071
2794         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2795         no fallthru edge.
2796         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2797         optimizing away empty bb with no successors, move over its
2798         footer chain to fallthru predecessor.
2799         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2800         (rtl_split_edge): For asm goto call patch_jump_insn even if
2801         splitting fallthru edge.
2802
2803         PR c++/44059
2804         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2805         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2806         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2807         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2808         on DW.ref.* decls.
2809
2810         PR c++/44062
2811         * c-parser.c (c_parser_expression): Mark LHS of a comma
2812         expression as read if it is a decl, handled component or
2813         COMPOUND_EXPR with that on the RHS.
2814         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2815         if it is a decl or handled component.
2816
2817 2010-05-11  Jan Hubicka  <jh@suse.cz>
2818
2819         * lto-symtab.c (lto_symtab_free): New function.
2820         * lto-streamer.h (lto_symtab_free): Declare.
2821
2822 2010-05-11  Jan Hubicka  <jh@suse.cz>
2823
2824         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2825         that if function is needed it is reachable.
2826         (lto_output_node): See if it the function is reachable or referenced.
2827         (output_cgraph): Update call of lto_output_node.
2828         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2829
2830 2010-05-11  Jan Hubicka  <jh@suse.cz>
2831
2832         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2833         Mark as used.
2834
2835 2010-05-11  Jan Hubicka  <jh@suse.cz>
2836
2837         PR tree-optimize/44063
2838         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2839         queue.
2840         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2841         limits.
2842         (estimate_function_body_sizes): Compute sizes even when disregarding.
2843
2844 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2845
2846         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2847
2848 2010-05-11  Jan Hubicka  <jh@suse.cz>
2849
2850         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2851         into every boundary.
2852
2853 2010-05-11  Jan Hubicka  <jh@suse.cz>
2854
2855         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2856
2857 2010-05-11  Jan Hubicka  <jh@suse.cz>
2858
2859         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2860         lto_streamer_cache_delete): Put nodes into heap.
2861         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2862         heap.
2863
2864 2010-05-11  Jan Hubicka  <jh@suse.cz>
2865
2866         * cgraphbuild.c (cgraph_rebuild_references): New.
2867         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2868         out extern inlines.
2869         * cgraph.h (cgraph_rebuild_references): Declare.
2870         * tree-inline.c (tree_function_versioning): Use it.
2871         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2872
2873 2010-05-11  Jan Hubicka  <jh@suse.cz>
2874
2875         * cgraph.c: Include ipa-utils.h
2876         (cgraph_create_virtual_clone): Update references.
2877         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2878
2879 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2880
2881         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2882         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2883         cache size.
2884
2885 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2886
2887         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2888
2889 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2890
2891         * gcc.c (execute): For -### don't quote arguments that
2892         contain just alphanumerics and _/-. characters.
2893         * doc/invoke.texi: Document that change for -###.
2894
2895         PR debug/44023
2896         * df-problems.c (struct dead_debug): Add to_rescan field.
2897         (dead_debug_init): Clear to_rescan field.
2898         (dead_debug_finish): Rescan all debug insns in to_rescan
2899         bitmap and free the bitmap.
2900         (dead_debug_insert_before): Instead of rescanning debug insns
2901         immediately queue their rescanning until dead_debug_finish.
2902         (df_note_bb_compute): After dead_debug_add do continue instead
2903         of break.
2904
2905 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2906
2907         PR debug/44028
2908         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2909         clear also INSN_REG_USE_LIST.
2910
2911 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2912
2913         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2914
2915 2010-05-10  Jan Hubicka  <jh@suse.cz>
2916
2917         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2918         commited change.
2919
2920 2010-05-10  Jan Hubicka  <jh@suse.cz>
2921
2922         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2923         Allocate encoders.
2924         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2925         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2926         (lto_streamer_cache_create): Init alloc pool.
2927         (lto_streamer_cache_delete): Free alloc pool.
2928         * lto-streamer.h: Include alloc pool.
2929         (lto_streamer_cache_d): Use alloc pool.
2930         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2931
2932 2010-05-10  Jan Hubicka  <jh@suse.cz>
2933
2934         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2935         * cgraphbuild.c: Include except.h
2936         (record_type_list, record_eh_tables): New function.
2937         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2938
2939 2010-05-10  Jan Hubicka  <jh@suse.cz>
2940
2941         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2942         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2943         rather than unused.
2944
2945 2010-05-10  Michael Matz  <matz@suse.de>
2946
2947         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2948         (can_reassociate_p): Use FLOAT_TYPE_P.
2949         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2950         (vect_force_simple_reduction): ... this.
2951         * tree-parloops.c (gather_scalar_reductions): Use
2952         vect_force_simple_reduction.
2953         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2954         vect_is_simple_reduction, add modify argument, if true rewrite
2955         "a-b" into "a+(-b)".
2956         (vect_is_simple_reduction, vect_force_simple_reduction): New
2957         functions.
2958         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2959
2960 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2961             Vladimir Makarov  <vmakarov@redhat.com>
2962
2963         PR rtl-optimization/44012
2964         * ira-build.c (remove_unnecessary_allocnos): Nullify
2965         regno_allocno_map of the removed allocno.
2966
2967 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2968
2969         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2970         to /dev/null.
2971         * configure: Regenerate.
2972
2973 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2974
2975         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2976         unused.
2977         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2978         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2979         support in Sun ld.
2980         * configure: Regenerate.
2981
2982 2010-05-10  Richard Guenther  <rguenther@suse.de>
2983
2984         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2985         marked if the entry identifier is marked.
2986
2987 2010-05-10  Richard Guenther  <rguenther@suse.de>
2988
2989         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2990         (handle_fnspec_attribute): New function.
2991         * gimple.h (gimple_call_return_flags): Declare.
2992         (gimple_call_arg_flags): Likewise.
2993         * gimple.c (gimple_call_arg_flags): New function.
2994         (gimple_call_return_flags): Likewise.
2995         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2996         New argument flags.
2997         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2998         return value flags.
2999         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
3000         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
3001         main work to ...
3002         (make_heapvar_for): ... this new function.
3003         (handle_rhs_call): Handle fnspec attribute argument specifiers.
3004         (handle_lhs_call): Likewise.
3005         (find_func_aliases): Adjust.
3006
3007 2010-05-10  Richard Guenther  <rguenther@suse.de>
3008
3009         PR tree-optimization/44050
3010         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3011
3012 2010-05-10  Wei Guozhi  <carrot@google.com>
3013
3014         PR target/42879
3015         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
3016
3017 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3018
3019         PR c/10676
3020         * c-typeck.c (lookup_field): Take a type directly.  Update
3021         recursive calls.
3022         (build_component_ref): Update call to lookup_field.
3023         (set_init_label): Use lookup_field to find initialized field.
3024         Handle returned list of fields like a sequence of designators.
3025
3026 2010-05-09  Richard Guenther  <rguenther@suse.de>
3027
3028         PR middle-end/44024
3029         * fold-const.c (tree_single_nonzero_warnv_p): Properly
3030         handle &FUNCTION_DECL.
3031
3032 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3033
3034         PR c/4784
3035         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
3036         structures and unions recursively.
3037         (detect_field_duplicates): Move duplicate detection with a hash to
3038         detect_field_duplicates_hash.  Always use a hash if anonymous
3039         structures or unions are present.
3040         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
3041         give errors.
3042
3043 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3044
3045         PR target/44046
3046         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
3047         detect Atom, Core 2 and Core i7.
3048
3049 2010-05-09  Richard Guenther  <rguenther@suse.de>
3050
3051         * gcc.c (store_arg): Handle temporary file deletion for
3052         joined arguments.
3053
3054 2010-05-09  Richard Guenther  <rguenther@suse.de>
3055
3056         PR middle-end/44043
3057         * ipa-inline.c (estimate_function_body_sizes): Return after
3058         disregarding inline limits.
3059
3060 2010-05-09  Richard Guenther  <rguenther@suse.de>
3061
3062         * gcc.c (store_arg): Revert last change.
3063
3064 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
3065
3066         PR middle-end/28685
3067         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
3068         (optimize_ops_list): Call it.
3069
3070 2010-05-08  Richard Guenther  <rguenther@suse.de>
3071
3072         PR tree-optimization/44030
3073         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
3074         NECESSARY flag if we propagate from a inserted expression.
3075
3076 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3077
3078         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
3079         domain types as equal if they are both PLACEHOLDER_EXPRs.
3080
3081 2010-05-08  Richard Guenther  <rguenther@suse.de>
3082
3083         * lto-wrapper.c (run_gcc): Remove linker output from
3084         command line for LTRANS invocation.
3085
3086 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3087
3088         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3089         lto-macho as lto_binary_reader.
3090         * target.h (struct gcc_target): New hooks lto_start and lto_end.
3091         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
3092         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
3093         in lto_start and lto_end calls.
3094         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
3095         magic numbers.
3096         (scan_prog_file): Update is_elf_or_coff call.
3097         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3098
3099         * collect2.c (main): Fix enum comparison.
3100
3101         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3102         Add prototypes.
3103         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3104         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
3105         and TARGET_ASM_LTO_END.
3106         * darwin.c: Include obstack.h and lto-streamer.h.
3107         (lto_section_names_offset, lto_section_names_obstack,
3108         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
3109         global variables.
3110         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
3111         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
3112         to a temporary file.
3113         (darwin_asm_lto_end): New function.  Restore asm_out_file.
3114         (darwin_asm_named_section): For LTO sections, replace the name with
3115         the offset of the section name in a string table, and build this
3116         table.
3117         (darwin_file_start): Initialize global vars for LTO support.
3118         (darwin_file_end): If output to asm_out_file was redirected, append it
3119         to the proper asm_out_file here.  Add the section names section.
3120
3121 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3122
3123         * c-pragma.c (pending_weak_d, pending_weak): New.
3124         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
3125         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
3126         handle_pragma_weak): Update the uses of pending_weaks.
3127
3128 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3129
3130         PR documentation/44016
3131         * doc/standards.texi (Standards): Link to unversioned
3132         cxx0x_status.html page.
3133
3134 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
3135
3136         PR target/43708
3137         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
3138         in addition to TREE_USED, to avoid "set but unused" warnings.
3139
3140 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3141
3142         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3143         (is_loop_prefetching_profitable): Do not insert prefetches
3144         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3145         times the prefetch ahead distance.
3146
3147 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3148
3149         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3150         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3151         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3152         the unroll_factor.
3153
3154 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3155
3156         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3157         a diagnostic info when the insn-to-mem ratio is too small.
3158
3159 2010-05-07  Richard Guenther <rguenther@suse.de>
3160
3161         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3162         the linker plugin.
3163         (store_arg): Queue temp_filename for deletion instead of
3164         the whole argument.
3165
3166 2010-05-07  Richard Guenther  <rguenther@suse.de>
3167
3168         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3169         (run_gcc): Handle LTRANS phase invocation.
3170         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3171
3172 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
3173
3174         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3175         this is also meaningful on PARM_DECLs and RESULT_DECLs.
3176
3177 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3178
3179         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3180
3181 2010-05-07  Richard Guenther  <rguenther@suse.de>
3182
3183         PR tree-optimization/44020
3184         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3185         code when PRE is not yet initialized.
3186
3187 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3188
3189         * config/mips/dbxmdebug.h: Remove.
3190         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3191
3192 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3193
3194         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3195         with null pointer and also warn about ordered comparison of zero with
3196         pointer if -Wextra.
3197
3198 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3199
3200         * graphite-blocking.c
3201         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3202         * graphite-clast-to-gimple.c
3203         (clast_to_gcc_expression): Same.
3204         (precision_for_value): Same.
3205         (precision_for_interval): Same.
3206         (gcc_type_for_interval): Same.
3207         (graphite_create_new_guard): Same.
3208         (compute_bounds_for_level): Same.
3209         (graphite_create_new_loop_guard): Same.
3210         * graphite-interchange.c
3211         (build_linearized_memory_access): Same.
3212         (pdr_stride_in_loop): Same.
3213         (memory_strides_in_loop_1): Same.
3214         (memory_strides_in_loop): Same.
3215         (extend_scattering): Same.
3216         (psct_scattering_dim_for_loop_depth): Same.
3217         (pbb_number_of_iterations): Same.
3218         * graphite-poly.h
3219         (debug_iteration_domains): Same.
3220         * graphite-ppl.c
3221         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3222         (ppl_set_inhomogeneous_gmp): Same.
3223         (ppl_strip_loop): Same.
3224         (ppl_lexico_compare_linear_expressions): Same.
3225         (ppl_read_polyhedron_matrix): Same.
3226         (ppl_max_for_le_pointset): Same.
3227         * graphite-ppl.h
3228         (ppl_read_polyhedron_matrix): Same.
3229         (tree_int_to_gmp): Same.
3230         (gmp_cst_to_tree): Same.
3231         (ppl_set_inhomogeneous): Same.
3232         (ppl_set_inhomogeneous_tree): Same.
3233         (ppl_set_coef): Same.
3234         (ppl_set_coef_tree): Same.
3235         * graphite-sese-to-poly.c
3236         (build_pbb_scattering_polyhedrons): Same.
3237         (build_scop_scattering): Same.
3238         (scan_tree_for_params_right_scev): Same.
3239         (scan_tree_for_params): Same.
3240         (find_params_in_bb): Same.
3241         (find_scop_parameters): Same.
3242         (add_upper_bounds_from_estimated_nit): Same.
3243         (build_loop_iteration_domains): Same.
3244         (add_condition_to_domain): Same.
3245         (pdr_add_memory_accesses): Same.
3246
3247 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3248
3249         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3250         CLooG's value_* macros to their respective mpz_* counterparts.
3251         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3252         (graphite_create_new_loop_guard): Same.
3253         * graphite-interchange.c (build_linearized_memory_access): Same.
3254         (pdr_stride_in_loop): Same.
3255         (memory_strides_in_loop_1): Same.
3256         (1st_interchange_profitable_p): Same.
3257         * graphite-poly.c (extend_scattering): Same.
3258         (psct_scattering_dim_for_loop_depth): Same.
3259         (pbb_number_of_iterations): Same.
3260         (pbb_number_of_iterations_at_time): Same.
3261         * graphite-poly.h (new_1st_loop): Same.
3262         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3263         (oppose_constraint): Same.
3264         (insert_constraint_into_matrix): Same.
3265         (ppl_set_inhomogeneous_gmp): Same.
3266         (ppl_set_coef_gmp): Same.
3267         (ppl_strip_loop): Same.
3268         (ppl_lexico_compare_linear_expressions): Same.
3269         (ppl_max_for_le_pointset): Same.
3270         (ppl_min_for_le_pointset): Same.
3271         (ppl_build_realtion): Same.
3272         * graphite-ppl.h (gmp_cst_to_tree): Same.
3273         (ppl_set_inhomogeneous): Same.
3274         (ppl_set_inhomogeneous_tree): Same.
3275         (ppl_set_coef): Same.
3276         (ppl_set_coef_tree): Same.
3277         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3278         (build_scop_scattering): Same.
3279         (add_value_to_dim): Same.
3280         (scan_tree_for_params_right_scev): Same.
3281         (scan_tree_for_params_int): Same.
3282         (scan_tree_for_params): Same.
3283         (find_params_in_bb): Same.
3284         (find_scop_parameters): Same.
3285         (add_upper_bounds_from_estimated_nit): Same.
3286         (build_loop_iteration_domains): Same.
3287         (create_linear_expr_from_tree): Same.
3288         (add_condition_to_domain): Same.
3289         (pdr_add_memory_accesses): Same.
3290
3291 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3292             Jason Merrill  <jason@redhat.com>
3293
3294         * c-common.c (c_common_reswords): Add nullptr.
3295         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3296         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3297         (gen_type_die_with_usage): Likewise.
3298         * dbxout.c (dbxout_type): Likewise.
3299         * sdbout.c (plain_type_1): Likewise.
3300
3301 2010-05-06  Jason Merrill  <jason@redhat.com>
3302
3303         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3304         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3305         ret appropriately.
3306         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3307
3308         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3309         stripping WITH_SIZE_EXPR.
3310         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3311         change.
3312
3313 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3314
3315         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3316         list of obsolete configurations.
3317         Disabled check for obsolete configurations.
3318         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3319         Removed support for previous versions.
3320         * config/mips/iris.h: Removed.
3321         * config/mips/iris5.h: Removed.
3322         * config/mips/iris6.h: Merged old iris.h contents.
3323         (TARGET_IRIX): Removed.
3324         (DRIVER_SELF_SPECS): Removed mabi=32.
3325         (IDENT_ASM_OP): Removed undef.
3326         (STARTFILE_SPEC): Removed mabi=32.
3327         (ENDFILE_SPEC): Likewise.
3328         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3329         (MACHINE_TYPE): Update for IRIX 6.5.
3330         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3331         TARGET_IRIX by TARGET_IRIX6.
3332         (mips_file_start): Likewise.
3333         (mips_output_external): Remove IRIX 5/6 O32 support.
3334         (mips_output_function_prologue): Likewise.
3335         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3336         TARGET_IRIX6.
3337         (TARGET_CPU_CPP_BUILTINS): Likewise.
3338         (TARGET_IRIX): Removed.
3339         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3340         (MULTILIB_DIRNAMES): Removed 32.
3341         (MULTILIB_OSDIRNAMES): Removed ../lib.
3342         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3343         (Specific, mips-sgi-irix5): Document removal.
3344         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3345         Remove references to older IRIX 6 releases and the O32 ABI.
3346
3347 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3348
3349         PR bootstrap/43994
3350         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3351         instead of DF_REF_REAL_REG.
3352
3353 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3354
3355         PR target/43888
3356         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3357         handling to still return true for x64 targets.
3358
3359 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3360
3361         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3362
3363 2010-05-06  Jan Hubicka  <jh@suse.cz>
3364
3365         PR tree-optimization/43791
3366         * ipa-inline.c (update_caller_keys): Remove bogus
3367         disregard_inline_limits check.
3368
3369 2010-05-06  Michael Matz  <matz@suse.de>
3370
3371         PR tree-optimization/43984
3372         * tree-ssa-pre.c (inserted_phi_names): Remove.
3373         (inserted_exprs): Change to bitmap.
3374         (create_expression_by_pieces): Set bits, don't append to vector.
3375         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3376         (eliminate): Don't look at inserted_phi_names, remove deleted
3377         insns from inserted_exprs.
3378         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3379         (init_pre, fini_pre): Allocate and free bitmaps.
3380         (execute_pre): Insert insns on edges before elimination.
3381
3382 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3383
3384         * tree.c (initializer_zerop): Handle STRING_CST.
3385
3386 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3387
3388         PR 40989
3389         * doc/invoke.texi (Wimplicit): Document as C only.
3390         * opts.c (common_handle_option): Add argument kind.
3391         (handle_option): Rename as read_cmdline_option. Factor out code to...
3392         (handle_option): ... here. New.
3393         (handle_options): Rename as read_cmdline_options.
3394         (decode_options): Update call.
3395         (set_option): Use option index instead of option pointer. Classify
3396         diagnostics correctly.
3397         (enable_warning_as_error): Call handle_option.
3398         * opts.h (set_option): Update declaration.
3399         (handle_option): Declare.
3400         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3401         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3402         * c-opts.c (set_Wimplicit): Delete.
3403         (c_family_lang_mask): New static constant.
3404         (c_common_handle_option): Add argument kind. Use handle_option
3405         instead of set_Wimplicit.
3406         (c_common_post_options): warn_implicit and warn_implicit_int
3407         are disabled by default.
3408         * c-common.c (warn_implicit): Do not define here.
3409         * c-common.h (warn_implicit): Do not declare here.
3410         (c_common_handle_option): Update declaration.
3411         * lto-opts.c (lto_reissue_options): Update call to set_option.
3412
3413 2010-05-06  Richard Guenther  <rguenther@suse.de>
3414
3415         PR tree-optimization/43571
3416         * domwalk.c (walk_dominator_tree): Walk the dominator
3417         sons in more optimal order.
3418
3419 2010-05-06  Richard Guenther  <rguenther@suse.de>
3420
3421         PR tree-optimization/43934
3422         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3423         (stmt_cost): Likewise.
3424         (extract_true_false_args_from_phi): New helper.
3425         (determine_max_movement): For PHI nodes verify we can hoist them
3426         and compute their cost.
3427         (determine_invariantness_stmt): Handle PHI nodes.
3428         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3429         if-converted form using COND_EXPRs.
3430         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3431         (tree_ssa_lim): Likewise.
3432         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3433         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3434
3435 2010-05-06  Richard Guenther  <rguenther@suse.de>
3436
3437         PR tree-optimization/43987
3438         * tree-ssa-structalias.c (could_have_pointers): For possibly
3439         address-taken variables force pointers to be recorded.
3440         (create_variable_info_for_1): Likewise.
3441         (push_fields_onto_fieldstack): Pass in wheter all fields
3442         must have pointers.
3443         (find_func_aliases): Query types instead of vars whether
3444         they contain pointers where appropriate.
3445
3446 2010-05-06  Jan Hubicka  <jh@suse.cz>
3447
3448         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3449         (record_reference, mark_address, mark_load, mark_store): Record
3450         references.
3451         (record_references_in_initializer): Update call of record_references.
3452         (rebuild_cgraph_edges): Remove all references before rebuiding.
3453         * cgraph.c (cgraph_create_node): Clear ref list.
3454         (cgraph_remove_node): Remove references.
3455         (dump_cgraph_node): Dump references.
3456         (cgraph_clone_node): Clone references.
3457         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3458         (struct cgraph_node, varpool_node): Add ref_lst.
3459         * ipa-ref.c: New file.
3460         * ipa-ref.h: New file.
3461         * ipa-ref-inline.h: New file.
3462         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3463         (referenced_from_other_partition_p): New function.
3464         (lto_output_varpool_node): Take set arugment; call
3465         referenced_from_other_partition.
3466         (lto_output_ref): New.
3467         (add_references): New.
3468         (output_refs): New.
3469         (output_cgraph): Compute boundary based on references; output refs.
3470         (output_varpool): Accept cgraph_node_set argument.
3471         (input_ref): New.
3472         (input_refs): New.
3473         (input_cgraph): Call input_refs.
3474         * lto-section-in.c (lto_section_name): Add refs.
3475         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3476         (ipa-ref.o): New file.
3477         * varpool.c (varpool_node): Clear ipa ref list.
3478         (varpool_remove_node): Remove references.
3479         (dump_varpool_node): Dump references.
3480         (varpool_assemble_decl): Only compile finalized ones.
3481         (varpool_extra_name_alias): Initialize ref list.
3482         * lto-streamer.c (lto-get_section_name): Add .refs section.
3483         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3484         (referenced_from_other_partition_p): Declared.
3485
3486 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3487
3488         PR tree-optimization/43901
3489         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3490         type is not NULL if it's transformation phase, and return
3491         FALSE if it's analysis.
3492         (vectorizable_conversion, vectorizable_operation,
3493         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3494
3495 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3496
3497         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3498         Delete.
3499         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3500         New define.
3501         * config/mips/mips-protos.h
3502         (mips_small_register_classes_for_mode_p): Delete prototype.
3503
3504 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3505
3506         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3507         * config/arm/arm.c (multiple_operation_profitable_p,
3508         compute_offset_order): New static functions.
3509         (load_multiple_sequence, store_multiple_sequence): Use them.
3510         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3511         memory offsets, not register numbers.
3512         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3513
3514 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3515
3516         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3517         (get_pending_sizes, put_pending_size, put_pending_sizes):
3518         Update the uses of pending_sizes.
3519         * c-decl.c (store_parm_decls): Likewise.
3520         * c-tree.h (struct c_arg_info): Likewise.
3521         * tree.h: Update the prototype for get_pending_sizes and
3522         put_pending_sizes.
3523
3524 2010-05-05  Jason Merrill  <jason@redhat.com>
3525
3526         PR debug/43370
3527         * c-common.c (handle_aligned_attribute): Respect
3528         ATTR_FLAG_TYPE_IN_PLACE.
3529
3530         PR testsuite/43758
3531         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3532         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3533         (TARGET_INITIALIZER): Use it.
3534         * c-common.c (attribute_takes_identifier_p): Call it.
3535         * c-common.h: Update prototype.
3536         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3537         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3538
3539 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3540
3541         PR debug/43950
3542         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3543         DW_ID_down_case for Fortran compilation units.
3544
3545 2010-05-05  Jan Hubicka  <jh@suse.cz>
3546
3547         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3548         handle aliases.
3549
3550 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3551
3552         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3553         a variable-sized RESULT_DECL.
3554
3555 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3556
3557         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3558
3559 2010-05-05  Jason Merrill  <jason@redhat.com>
3560
3561         PR c++/43787
3562         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3563         returns GS_OK.
3564         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3565
3566 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3567             Jakub Jelinek  <jakub@redhat.com>
3568
3569         PR debug/43478
3570         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3571         (dead_debug_init, dead_debug_finish): New functions.
3572         (dead_debug_add, dead_debug_insert_before): Likewise.
3573         (df_note_bb_compute): Initialize a dead_debug object, add dead
3574         debug uses to it, insert debug bind insns before death insns,
3575         reset debug insns that refer to pending uses at the end.
3576         * rtl.h (make_debug_expr_from_rtl): New prototype.
3577         * varasm.c (make_debug_expr_from_rtl): New function.
3578
3579 2010-05-05  Jan Hubicka  <jh@suse.cz>
3580
3581         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3582         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3583         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3584         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3585         lto_varpool_encoder_encode_initializer_p,
3586         lto_set_varpool_encoder_encode_initializer): New functions.
3587         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3588         call output_varpool.
3589         (input_varpool_node): Do not always set analyzed.
3590         (input_cgraph_1): Return vector of cgraph nodes.
3591         (input_varpool_1): Return vector of varpools.
3592         (input_cgraph): Free the vectors.
3593         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3594         output only initializers needed.
3595         (lto_output): Only call output_cgraph.
3596         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3597         * lto-section-out.c (lto_new_out_decl_state): Initialize
3598         state->varpool_node_encoder.
3599         * lto-streamer.h (lto_varpool_encoder_d): New.
3600         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3601         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3602         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3603         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3604         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3605         Declare.
3606         (output_varpool, input_varpool): Remove declarations.
3607
3608 2010-05-05  Jan Hubicka  <jh@suse.cz>
3609
3610         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3611         with body can prevail.
3612
3613 2010-05-05  Jan Hubicka  <jh@suse.cz>
3614
3615         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3616         size.
3617
3618 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3619
3620         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3621
3622         * gengtype.h (erro_at_line): Constify pos argument.
3623
3624         * gengtype.c: Include hashtab.h.
3625         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3626         (error_at_line): Constify pos argument.
3627         (do_typedef): Initialize p->opt field.
3628         (get_file_gtfilename): Fix comment typo.
3629         (struct walk_type_data): Constify line field.
3630         (get_output_file_for_structure): New function.
3631         (write_local_func_for_structure): Constify orig_s argument.
3632         Use get_output_file_for_structure.
3633         (write_func_for_structure): Use get_output_file_for_structure.
3634         (INDENT): New define.
3635         (dump_pair, dump_type, dump_type_list, dump_typekind)
3636         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3637         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3638         functions.
3639         (seen_types): New variable.
3640         (main): New variable do_dump.  Process "-d" command line option.
3641         Call dump_everything if dump requested.
3642
3643 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3644
3645         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3646         in a temporary instead of invoking the macro multiple times.
3647         (track_expr_p): Likewise.
3648
3649 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3650
3651         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3652         per new semantics.
3653         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3654         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3655         conditions for printing notes.
3656         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3657         true, update documentation.
3658         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3659
3660 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3661
3662         PR c/43981
3663         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3664         on dimen.
3665
3666 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3667
3668         PR target/43799
3669         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3670         (*sse_prologue_save_insn1): Likewise.
3671         (SSE prologue save splitter): Likewise.
3672
3673 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3674
3675         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3676         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3677         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3678         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3679         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3680         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3681         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3682
3683 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3684
3685         * tree-sra.c (build_access_from_expr_1): The first parameter type
3686         changed to simple tree.
3687         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3688         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3689         renamed as well.
3690         (build_accesses_from_assign): Removed all parameters except for a
3691         simple gimple statement.  Now returns a simple bool.
3692         (scan_function): All non-analysis parts moved to separate functions
3693         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3694         parameters and updated both callers.
3695         (sra_modify_expr): Removed parameter data.
3696         (sra_modify_function_body): New function.
3697         (perform_intra_sra): Call sra_modify_function_body to modify the
3698         function body.
3699         (replace_removed_params_ssa_names): Parameter data changed into
3700         adjustments vector.
3701         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3702         changed the parameter dont_convert to convert with the opposite
3703         meaning.
3704         (sra_ipa_modify_assign): Parameter data changed into adjustments
3705         vector, return value changed to bool.
3706         (ipa_sra_modify_function_body): New function.
3707         (sra_ipa_reset_debug_stmts): Updated a comment.
3708         (modify_function): Use ipa_sra_modify_function_body to modify function
3709         body.
3710
3711 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3712
3713         PR middle-end/43671
3714         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3715         (canon_true_dependence): Likewise.
3716         (write_dependence_p): Likewise.
3717
3718 2010-05-04  Jan Hubicka  <jh@suse.cz>
3719
3720         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3721         * cgraphbuild.c: Include ipa-utils.h
3722         (record_reference_ctx): New struct.
3723         (record_reference): Simplify to work on initializers; not statements.
3724         (mark_address, mark_load, mark_store): New.
3725         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3726         walk PHI nodes too.
3727         (record_references_in_initializer): Update use of record_reference.
3728         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3729         walk PHI nodes too.
3730
3731 2010-05-04  Jan Hubicka  <jh@suse.cz>
3732
3733         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3734         node will be removed anyway.
3735         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3736         relink aliases of node into prevailing node.
3737         * varpool.c (varpool_remove_node): Remove aliases properly;
3738         when removing node, remove all its aliases too; remove DECL_INITIAL
3739         of removed node; ggc_free the varpool node.
3740
3741 2010-05-04  Richard Guenther  <rguenther@suse.de>
3742
3743         PR tree-optimization/43879
3744         * tree-ssa-structalias.c (alias_get_name): Use
3745         DECL_ASSEMBLER_NAME if available.
3746         (create_function_info_for): Return the varinfo node.
3747         (ipa_pta_execute): Associate same-body aliases and extra names
3748         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3749
3750 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3751
3752         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3753
3754 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3755
3756         PR bootstrap/43964
3757         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3758         only if HONOR_REG_ALLOC_ORDER is not defined.
3759
3760 2010-05-04  Richard Guenther  <rguenther@suse.de>
3761
3762         PR tree-optimization/43949
3763         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3764         TRUNC_MOD_EXPR.
3765
3766 2010-04-26  Jason Merrill  <jason@redhat.com>
3767
3768         * c.opt (-fstrict-enums): New.
3769         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3770
3771 2010-05-03  David Ung <davidu@mips.com>
3772             James E. Wilson  <wilson@codesourcery.com>
3773
3774         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3775         emit the trap instruction before the divide for TUNE_74K.
3776
3777 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3778
3779         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3780         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3781         based on the above, for new target hook.
3782
3783         * hooks.c (hook_bool_mode_true): New generic hook.
3784         * hooks.h (hook_bool_mode_true): Add prototype.
3785
3786         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3787         target hook.
3788         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3789         target hook, set to hook_bool_mode_false.
3790         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3791         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3792         with targetm.small_register_classes_for_mode_p.
3793         (find_reusable_reload): Likewise.
3794         (combine_reloads): Likewise.
3795         * reload1.c (reload_as_needed): Likewise.
3796         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3797         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3798         dead_or_predicable): Likewise.
3799         * regmove.c (optimize_reg_copy_1): Likewise.
3800         * calls.c (prepare_call_address): Likewise.
3801         (precompute_register_parameters): Likewise.
3802
3803         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3804         hook definition.
3805         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3806         implementation of the hook that considers all register classes
3807         small except for SH64.
3808         (sh_override_options): Use the new hook.
3809         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3810         Add prototype.
3811
3812         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3813         hook definition.
3814         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3815         implementation of the hook that considers all register classes
3816         small for THUMB1.
3817         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3818         Add prototype.
3819
3820         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3821         hook definition.
3822         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3823         implementation of the hook that considers all register classes
3824         small for MIPS16.
3825         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3826         Add prototype.
3827
3828         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3829         hook definition.
3830         * config/m32c/m32c.h: Likewise.
3831         * config/pdp11/pdp11.h: Likewise.
3832         * config/avr/avr.h: Likewise.
3833         * config/xtensa/xtensa.h: Likewise.
3834         * config/m68hc11/m68hc11.h: Likewise.
3835         * config/mn10300/mn10300.h: Likewise.
3836         * config/mcore/mcore.h: Likewise.
3837         * config/h8300/h8300.h: Likewise.
3838         * config/bfin/bfin.h: Likewise.
3839
3840         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3841         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3842
3843 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3844
3845         * double-int.h (tree_to_double_int): Remove macro.
3846         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3847         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3848         (tree_to_double_int): New function.
3849         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3850         Move ...
3851         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3852
3853 2010-05-03  Richard Guenther  <rguenther@suse.de>
3854
3855         PR tree-optimization/43971
3856         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3857         constraints in the !flag_delete_null_pointer_checks case.
3858
3859 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3860
3861         PR debug/43972
3862         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3863         result mode matches original rtl mode.
3864
3865 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3866
3867         PR target/43888
3868         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3869
3870 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3871
3872         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3873         when processing flag options.
3874
3875 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3876
3877         * gcov-iov.c (main): Change format string placeholder
3878         from %#08x to 0x%08x.
3879         * genchecksum.c (dosum): Change format string placeholder
3880         from %#02x to 0x%02x.
3881
3882 2010-05-02  Richard Guenther  <rguenther@suse.de>
3883
3884         PR tree-optimization/43879
3885         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3886
3887 2010-05-02  Bruno Haible  <bruno@clisp.org>
3888
3889         * doc/extend.texi (Function Attributes): Fix a typo.
3890
3891 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3892
3893         Revert:
3894         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3895         placeholder from 0x%x to %#x.
3896         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3897         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3898         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3899         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3900         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3901         * config/i386/i386.c (ix86_target_string): Ditto.
3902         * config/i386/i386.c (output_pic_addr_const): Ditto.
3903         (print_operand): Ditto.
3904
3905 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3906
3907         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3908         placeholder from 0x%x to %#x.
3909         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3910         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3911         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3912         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3913         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3914         * optc-gen.awk: Ditto.
3915         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3916         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3917         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3918         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3919
3920 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3921
3922         * target.h (struct calls): Add function_value_regno_p field.
3923         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3924         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3925         * targhooks.c (default_function_value_regno_p): New function.
3926         * targhooks.h (default_function_value_regno_p): Declare function.
3927         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3928         * builtins.c. (apply_result_size): (Ditto.).
3929         * combine.c. (likely_spilled_retval_p): (Ditto.).
3930         * mode-switching.c. Include 'target.h'.
3931         (create_pre_exit): Use function_value_regno_p hook.
3932         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3933         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3934         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3935
3936         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3937         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3938         (ix86_function_value_regno_p): Declare as static, change argument
3939         type to const unsigned int.
3940         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3941
3942 2010-05-01  Richard Guenther  <rguenther@suse.de>
3943
3944         PR tree-optimization/43949
3945         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3946         types.
3947         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3948
3949 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3950
3951         * rtl.h (CONST_DOUBLE_P): Define.
3952         (rtx_to_double_int): Declare.
3953         * emit-rtl.c (rtx_to_double_int): New function.
3954         * dwarf2out.c (insert_double): New function.
3955         (loc_descriptor, add_const_value_attribute): Clean up, use
3956         rtx_to_double_int and insert_double functions.
3957
3958 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3959
3960         * doc/extend.texi (Inline): Add missing return keyword to examples.
3961         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3962         "command-line".
3963
3964 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3965
3966         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3967         the variable part of the offset as well.  Use highest_pow2_factor for
3968         all alignment checks.
3969
3970 2010-04-30  Richard Guenther  <rguenther@suse.de>
3971
3972         PR tree-optimization/43879
3973         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3974         can have pointers.
3975
3976 2010-04-30  Jan Hubicka  <jh@suse.cz>
3977
3978         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3979         varpool.
3980         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3981
3982 2010-04-30  Jan Hubicka  <jh@suse.cz>
3983
3984         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3985         New.
3986         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3987         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3988         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3989         cgraph_node_set_needs_ltrans_p): Remove.
3990
3991 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3992
3993         * sdbout.c: Include vec.h, do not include varray.h.
3994         (deferred_global_decls, sdbout_global_decl,
3995         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3996         * toplev.c: Do not include varray.h.
3997         (dump_memory_report): Do not dump VARRAY statistics.
3998         * gengtype.c (open_base_file): Ignore varray.h.
3999         * Makefile.in: Update for abovementioned changes.
4000         Remove all traces of varray.c and varray.h.
4001         * varray.c: Remove file.
4002         * varray.h: Remove file.
4003
4004 2010-04-30  Jan Hubicka  <jh@suse.cz>
4005
4006         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
4007         references.
4008
4009 2010-04-30  Jan Hubicka  <jh@suse.cz>
4010
4011         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
4012         needed.
4013
4014 2010-04-30  Richard Guenther  <rguenther@suse.de>
4015
4016         * tree-ssa-structalias.c (get_constraint_for_1): Generate
4017         constraints for CONSTRUCTOR.
4018
4019 2010-04-30  Richard Guenther  <rguenther@suse.de>
4020
4021         PR lto/43946
4022         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
4023         first after all lowering passes.
4024
4025 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4026
4027         * toplev.c: Include varray.h for statistics dumping.
4028         * tree.h: Do not declare varray_head_tag.
4029         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
4030         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
4031         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
4032         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
4033         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
4034         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
4035         c-common.c, c-common.h, reg-stack.c, basic-block.h,
4036         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
4037         include varray.h.
4038         * Makefile.in: Update for abovementioned changes.
4039
4040 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
4041
4042         PR debug/43942
4043         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
4044
4045 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
4046
4047         * config/picochip/picochip.c (picochip_legitimize_address): Define.
4048         Use this function to do machine-specific conversion.
4049         (picochip_legitimize_reload_address): Likewise.
4050         (picochip_legitimate_address_p): Check valid base register only if
4051         strict.
4052         (picochip_check_conditional_copy): Check for modw only if opnd is
4053         register.
4054         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
4055         to call the function in c.
4056         * config/picochip/picochip-protos.h
4057         (picochip_legitimize_reload_address): Define.
4058         * config/picochip/picochip.md (supported_compare1): Define.
4059
4060 2010-04-30  Jan Hubicka  <jh@suse.cz>
4061
4062         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
4063         (cgraph_global_info): Remove inlined.
4064         (LTO_cgraph_tag_names): Remove.
4065         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
4066         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
4067         simplify cgraph tags and document.
4068         (lto_output_node): Use only LTO_cgraph_unavail_node and
4069         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
4070         for_functions_valid, global info, process and output flags.
4071         (input_overwrite_node): Initialize estimated stack size and
4072         estimated growth.  Do not read flags we no longer store.
4073         (input_node): Likewise do not read info no longer stored.
4074         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
4075         flag.
4076
4077 2010-04-30  Richard Guenther  <rguenther@suse.de>
4078
4079         PR tree-optimization/43879
4080         * tree-ssa-structalias.c (get_constraint_for_1): Properly
4081         handle non-zero initializers.
4082
4083 2010-04-30  Richard Guenther  <rguenther@suse.de>
4084
4085         * builtins.c (fold_builtin_1): Delete free (0).
4086
4087 2010-04-29  Jan Hubicka  <jh@suse.cz>
4088
4089         * gengtype.c (open_base_files): Add lto-streamer.h
4090         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
4091         (pass_ipa_cp): GGC collect.
4092         * toplev. (compile_file): Do not output symbols.
4093         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
4094         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
4095         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
4096         * lto-section-in.c: Include ggc.h
4097         (lto_new_in_decl_state): Alloc in GGC.
4098         (lto_delete_in_decl_state): Likewise.
4099         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
4100         Collect.
4101
4102 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4103
4104         PR target/42895
4105         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
4106         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
4107         (HONOR_REG_ALLOC_ORDER): Describe new macro.
4108         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
4109         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
4110         account only if HONOR_REG_ALLOC_ORDER is not defined.
4111         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
4112         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
4113
4114 2010-04-29  Jon Grant  <04@jguk.org>
4115
4116         * collect2.c (vflag): Change type from int to bool.
4117         (debug): Likewise.
4118         (helpflag): New global bool.
4119         (main): Set vflag and debug with boolean, not integer truth values.
4120         Accept new "--help" option and output usage text if found.
4121         * collect2.h (vflag): Update prototype.
4122         (debug): Likewise.
4123
4124 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4125
4126         PR bootstrap/43936
4127         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
4128
4129 2010-04-29  Richard Guenther  <rguenther@suse.de>
4130
4131         PR bootstrap/43935
4132         * plugin.h (invoke_plugin_callbacks): Annotate arguments
4133         with ATTRIBUTE_UNUSED.
4134
4135 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4136
4137         PR target/43921
4138         * config/i386/i386.c (get_some_local_dynamic_name): Replace
4139         INSN_P with NONDEBUG_INSN_P.
4140         (distance_non_agu_define): Likewise.
4141         (distance_agu_use): Likewise.
4142
4143 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4144
4145         From Dominique d'Humieres <dominiq@lps.ens.fr>
4146         PR bootstrap/43858
4147         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
4148         test_set.
4149
4150 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
4151
4152         * plugin.h (invoke_plugin_callbacks): New inline function.
4153         * plugin.c (flag_plugin_added): New global flag.
4154         (add_new_plugin): Initialize above flag.
4155         (invoke_plugin_callbacks): Rename to ...
4156         (invoke_plugin_callbacks_full): ... this.
4157
4158 2010-04-28  Jan Hubicka  <jh@suse.cz>
4159
4160         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
4161         (lto_varpool_replace_node): New.
4162         (lto_symtab_resolve_symbols): Resolve varpool nodes.
4163         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
4164         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
4165         * cgraph.h (varpool_node_ptr): New type.
4166         (varpool_node_ptr): New vector.
4167         (varpool_node_set_def): New structure.
4168         (varpool_node_set): New type.
4169         (varpool_node_set): New vector.
4170         (varpool_node_set_element_def): New structure.
4171         (varpool_node_set_element, const_varpool_node_set_element): New types.
4172         (varpool_node_set_iterator): New type.
4173         (varpool_node): Add prev pointers, add used_from_other_partition,
4174         in_other_partition.
4175         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
4176         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
4177         varpool_get_node, varpool_remove_node): Declare.
4178         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
4179         varpool_node_set_size): New inlines.
4180         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
4181         * tree-pass.h (varpool_node_set_def): Forward declare.
4182         (ipa_opt_pass_d): Summary writting takes vnode sets too.
4183         (ipa_write_optimization_summaries): Update prototype.
4184         * ipa-cp.c (ipcp_write_summary): Update.
4185         * ipa-reference.c (ipa_reference_write_summary): Update.
4186         * lto-cgraph.c (lto_output_varpool_node): New static function.
4187         (output_varpool): New function.
4188         (input_varpool_node): New static function.
4189         (input_varpool_1): New function.
4190         (input_cgraph): Input varpool.
4191         * ipa-pure-const.c (pure_const_write_summary): Update.
4192         * lto-streamer-out.c (lto_output): Update, output varpool too.
4193         (write_global_stream): Kill WPA hack.
4194         (produce_asm_for_decls): Update.
4195         (output_alias_pair_p): Handle variables.
4196         (output_unreferenced_globals): Output only needed partition of varpool.
4197         * ipa-inline.c (inline_write_summary): Update.
4198         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
4199         cgraph.
4200         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
4201         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
4202         varpool_node_set_new, varpool_node_set_add,
4203         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
4204         debug_varpool_node_set): New functions.
4205         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4206         (execute_one_pass): Process new decls too.
4207         (ipa_write_summaries_2): Pass around vsets.
4208         (ipa_write_summaries_1): Likewise.
4209         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4210         to add.
4211         (ipa_write_optimization_summaries_1): Pass around vsets.
4212         (ipa_write_optimization_summaries): Likewise.
4213         * varpool.c (varpool_get_node): New.
4214         (varpool_node): Update doubly linked lists.
4215         (varpool_remove_node): New.
4216         (dump_varpool_node): More dumping.
4217         (varpool_enqueue_needed_node): Update doubly linked lists.
4218         (decide_is_variable_needed): Kill ltrans hack.
4219         (varpool_finalize_decl): Kill lto hack.
4220         (varpool_assemble_decl): Skip decls in other partitions.
4221         (varpool_assemble_pending_decls): Update doubly linkes lists.
4222         (varpool_empty_needed_queue): Likewise.
4223         (varpool_extra_name_alias): Likewise.
4224         * lto-streamer.c (lto_get_section_name): Add vars section.
4225         * lto-streamer.h (lto_section_type): Update.
4226         (output_varpool, input_varpool): Declare.
4227
4228 2010-04-28  Mike Stump  <mikestump@comcast.net>
4229
4230         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4231
4232 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4233
4234         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4235         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4236         (lto_input_ts_type_tree_pointers): Likewise.
4237         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4238         (lto_output_ts_type_tree_pointers): Likewise.
4239
4240 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4241
4242         Uniquization of constants at the Tree level
4243         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4244         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4245         bit to the end.
4246         (tree_output_constant_def): Declare.
4247         * gimplify.c (gimplify_init_constructor): When using block copy, first
4248         uniquize the constant constructor on the RHS.
4249         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4250         DECL_IN_CONSTANT_POOL flag.
4251         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4252         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4253         constant pool.
4254         (assemble_variable): Deal with symbols belonging to the tree constant
4255         pool.
4256         (get_constant_section): Add ALIGN parameter and simplify.
4257         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4258         (assemble_constant_contents): Use the expression of the VAR_DECL.
4259         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4260         (tree_output_constant_def): New global function.
4261         (mark_constant): Use the expression of the VAR_DECL.
4262         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4263         its expression.
4264         (output_object_block): Likewise and assemble the expression.
4265
4266 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4267
4268         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4269         hash_tree, eq_tree): New tree hash table.
4270         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4271         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4272         lto_orig_address_remove): Reimplement.
4273
4274 2010-04-28  Xinliang David Li  <davidxl@google.com>
4275
4276         PR c/42643
4277         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4278         (compute_uninit_opnds_pos): New function.
4279         (is_non_loop_exit_postdominating): New function.
4280         (compute_control_dep_chain): New function.
4281         (find_pdom): New function.
4282         (convert_control_dep_chain_into_preds): New function.
4283         (find_predicates): New function.
4284         (find_control_equiv_block): New function.
4285         (collect_phi_def_edges): New function.
4286         (find_def_preds): New function.
4287         (find_dom): New function.
4288         (dump_predicates): New function.
4289         (get_cmp_code): New function.
4290         (is_value_included_in): New function.
4291         (find_matching_predicate_in_rest_chains): New function.
4292         (use_pred_not_overlap_with_undef_path_pred): New function.
4293         (is_use_properly_guarded): New function.
4294         (normalize_cond_1): New function.
4295         (is_and_or_or): New function.
4296         (normalize_cond): New function.
4297         (is_gcond_subset_of): New function.
4298         (is_subset_of_any): New function.
4299         (is_or_set_subset_of): New function.
4300         (is_and_set_subset_of): New function.
4301         (is_norm_cond_subset_of): New function.
4302         (is_pred_expr_subset_of): New function.
4303         (is_pred_chain_subset_of): New function.
4304         (is_included_in): New function.
4305         (is_superset_of): New function.
4306         (find_uninit_use): New function.
4307         (warn_uninitialized_phi): New function.
4308         (compute_possibly_undefined_names): New function.
4309         (ssa_undefined_value_p): New function.
4310         (execute_late_warn_uninitialized): New function.
4311         * tree-ssa.c (ssa_undefined_value_p): Removed.
4312         (warn_uninit): Changed to extern.
4313         (warn_uninitialized_phi): Removed.
4314         (warn_uninitialized_vars): Changed to extern.
4315         (execute_late_warn_uninitialized): Removed
4316         * tree-flow.h: Add new prototypes.
4317         * timevar.def: Add new time variable.
4318         * Makefile.in: Add new build file.
4319
4320 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4321
4322         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4323         type if available.
4324
4325 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4326
4327         PR target/22224
4328         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4329
4330 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4331
4332         * cgraph.h (struct cgraph_node): New field indirect_calls.
4333         (struct cgraph_indirect_call_info): New type.
4334         (struct cgraph_edge): Removed field indirect_call. New fields
4335         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4336         (cgraph_create_indirect_edge): Declare.
4337         (cgraph_make_edge_direct): Likewise.
4338         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4339         * ipa-prop.h (struct ipa_param_call_note): Removed.
4340         (struct ipa_node_params): Removed field param_calls.
4341         (ipa_create_all_structures_for_iinln): Declare.
4342         * cgraph.c: Described indirect edges and uids in initial comment.
4343         (cgraph_add_edge_to_call_site_hash): New function.
4344         (cgraph_edge): Search also among the indirect edges, use
4345         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4346         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4347         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4348         site hash.
4349         (initialize_inline_failed): Assign a reason to indirect edges.
4350         (cgraph_create_edge_1): New function.
4351         (cgraph_create_edge): Moved some functionality to
4352         cgraph_create_edge_1.
4353         (cgraph_create_indirect_edge): New function.
4354         (cgraph_edge_remove_callee): Add an assert checking for
4355         non-indirectness.
4356         (cgraph_edge_remove_caller): Special-case indirect edges.
4357         (cgraph_remove_edge): Likewise.
4358         (cgraph_set_edge_callee): New function.
4359         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4360         (cgraph_make_edge_direct): New function.
4361         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4362         the declaration of the call statement matches.
4363         (cgraph_node_remove_callees): Special-case indirect edges.
4364         (cgraph_clone_edge): Likewise.
4365         (cgraph_clone_node): Clone also the indirect edges.
4366         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4367         indirect_call, dump count of indirect_calls edges.
4368         * ipa-prop.c (iinlining_processed_edges): New variable.
4369         (ipa_note_param_call): Create indirect edges instead of
4370         creating notes.  New parameter node.
4371         (ipa_analyze_call_uses): New parameter node, pass it on to
4372         ipa_note_param_call.
4373         (ipa_analyze_stmt_uses): Likewise.
4374         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4375         (print_edge_addition_message): Work on edges rather than on notes.
4376         (update_call_notes_after_inlining): Likewise, renamed to
4377         update_indirect_edges_after_inlining.
4378         (ipa_create_all_structures_for_iinln): New function.
4379         (ipa_free_node_params_substructures): Do not free notes.
4380         (ipa_edge_duplication_hook): Propagate bits within
4381         iinlining_processed_edges bitmap.
4382         (ipa_node_duplication_hook): Do not duplicate notes.
4383         (free_all_ipa_structures_after_ipa_cp): Renamed to
4384         ipa_free_all_structures_after_ipa_cp.
4385         (free_all_ipa_structures_after_iinln): Renamed to
4386         ipa_free_all_structures_after_iinln.
4387         (ipa_write_param_call_note): Removed.
4388         (ipa_read_param_call_note): Removed.
4389         (ipa_write_indirect_edge_info): New function.
4390         (ipa_read_indirect_edge_info): Likewise.
4391         (ipa_write_node_info): Do not stream notes, do stream information
4392         in indirect edges.
4393         (ipa_read_node_info): Likewise.
4394         (lto_ipa_fixup_call_notes): Removed.
4395         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4396         * ipa-inline.c (pass_ipa_inline): Likewise.
4397         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4398         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4399         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4400         is_gimple_call.
4401         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4402         edges.
4403         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4404         (output_cgraph): Stream also indirect edges.
4405         (lto_output_edge): Added capability to stream indirect edges.
4406         (input_edge): Likewise.
4407         (input_cgraph_1): Likewise.
4408         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4409         of indirect edges.
4410
4411 2010-04-28  Richard Guenther  <rguenther@suse.de>
4412
4413         PR tree-optimization/43879
4414         PR tree-optimization/43909
4415         * tree-ssa-structalias.c (struct variable_info): Add
4416         only_restrict_pointers flag.
4417         (new_var_info): Initialize it.  Increment stats.total_vars here.
4418         (create_function_info_for): Do not increment stats.total_vars here.
4419         (get_function_part_constraint): Fix build with C++.
4420         (insert_into_field_list): Remove.
4421         (push_fields_onto_fieldstack): Properly merge fields.
4422         (create_variable_info_for): Split and simplify.
4423         (create_variable_info_for_1): New piece.
4424         (intra_create_variable_infos): Properly make restrict constraints
4425         from parameters.
4426
4427 2010-04-28  Richard Guenther  <rguenther@suse.de>
4428
4429         PR c++/43880
4430         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4431
4432 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4433             Jan Hubicka <hubicka@ucw.cz>
4434
4435         * doc/invoke.texi (-Wsuggest-attribute=const,
4436         -Wsuggest-attribute=pure): Document.
4437         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4438         (function_always_visible_to_compiler_p,
4439         suggest_attribute, warn_function_pure, warn_function_const):
4440         New functions.
4441         (check_call): Improve debug info.
4442         (analyze_function): Do not check availability.
4443         (add_new_function): Check availability.
4444         (propagate): Output warnings.
4445         (skip_function_for_local_pure_const): New function.
4446         (local_pure_const): Use it; output warnings.
4447         * common.opt (Wsuggest-attribute=const,
4448         Wsuggest-attribute=pure): New.
4449
4450 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4451
4452         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4453         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4454         or DW_CFA_def_cfa_offset{,_sf}.
4455
4456 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4457
4458         * tree.h: Fix truncated long macros.
4459
4460 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4461
4462         * collect2.c (TARGET_64BIT): Redefine to target's default.
4463         * tlink.c: Likewise.
4464         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4465         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4466         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4467         for underscoring __USER_LABEL_PREFIX__.
4468         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4469         (SUB_LINK_ENTRY32): New.
4470         (SUB_LINK_ENTRY64): New.
4471         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4472         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4473         (SUB_LINK_ENTRY64): New.
4474         (SUB_LINK_ENTRY): New.
4475         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4476         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4477         x64 target is choosen.
4478         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4479         * configure: Regenerated.
4480         * configure.ac (leading-mingw64-underscores): Option added.
4481
4482 2010-04-27  Jan Hubicka  <jh@suse.cz>
4483
4484         * doc/invoke.texi (-fipa-profile): Document.
4485         * opts.c (decode_options): Enable ipa-profile at -O1.
4486         * timevar.def (TV_IPA_PROFILE): Define.
4487         * common.opt (fipa-profile): Add.
4488         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4489         flag for clones.
4490         (cgraph_propagate_frequency): Handle only local ones.
4491         * tree-pass.h (pass_ipa_profile): Declare.
4492         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4493         (pass_ipa_profile): Use TV_IPA_PROFILE.
4494         * ipa.c (ipa_profile): New function.
4495         (gate_ipa_profile): Likewise.
4496         (pass_ipa_profile): New global variable.
4497         * passes.c (pass_ipa_profile): New.
4498
4499 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4500
4501         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4502
4503 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4504
4505         PR middle-end/43812
4506         * ipa.c (dissolve_same_comdat_group_list): New function.
4507         (function_and_variable_visibility): Call
4508         dissolve_same_comdat_group_list when comdat group contains external or
4509         newly local nodes.
4510         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4511         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4512
4513 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4514
4515         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4516         (const_hash_1) <VECTOR_CST>: New case.
4517         (compare_constant) <VECTOR_CST>: Likewise.
4518         <ADDR_EXPR>: Deal with LABEL_REFs.
4519         (copy_constant) <VECTOR_CST>: New case.
4520
4521 2010-04-27  Jan Hubicka  <jh@suse.cz>
4522
4523         * cgraph.c (cgraph_propagate_frequency): New function.
4524         * cgraph.h (cgraph_propagate_frequency): Declare.
4525         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4526         cgraph_propagate_frequency.
4527
4528 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4529
4530         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4531
4532 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4533
4534         PR target/40657
4535         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4536         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4537         here to determine which regs to push and how much stack to reserve.
4538
4539 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4540
4541         * doc/gimple.texi (gimple_statement_with_ops): Remove
4542         addresses_taken field.
4543         (gimple_statement_with_memory_ops): Likewise.
4544
4545 2010-04-27  Jan Hubicka  <jh@suse.cz>
4546
4547         * tree-inline.c (eni_inlining_weights): Remove.
4548         (estimate_num_insns): Special case more builtins.
4549
4550 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4551
4552         PR c/32207
4553         * c-typeck.c (build_binary_op): Move forward check for comparison
4554         pointer with null pointer constant and adjust the diagnostic message.
4555
4556 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4557
4558         PR lto/42776
4559         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4560         binutils supports extended .section directive needed by LTO, or
4561         warn if older binutils found.
4562         (LTO_BINARY_READER): New AC_SUBST'd variable.
4563         (LTO_USE_LIBELF): Likewise.
4564         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4565         variable.
4566         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4567         (LTO_USE_LIBELF): Likewise.
4568         * configure: Regenerate.
4569
4570         * collect2.c (is_elf): Rename from this ...
4571         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4572          object files in addition to ELF-formatted ones.
4573         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4574         symbol to be prefixed or not by an extra underscore.
4575
4576         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4577         * config/i386/winnt.c: Also #include lto-streamer.h
4578         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4579         LTO named sections.
4580         (i386_pe_asm_output_aligned_decl_common): Add comment.
4581         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4582
4583 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4584
4585         PR target/43889
4586         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4587         Add missing earlyclobber for second alternative.
4588
4589 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4590
4591         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4592         bits for artificial defs at the top of the block.
4593         * fwprop.c (single_def_use_enter_block): Don't call it.
4594
4595 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4596
4597         PR 43715
4598         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4599         instead of "$gcc_cv_objdump -T".
4600         Use "-undefined dynamic_lookup" on darwin.
4601         * gcc/configure: Regenerate.
4602
4603 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4604
4605         PR c/43893
4606         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4607
4608 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4609
4610         * c-parser.c (struct c_token): Move location field up.
4611         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4612         (struct c_declspecs): Convert typespec_word, storage_class, and
4613         default_int_p into bitfields.
4614         (struct c_declarator): Move loc field up.
4615
4616 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4617
4618         * cfgloop.h (struct loop): Move can_be_parallel field up.
4619         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4620         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4621         down.
4622         (struct iv_cand): Convert pos field into a bitfield.
4623         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4624         field up.
4625         (struct _stmt_vec_info): Shuffle fields for better packing.
4626
4627 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4628
4629         * varasm.c (IN_NAMED_SECTION): Remove guard.
4630         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4631         (IN_NAMED_SECTION_P): ...this.
4632         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4633         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4634
4635 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4636
4637         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4638         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4639         of shadowing it.  Fix comments.
4640
4641 2010-04-26  Jan Hubicka  <jh@suse.cz>
4642
4643         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4644         (cgraph_clone_node): Copy function frequency.
4645         * cgraph.h (node_frequency): New enum
4646         (struct cgraph_node): Add.
4647         * final.c (rest_of_clean_state): Update.
4648         * lto-cgraph.c (lto_output_node): Output node frequency.
4649         (input_overwrite_node): Input node frequency.
4650         * tre-ssa-loop-ivopts (computation_cost): Update.
4651         * lto-streamer-out.c (output_function): Do not output function
4652         frequency.
4653         * predict.c (maybe_hot_frequency_p): Update and handle functions
4654         executed once.
4655         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4656         attribute lookup.
4657         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4658         (compute_function_frequency): Set noreturn functions to be executed
4659         once.
4660         (choose_function_section): Update.
4661         * lto-streamer-in.c (input_function): Do not input function frequency.
4662         * function.c (allocate_struct_function): Do not initialize function
4663         frequency.
4664         * function.h (function_frequency): Remove.
4665         (struct function): Remove function frequency.
4666         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4667         (try_update): Update.
4668         * tree-inline.c (initialize_cfun): Do not update function frequency.
4669         * passes.c (pass_init_dump_file): Update.
4670         * i386.c (ix86_compute_frame_layout): Update.
4671         (ix86_pad_returns): Update.
4672
4673 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4674
4675         PR tree-optimization/43833
4676         * tree-vrp.c (range_int_cst_p): New.
4677         (range_int_cst_singleton_p): New.
4678         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4679         when both operands are constants.  Use range_int_cst_p in
4680         BIT_IOR_EXPR case.
4681
4682 2010-04-26  Jan Hubicka  <jh@suse.cz>
4683
4684         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4685
4686 2010-04-26  Richard Guenther  <rguenther@suse.de>
4687
4688         PR lto/43080
4689         * gimple.c (gimple_decl_printable_name): Deal gracefully
4690         with a NULL DECL_NAME.
4691
4692 2010-04-26  Richard Guenther  <rguenther@suse.de>
4693
4694         PR lto/42425
4695         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4696         if emitting debug information and it is either a function
4697         or a namespace decl.
4698
4699 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4700
4701         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4702         determine if the statement is vectorizable, and a macro to access it.
4703         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4704         Skip statements that can't be vectorized. If the analysis fails,
4705         mark the statement as unvectorizable if vectorizing basic block.
4706         (vect_compute_data_refs_alignment): Likewise.
4707         (vect_verify_datarefs_alignment): Skip statements marked as
4708         unvectorizable. Add print.
4709         (vect_analyze_group_access): Skip statements that can't be
4710         vectorized. If the analysis fails, mark the statement as
4711         unvectorizable if vectorizing basic block.
4712         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4713         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4714         generated stmts for SLP.
4715         (new_stmt_vec_info): Initialize the new field.
4716         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4717         statements marked as unvectorizable.
4718
4719 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4720
4721         * c-common.c (flag_isoc1x): New.
4722         (flag_isoc99): Update comment.
4723         * c-common.h (flag_isoc1x): New.
4724         (flag_isoc99): Update comment.
4725         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4726         __<type>_DECIMAL_DIG__.
4727         * c-opts.c (set_std_c1x): New.
4728         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4729         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4730         * c.opt (-std=c1x, -std=gnu1x): New options.
4731         * doc/cpp.texi: Mention -std=c1x.
4732         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4733         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4734         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4735         * doc/standards.texi: Mention C1X.
4736         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4737         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4738         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4739         Define for C1X.
4740
4741 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4742
4743         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4744         placeholder from 0x%x to %#x.
4745         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4746         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4747         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4748         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4749         * config/i386/i386.c (ix86_target_string): Ditto.
4750         (output_pic_addr_const): Ditto.
4751         (print_operand): Ditto.
4752
4753 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4754
4755         * combine.c (find_split_point): Add third argument.  Use it
4756         to find nested multiply-accumulate instructions.  Adjust calls.
4757         (try_combine): Adjust call to find_split_point.
4758
4759 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4760
4761         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4762
4763 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4764
4765         PR tree-optimization/41442
4766         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4767         (fold_binary_loc): Call it.
4768
4769 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4770
4771         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4772         * opts.c (common_handle_option): Allow disabling it.
4773         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4774
4775 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4776
4777         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4778         between modes if both types are integral.
4779
4780 2010-04-23  Richard Guenther  <rguenther@suse.de>
4781
4782         PR tree-optimization/43572
4783         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4784
4785 2010-04-23  Richard Guenther  <rguenther@suse.de>
4786
4787         PR lto/43455
4788         * tree-inline.c (tree_can_inline_p): Also check compatibility
4789         of return types.
4790
4791 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4792
4793         PR tree-optimization/43846
4794         * tree-sra.c (struct access): New flag grp_assignment_read.
4795         (build_accesses_from_assign): Set grp_assignment_read.
4796         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4797         (enum mark_read_status): New type.
4798         (analyze_access_subtree): Propagate grp_assignment_read, create
4799         accesses also if both direct_read and root->grp_assignment_read.
4800
4801 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4802
4803         PR middle-end/43835
4804         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4805         function does not have type attributes.
4806
4807 2010-04-23  Richard Guenther  <rguenther@suse.de>
4808
4809         PR lto/42653
4810         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4811         of FUNCTION_DECLs.
4812
4813 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4814
4815         * sese.h (create_if_region_on_edge): Remove.
4816
4817         * sese.c (create_if_region_on_edge): Make static.
4818
4819         * tree-inline.c: Do not include ggc.h.
4820
4821         * expr.c: Do not include ggc.h.
4822
4823         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4824         dependencies.
4825
4826 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4827
4828         PR target/43744
4829         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4830         in the middle of insns for casesi_worker_2.
4831
4832 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4833
4834         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4835
4836 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4837
4838         PR tree-optimization/43842
4839         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4840         loop unrolling in update of exit phis. Fix comment.
4841         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4842         least two reduction statements in the loop before starting SLP
4843         analysis.
4844
4845 2010-04-22  Nick Clifton  <nickc@redhat.com>
4846
4847         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4848
4849 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4850
4851         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4852         to simplify a + ~a.
4853
4854 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4855
4856         * tree-parloops.c (loop_parallel_p): New argument
4857         parloop_obstack.  Pass it down.
4858         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4859         pass it down, free it.
4860
4861         * tree-loop-linear.c (linear_transform_loops): Pass down
4862         lambda_obstack.
4863
4864         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4865         of type struct obstack *.
4866
4867         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4868         scratch_obstack.  Initialize it, pass down, free it.
4869
4870         * lambda.h (lambda_loop_new): Remove.
4871         (lambda_matrix_new, lambda_matrix_inverse)
4872         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4873         argument of type struct obstack *.
4874
4875         * lambda-trans.c (lambda_trans_matrix_new): New argument
4876         lambda_obstack.  Pass it down, use obstack allocation for ret.
4877         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4878         it down.
4879
4880         * lambda-mat.c (lambda_matrix_get_column)
4881         (lambda_matrix_project_to_null): Remove.
4882         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4883         allocation for mat.
4884         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4885         lambda_obstack.
4886
4887         * lambda-code.c (lambda_loop_new): New function.
4888         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4889         (lambda_compute_auxillary_space, lambda_compute_target_space)
4890         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4891         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4892         (build_access_matrix): New argument lambda_obstack.  Use obstack
4893         allocation for am.
4894         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4895         argument lambda_obstack.  Pass it down.
4896
4897 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4898
4899         * optabs.h (expand_widening_mult): Declare.
4900
4901 2010-04-22  Richard Guenther  <rguenther@suse.de>
4902
4903         PR tree-optimization/43845
4904         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4905         lookup the CALL_EXPR function and arguments.
4906
4907 2010-04-22  Nick Clifton  <nickc@redhat.com>
4908
4909         * config/stormy16/stormy16.c
4910         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4911         * config/stormy16/stormy16.h: Tidy up formatting.
4912         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4913         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4914         (ineqbranchsi): Delete pattern.
4915         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4916         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4917         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4918         stormy16-lib2-ucmpsi2.c.
4919
4920 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4921
4922         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4923         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4924         extra set merge_set_noclobber, and use it to relax the final test
4925         slightly.
4926         * df.h (df_simulate_find_noclobber_defs): Declare.
4927         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4928         conditional defs.
4929         (df_simulate_find_noclobber_defs): New function.
4930
4931 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4932
4933         * config/i386/i386.md: Use {} around multi-line preparation statements.
4934
4935 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4936
4937         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4938         (process_init_element): New argument of type struct obstack *.
4939
4940         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4941         (set_init_index, set_init_label, set_nonincremental_init)
4942         (set_nonincremental_init_from_string, find_init_member)
4943         (output_init_element, output_pending_init_elements)
4944         (process_init_element): New argument braced_init_obstack.  Pass it
4945         down.
4946         (push_range_stack, add_pending_init): New argument
4947         braced_init_obstack.  Use obstack allocation.
4948
4949         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4950         braced_init_obstack.  Pass it down.
4951         (c_parser_braced_init): New variables ret, braced_init_obstack.
4952         Initialize obstack, pass it down and finally free it.
4953
4954 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4955
4956         PR middle-end/29274
4957         * tree-pass.h (pass_optimize_widening_mul): Declare.
4958         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4959         gate_optimize_widening_mul): New static functions.
4960         (pass_optimize_widening_mul): New.
4961         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4962         <case MULT_EXPR>: Remove support for widening multiplies.
4963         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4964         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4965         simplify_gen_unary rather than directly building extensions.
4966         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4967         WIDEN_MULT_EXPR.
4968         * expmed.c (expand_widening_mult): New function.
4969         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4970
4971 2010-04-21  Jan Hubicka  <jh@suse.cz>
4972
4973         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4974         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4975         * lto-wpa-fixup.c: Remove.
4976         * Makefile.in (lto-wpa-fixup.o): Remove.
4977         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4978         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4979         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4980
4981 2010-04-21  Jan Hubicka  <jh@suse.cz>
4982
4983         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4984         add write_optimization_summary, read_optimization_summary.
4985         (ipa_write_summaries_of_cgraph_node_set): Remove.
4986         (ipa_write_optimization_summaries): Declare.
4987         (ipa_read_optimization_summaries): Declare.
4988         * ipa-cp.c (pass_ipa_cp): Update.
4989         * ipa-reference.c (pass_ipa_reference): Update.
4990         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4991         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4992         Update.
4993         * ipa-inline.c (pass_ipa_inline): Update.
4994         * ipa.c (pass_ipa_whole_program): Update.
4995         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4996         * passes.c (ipa_write_summaries_1): Do not test wpa.
4997         (ipa_write_optimization_summaries_1): New.
4998         (ipa_write_optimization_summaries): New.
4999         (ipa_read_summaries): Do not test ltrans.
5000         (ipa_read_optimization_summaries_1): New.
5001         (ipa_read_optimization_summaries): New.
5002
5003 2010-04-21  Jan Hubicka  <jh@suse.cz>
5004
5005         * lto-cgraph.c (lto_output_node): Do not output comdat groups
5006         for boundary nodes.
5007         (output_cgraph): Do not arrange comdat groups for boundary nodes.
5008
5009 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5010
5011         PR debug/40040
5012         * dwarf2out.c (add_name_and_src_coords_attributes): Add
5013         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
5014
5015 2010-04-21  Jan Hubicka  <jh@suse.cz>
5016
5017         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
5018
5019 2010-04-21  Jan Hubicka  <jh@suse.cz>
5020
5021         * varpool.c (decide_is_variable_needed): Variable is always needed
5022         during ltrans.
5023
5024 2010-04-21  Jan Hubicka  <jh@suse.cz>
5025
5026         * opts.c (decode_options): Enable pure-const pass for whopr.
5027
5028 2010-04-21  Jan Hubicka  <jh@suse.cz>
5029
5030         * cgraph.c (dump_cgraph_node): Dump also assembler name.
5031         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
5032         at WPA dumping.
5033         (cgraph_decide_inlining): Do not expect callee to be removed in all
5034         cases.
5035
5036 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
5037
5038         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
5039
5040 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5041
5042         * config/i386/i386.md (x86_shrd): Add athlon_decode and
5043         amdfam10_decode attributes.
5044
5045 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5046
5047         PR middle-end/43570
5048         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
5049         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
5050         (lower_copyprivate_clauses): Use private var in outer
5051         context instead of original var.  Make sure the types
5052         are correct for VLAs.
5053
5054 2010-04-21  Richard Guenther  <rguenther@suse.de>
5055
5056         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
5057         to non-pointer objects.
5058
5059 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5060
5061         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
5062         last chain entry if it starts with the still current label.
5063         (add_location_or_const_value_attribute): Check that
5064         loc_list->first->next is NULL instead of comparing ->first with ->last.
5065         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
5066         to add_var_loc_to_decl.
5067
5068         * dwarf2out.c (output_call_frame_info): For dw_cie_version
5069         >= 4 add also address size and segment size fields into CIE header.
5070
5071         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
5072         long as address size is the same as sizeof (void *) and
5073         segment size is 0.
5074         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
5075         address size or segment size is unexpected, return DW_EH_PE_omit.
5076         (classify_object_over_fdes): If get_cie_encoding returned
5077         DW_EH_PE_omit, return -1.
5078         (init_object): If classify_object_over_fdes returned -1,
5079         pretend there were no FDEs at all.
5080
5081 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5082
5083         * config/i386/i386.md (bswap<mode>2): Macroize expander from
5084         bswap{si,di}2 using SWI48 mode iterator.
5085         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
5086         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
5087         set modrm attribute of bswap insn to 0 and remove length attribute.
5088         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
5089         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
5090         set mode attribute to <MODE> and remove length attribute.
5091
5092 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
5093
5094         PR rtl-optimization/43520
5095         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
5096         zero available registers.
5097
5098 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5099
5100         * builtins.c (fold_builtin_cproj): Fold more cases.
5101
5102 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5103
5104         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
5105         (fold_builtin_1): Fold builtin cproj.
5106         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
5107         Use ATTR_CONST_NOTHROW_LIST.
5108
5109 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
5110
5111         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
5112         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
5113         ffsi2_no_cmove for !TARGET_CMOVE.
5114         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
5115         (ffssi2): Remove expander.
5116         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
5117         mode iterator.
5118         (ctz<mode>2): Ditto from ctz{si,di}2.
5119         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
5120         mode iterator.
5121         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
5122         mode iterator.
5123
5124 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5125
5126         * dwarf2out.c (AT_linkage_name): Define.
5127         (clone_as_declaration): Handle DW_AT_linkage_name.
5128         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
5129         of DW_AT_MIPS_linkage_name.
5130         (move_linkage_attr): Likewise.
5131         (dwarf2out_finish): Likewise.
5132
5133 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
5134
5135         PR middle-end/41952
5136         * fold-const.c (fold_comparison): New folding rule.
5137
5138 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
5139
5140         * double-int.h (double_int_setbit): Declare.
5141         * double-int.c (double_int_setbit): New function.
5142         * rtl.h (immed_double_int_const): Declare.
5143         * emit-rtl.c (immed_double_int_const): New function.
5144         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
5145         and immed_double_int_const functions.
5146         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
5147         expand_copysign_bit):  (Ditto.).
5148         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
5149         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
5150         * dojump.c (prefer_and_bit_test): (Ditto.).
5151         * expr.c (convert_modes, reduce_to_bit_field_precision,
5152         const_vector_from_tree): (Ditto.).
5153         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5154
5155 2010-04-20  Jan Hubicka  <jh@suse.cz>
5156
5157         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
5158         (dump_cgraph_node): Dump new flags.
5159         * cgraph.h (struct cgraph_node): Add flags
5160         reachable_from_other_partition and in_other_partition.
5161         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
5162         other partition can not be removed.
5163         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
5164         the other partition must be output; silence sanity checking on
5165         leaking functions bodies from other paritition.
5166         * lto-cgraph.c (reachable_from_other_partition_p): New function.
5167         (lto_output_node): Output new flags; do not sanity check that inline
5168         clones are output; drop lto_forced_extern_inline_p code; do not mock
5169         visibility flags at partition boundaries.
5170         (add_node_to): New function.
5171         (output_cgraph): Use it to sort functions so masters appear before
5172         clones.
5173         (input_overwrite_node): Input new flags.
5174         * passes.c (ipa_write_summaries): Do not call
5175         lto_new_extern_inline_states.
5176         * lto-section-out.c (forced_extern_inline,
5177         lto_new_extern_inline_states lto_delete_extern_inline_states,
5178         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
5179         * lto-streamer.h (lto_new_extern_inline_states,
5180         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
5181         lto_forced_extern_inline_p): Kill.
5182
5183 2010-04-20  Richard Guenther  <rguenther@suse.de>
5184
5185         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
5186         from vars that can have pointers.
5187         (process_constraint): Dump useless constraints.
5188
5189 2010-04-20  Richard Guenther  <rguenther@suse.de>
5190
5191         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
5192         (dump_sa_points_to_info): Remove asserts.
5193         (init_base_vars): nothing_id isn't an escape point nor does it
5194         have pointers.
5195
5196 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5197
5198         * tree.h (TYPE_REF_IS_RVALUE): Define.
5199         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
5200         should_move_die_to_comdat, prune_unused_types_walk): Handle
5201         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
5202         (modified_type_die, gen_reference_type_die): Emit
5203         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
5204         if TYPE_REF_IS_RVALUE and -gdwarf-4.
5205
5206 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5207
5208         PR target/43635
5209         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5210         calls for -fpic -m31 if they have been sibcall optimized.
5211
5212 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5213
5214         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5215         ar.lc fixed and call-used.
5216
5217         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5218
5219 2010-04-19  Jan Hubicka  <jh@suse.cz>
5220
5221         * opts.c (decode_options): Disable whpr incompatible passes.
5222         * lto/lto.c (lto_1_to_1_map): Skip clones.
5223         (read_cgraph_and_symbols): Do not mark everything as needed.
5224         (do_whole_program_analysis): Do map only after optimizing;
5225         set proper cgraph_state; use passmanager.
5226
5227 2010-04-19  DJ Delorie  <dj@redhat.com>
5228
5229         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5230         POINTER_PLUS_EXPR and fix them.
5231
5232 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5233
5234         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5235         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5236         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5237         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5238         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5239         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5240         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5241         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5242         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5243         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5244         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5245
5246 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5247
5248         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5249         (check_cond_move_block): Likewise.
5250         (cond_move_process_if_block): Likewise.
5251         (noce_find_if_block): Improve formatting.
5252         (find_if_header): Pass 0 to memset and tweak conditions.
5253         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5254
5255 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5256
5257         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5258         for -gdwarf-4.
5259
5260         PR middle-end/43337
5261         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5262         with non-local decl doesn't need chain.
5263
5264 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5265
5266         * ira-color.c (allocno_reload_assign): Avoid accumulating
5267         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5268
5269 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5270
5271         * gimple.h (create_tmp_reg): Declare.
5272         * gimplify.c (create_tmp_reg): New function.
5273         (gimplify_return_expr): Use create_tmp_reg.
5274         (gimplify_omp_atomic): Likewise.
5275         (gimple_regimplify_operands): Likewise.
5276         * tree-dfa.c (make_rename_temp): Likewise.
5277         * tree-predcom.c (predcom_tmp_var): Likewise.
5278         (reassociate_to_the_same_stmt): Likewise.
5279         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5280         (get_replaced_param_substitute): Likewise.
5281         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5282         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5283         * tree-ssa-pre.c (get_representative_for): Likewise.
5284         (create_expression_by_pieces): Likewise.
5285         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5286         (create_tailcall_accumulator): Likewise.
5287
5288 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5289
5290         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5291         new_stmt.
5292         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5293
5294 2010-04-19  Richard Guenther  <rguenther@suse.de>
5295
5296         PR tree-optimization/43796
5297         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5298         from SCEV in the lattice.
5299         (vrp_visit_phi_node): Dump change.
5300
5301 2010-04-19  Richard Guenther  <rguenther@suse.de>
5302
5303         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5304         * configure: Re-generated.
5305
5306 2010-04-19  Richard Guenther  <rguenther@suse.de>
5307
5308         PR tree-optimization/43783
5309         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5310         constant ARRAY_REF operands two and three if possible.
5311
5312 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5313
5314         PR target/43766
5315         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5316
5317 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5318
5319         PR target/43662
5320         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5321
5322 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5323
5324         PR tree-optimization/37027
5325         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5326         and macro to access it.
5327         (vectorizable_reduction): Add argument.
5328         (vect_get_slp_defs): Likewise.
5329         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5330         statements for possible use in SLP.
5331         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5332         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5333         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5334         add new argument.
5335         (vectorizable_reduction): Likewise.
5336         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5337         vect_get_slp_defs.
5338         (vectorizable_type_demotion, vectorizable_type_promotion,
5339         vectorizable_store): Likewise.
5340         (vect_analyze_stmt): Update call to vectorizable_reduction.
5341         (vect_transform_stmt): Likewise.
5342         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5343         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5344         from different interleaving chains in same node.
5345         (vect_slp_rearrange_stmts): New function.
5346         (vect_supported_load_permutation_p): Allow load permutations for
5347         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5348         inside SLP nodes if necessary.
5349         (vect_analyze_slp_instance): Handle reductions.
5350         (vect_analyze_slp): Try to build SLP instances originating from groups
5351         of reductions.
5352         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5353         (vect_get_constant_vectors): Create initial vectors for reductions
5354         according to reduction code. Add new argument.
5355         (vect_get_slp_defs): Add new argument, pass it to
5356         vect_get_constant_vectors.
5357         (vect_schedule_slp_instance): Remove SLP tree root statements.
5358
5359 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5360
5361         * tree.h (ENUM_IS_SCOPED): Define.
5362         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5363         for ENUM_IS_SCOPED enums.
5364
5365 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5366
5367         * fold-const.c (fold_comparison): Use ssizetype.
5368         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5369         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5370         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5371         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5372
5373         * tree.h (initialize_sizetypes): Remove parameter.
5374         (build_common_tree_nodes): Remove second parameter.
5375         * stor-layout.c (initialize_sizetypes): Remove parameter.
5376         Always create an unsigned type.
5377         (set_sizetype): Assert that the passed type is unsigned and simplify.
5378         * tree.c (build_common_tree_nodes): Remove second parameter.
5379         Adjust call to initialize_sizetypes.
5380         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5381         build_common_tree_nodes.
5382
5383 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5384
5385         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5386
5387 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5388
5389         PR tree-optimization/43771
5390         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5391         load permutation doesn't have gaps.
5392
5393 2010-04-18  Jan Hubicka  <jh@suse.cz>
5394
5395         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5396         (sse_prologue_save_insn expander): Use new pattern.
5397         (sse_prologue_save_insn1): New pattern and splitter.
5398         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5399         blocks.
5400         * i386.c (setup_incoming_varargs_64): Do not compute jump
5401         destination here.
5402         (ix86_gimplify_va_arg): Update alignment needed.
5403         (ix86_local_alignment): Do not align all local arrays to 128bit.
5404
5405 2010-04-17  Jan Hubicka  <jh@suse.cz>
5406
5407         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5408
5409 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5410
5411         * arm.md (negdi2): Remove redundant code to force values into a
5412         register.
5413
5414 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5415
5416         * arm/bpabi.S: Add EABI alignment attributes to objects.
5417         * arm/bpabi-v6m.S: Likewise.
5418         * arm/crti.asm: Likewise.
5419         * arm/crtn.asm: Likewise.
5420         * arm/lib1funcs.asm: Likewise.
5421         * arm/libunwind.S: Likewise.
5422
5423 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5424
5425         * arm-protos.h (tune_params): New structure.
5426         * arm.c (current_tune): New variable.
5427         (arm_constant_limit): Delete.
5428         (struct processors): Add pointer to the tune parameters.
5429         (arm_slowmul_tune): New tuning option.
5430         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5431         (all_cores): Adjust to pick up the tuning model.
5432         (arm_constant_limit): New function.
5433         (arm_override_options): Select the appropriate tuning model.  Delete
5434         initialization of arm_const_limit.
5435         (arm_split_constant): Use the new constant-limit model.
5436         (arm_rtx_costs): Pick up the current tuning model.
5437         * arm.md (is_strongarm, is_xscale): Delete.
5438         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5439         for Xscale variant architectures.
5440         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5441
5442 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5443
5444         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5445         can_shift.
5446         (arm_rtx_costs_1): Remove unused variable extra_cost.
5447         (arm_unwind_emit_set): Use variable offset.
5448         (thumb1_output_casesi): Remove unused variable flags.
5449
5450 2010-04-16  Jeff Law  <law@redhat.com>
5451
5452         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5453         needing assignment rather than doing a two-phase assignment.  Remove
5454         unused variable 'm'.
5455
5456 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5457
5458         PR bootstrap/43767
5459         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5460
5461 2010-04-16  Doug Kwan  <dougkwan@google.com>
5462
5463         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5464         (next_operand_entry_id): New static variable.
5465         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5466         (add_to_ops_vec): Assigned unique ID to operand entry.
5467         (struct oecount_s): New field ID.
5468         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5469         (undistribute_ops_list): Assign unique IDs to oecounts.
5470         (init_reassoc): reset next_operand_entry_id.
5471
5472 2010-04-16  Doug Kwan  <dougkwan@google.com>
5473
5474         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5475         missing left parenthesis.
5476
5477 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5478
5479         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5480         *btdi_rex64 using SWI48 mode iterator.
5481         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5482         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5483         *jcc_btdi_mask_rex64.
5484
5485 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5486
5487         * double-int.h (tree_to_double_int): Convert to macro.
5488         * double-int.c (tree_to_double_int): Remove.
5489
5490 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5491
5492         PR debug/43762
5493         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5494         with want_address 2 and in case a single element list might be
5495         possible, call it again with want_address 0.
5496
5497 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5498
5499         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5500         case 'W' print operands for HI mode.
5501         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5502         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5503         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5504         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5505
5506         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5507
5508         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5509         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5510         #xx:3 and #xx:4 mode.
5511
5512         * config/h8300/h8300.md (inverted load with HImode dest): Add
5513         support for H8300SX.
5514
5515         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5516         satisfy 'U' constraint.
5517
5518 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5519
5520         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5521         * configure: Regenerate.
5522         * config.in: Regenerate.
5523         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5524         works.
5525
5526 2010-04-16  Richard Guenther  <rguenther@suse.de>
5527
5528         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5529         (struct tree_decl_common): ... here.
5530         (DECL_PT_UID): Adjust.
5531         (SET_DECL_PT_UID): Likewise.
5532         (DECL_PT_UID_SET_P): Likewise.
5533
5534 2010-04-16  Richard Guenther  <rguenther@suse.de>
5535
5536         PR tree-optimization/43572
5537         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5538         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5539         * tree-flow.h (is_call_clobbered): Remove.
5540         * tree-flow-inline.h (is_call_clobbered): Likewise.
5541         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5542         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5543         (execute_return_slot_opt): Adjust.
5544         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5545         check for call clobbered vars here.
5546         (find_tail_calls): Move tailcall verification to the
5547         proper place.
5548
5549 2010-04-16  Diego Novillo  <dnovillo@google.com>
5550
5551         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5552
5553 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5554
5555         PR target/40603
5556         * config/arm/arm.md (cbranchqi4): New pattern.
5557         * config/arm/predicates.md (const0_operand,
5558         cbranchqi4_comparison_operator): New predicates.
5559
5560 2010-04-16  Richard Guenther  <rguenther@suse.de>
5561
5562         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5563         (dump_gimple_stmt): Likewise.
5564
5565 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5566
5567         * recog.h (struct recog_data): New field is_operator.
5568         (struct insn_operand_data): New field is_operator.
5569         * recog.c (extract_insn): Set recog_data.is_operator.
5570         * genoutput.c (output_operand_data): Emit code to set the
5571         is_operator field.
5572         * reload.c (find_reloads): Use it rather than testing for an
5573         empty constraint string.
5574
5575         PR target/41514
5576         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5577         If the previous insn is a cbranchsi4_insn with the same arguments,
5578         omit the compare instruction.
5579
5580         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5581         register, inputs must be low registers and we need a low register
5582         scratch.  Handle alternative 2 like alternative 3.
5583
5584 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5585
5586         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5587         don't call get_addr on both.  If one expression is a VALUE and
5588         the other a REG, check VALUE's locs if the REG isn't among them.
5589
5590 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5591
5592         * config/sh/sh.h (sh_frame_pointer_required): New function.
5593         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5594         (flag_omit_frame_pointer) Set.
5595         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5596         (rounded_frame_size): Adjust size with outgoing_args_size.
5597         (sh_set_return_address): Must return from stack pointer.
5598         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5599         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5600         (ACCUMULATE_OUTGOING_ARGS): Define.
5601         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5602         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5603
5604 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5605
5606         PR target/43471
5607         * config/sh/sh.c (sh_legitimize_reload_address): Use
5608         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5609         Remove a unneeded check for offset_base.
5610
5611 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5612
5613         * configure: Regenerated.
5614
5615 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5616
5617         * config/s390/s390.c (s390_call_save_register_used): Switch back
5618         to HARD_REGNO_NREGS.
5619
5620 2010-04-15  Richard Guenther  <rguenther@suse.de>
5621
5622         * alias.c (alias_set_subset_of): Handle alias-set zero
5623         child properly.
5624
5625 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5626             Julian Brown  <julian@codesourcery.com>
5627
5628         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5629         alternatives according to use of high and low regs.
5630         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5631         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5632         optimizing for size on Thumb-2.
5633
5634 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5635
5636         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5637
5638 2010-04-15  Richard Guenther  <rguenther@suse.de>
5639
5640         * tree-ssa-structalias.c (struct variable_info): Add
5641         is_fn_info flag.
5642         (new_var_info): Initialize it.
5643         (dump_constraints): Support printing last added constraints.
5644         (debug_constraints): Adjust.
5645         (dump_constraint_graph): Likewise.
5646         (make_heapvar_for): Check for NULL cfun.
5647         (get_function_part_constraint): New function.
5648         (get_fi_for_callee): Likewise.
5649         (find_func_aliases): Properly implement IPA PTA constraints.
5650         (process_ipa_clobber): New function.
5651         (find_func_clobbers): Likewise.
5652         (insert_into_field_list_sorted): Remove.
5653         (create_function_info_for): Properly allocate vars for IPA mode.
5654         Do not use insert_into_field_list_sorted.
5655         (create_variable_info_for): Properly generate constraints for
5656         global vars in IPA mode.
5657         (dump_solution_for_var): Always dump the solution.
5658         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5659         (find_what_var_points_to): Adjust.
5660         (pt_solution_set): Change.
5661         (pt_solution_ior_into): New function.
5662         (pt_solution_empty_p): Export.
5663         (pt_solution_includes_global): Adjust.
5664         (pt_solution_includes_1): Likewise.
5665         (pt_solutions_intersect_1): Likewise.
5666         (dump_sa_points_to_info): Check some invariants.
5667         (solve_constraints): Move constraint dumping ...
5668         (compute_points_to_sets): ... here.
5669         (ipa_pta_execute): ... and here.
5670         (compute_may_aliases): Do not re-compute points-to info
5671         locally if IPA info is available.
5672         (ipa_escaped_pt): New global var.
5673         (ipa_pta_execute): Properly implement IPA PTA.
5674         * tree-into-ssa.c (dump_decl_set): Support dumping
5675         decls not in referenced-vars.
5676         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5677         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5678         (dump_points_to_solution): Likewise.
5679         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5680         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5681         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5682         (copy_decl_to_var): Copy DECL_PT_UID.
5683         (copy_result_decl_to_var): Likewise.
5684         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5685         (copy_node_stat): Copy it.
5686         * tree.h (DECL_PT_UID): New macro.
5687         (SET_DECL_PT_UID): Likewise.
5688         (DECL_PT_UID_SET_P): Likewise.
5689         (struct tree_decl_minimal): Add pt_uid member.
5690         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5691         (pt_solution_empty_p): Declare.
5692         (pt_solution_set): Adjust.
5693         (ipa_escaped_pt): Declare.
5694         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5695         * gimple-pretty-print.c (pp_points_to_solution): New function.
5696         (dump_gimple_call): Dump call clobber/use information.
5697         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5698         * tree-pass.h (TDF_ALIAS): New dump option.
5699         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5700         * doc/invoke.texi (-fipa-pta): Update documentation.
5701
5702 2010-04-15  Richard Guenther  <rguenther@suse.de>
5703
5704         * Makefile.in (OBJS-common): Add gimple-fold.o.
5705         (gimple-fold.o): New rule.
5706         * tree.h (maybe_fold_offset_to_reference,
5707         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5708         prototypes ...
5709         * gimple.h: ... here.
5710         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5711         may_propagate_address_into_dereference): Move prototypes ...
5712         * gimple.h: ... here.
5713         * tree-ssa-ccp.c (get_symbol_constant_value,
5714         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5715         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5716         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5717         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5718         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5719         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5720         gimplify_and_update_call_from_tree): Move ...
5721         * gimple-fold.c: ... here.  New file.
5722         (ccp_fold_builtin): Rename to ...
5723         (gimple_fold_builtin): ... this.
5724         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5725
5726 2010-04-15  Richard Guenther  <rguenther@suse.de>
5727
5728         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5729         fit_double_type, force_fit_type_double, add_double_with_sign,
5730         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5731         lrotate_double, rrotate_double, div_and_round_double): Move ...
5732         * double-int.c: ... here.
5733         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5734         add_double, neg_double, mul_double_with_sign, mul_double,
5735         lshift_double, rshift_double, lrotate_double, rrotate_double,
5736         div_and_round_double): Move prototypes ...
5737         * double-int.h: ... here.
5738
5739 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5740
5741         PR target/43742
5742         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5743         matching constraints to ensure inputs match the output.
5744
5745 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5746
5747         PR target/43742
5748         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5749         in an input-only operand.
5750
5751 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5752
5753         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5754         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5755         (double_int_negative_p): Convert to static inline function.
5756         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5757         (double_int_negative_p): Remove.
5758         * tree.h (lshift_double, rshift_double):
5759         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5760         * fold-const.c (fold_convert_const_int_from_real,
5761         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5762         (lshift_double): Change type of arith argument to bool.
5763         (rshift_double): Change type of arith argument to bool. Correct
5764         comment.
5765         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5766
5767 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5768
5769         PR target/21803
5770         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5771         at the start and end of the then/else blocks, and omit them from the
5772         conversion.
5773         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5774         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5775         (flow_find_head_matching_sequence): New function.
5776         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5777         * basic-block.h (flow_find_cross_jump,
5778         flow_find_head_matching_sequence): Declare functions.
5779
5780 2010-04-14  Jason Merrill  <jason@redhat.com>
5781
5782         PR c++/36625
5783         * c-common.c (attribute_takes_identifier_p): New fn.
5784         * c-common.h: Declare it.
5785
5786 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5787
5788         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5789         splitter condition.
5790         (*udivmod<mode>4): Ditto.
5791
5792 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5793
5794         * config/i386/i386.md (maxmin_int): Rename code attribute from
5795         maxminiprefix and update all users.
5796         (maxmin_float): Ditto from maxminfprefix.
5797         (logic): Ditto from logicprefix.
5798         (absneg_mnemonic): Ditto from absnegprefix.
5799         * config/i386/mmx.md: Update all users of maxminiprefix,
5800         maxminfprefix and logicprefix for rename.
5801         * config/i386/sse.md: Ditto.
5802         * config/i386/sync.md (sync_<code><mode>): Update for
5803         logicprefix rename.
5804
5805 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5806
5807         PR 42966
5808         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5809         warnings converted to errors.
5810
5811 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5812
5813         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5814         used insn_type variable.
5815         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5816         to avoid set-but-not-used warning.
5817
5818 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5819
5820         * df-core.c (df_ref_debug): Change format string placeholder
5821         from 0x%x to %#x.
5822         * dwarf2asm.c (dw2_asm_output_data_raw,
5823         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5824         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5825         * dwarf2out.c (output_cfi, output_cfi_directive,
5826         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5827         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5828         Ditto.
5829         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5830         * print-rtl.c (print_rtx): Ditto.
5831
5832 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5833
5834         PR middle-end/42694
5835         * builtins.c (expand_builtin_pow_root): New function to expand pow
5836         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5837         series of sqrt and cbrt calls under -ffast-math.
5838         (expand_builtin_pow): Call it.
5839
5840 2010-04-14  Michael Matz  <matz@suse.de>
5841
5842         PR tree-optimization/42963
5843         * tree-cfg.c (touched_switch_bbs): New static variable.
5844         (group_case_labels_stmt): New function broken out from ...
5845         (group_case_labels): ... here, use the above.
5846         (start_recording_case_labels): Allocate touched_switch_bbs.
5847         (end_recording_case_labels): Deallocate it, call
5848         group_case_labels_stmt.
5849         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5850
5851 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5852
5853         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5854         from insn template.
5855
5856 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5857
5858         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5859
5860 2010-04-13  Jan Hubicka  <jh@suse.cz>
5861
5862         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5863         of optimized out static functions.
5864         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5865         cost computation.  Also sanity check for overflows.
5866         (update_caller_keys): Update cgraph_edge_badness call; properly
5867         update fibheap and sanity check that it is up to date.
5868         (add_new_edges_to_heap): Update cgraph_edge_badness.
5869         (cgraph_decide_inlining_of_small_function): Likewise;
5870         add sanity checking that badness in heap is up to date;
5871         improve dumping of reason; Update badness of calls to the
5872         offline copy of function currently inlined; dump badness
5873         of functions not inlined because of unit growth limits.
5874
5875 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5876
5877         PR middle-end/32628
5878         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5879         because of sign-extension change when converting to sizetype here...
5880         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5881
5882         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5883         the folding to constants.  Remove redundant final conversion.
5884         (fold_binary) <associate>: Do not associate if the re-association of
5885         constants alone overflows.
5886         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5887         to the end of the list.
5888         (multiple_of_p) <COND_EXPR>: New case.
5889
5890 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5891
5892         * opt-functions.awk (opt_sanitized_name): New.
5893         (opt_enum): New.
5894         * optc-gen.awk: Use it
5895         * opth-gen.awk: Use it.
5896
5897 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5898
5899         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5900         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5901         children.  Call replace_uses_with_default_def_ssa_name to handle
5902         SSA_NAES on lhs.
5903
5904 2010-04-13  Michael Matz  <matz@suse.de>
5905
5906         PR middle-end/43730
5907         * builtins.c (expand_builtin_interclass_mathfn): Also create
5908         a register if the predicate doesn't match.
5909
5910 2010-04-13  Diego Novillo  <dnovillo@google.com>
5911
5912         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5913         * c-pch.c: Include timevar.h.
5914         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5915         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5916         * ggc-common.c: Include timevar.h.
5917         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5918         * timevar.def (TV_PCH_SAVE): Define.
5919         (TV_PCH_CPP_SAVE): Define.
5920         (TV_PCH_PTR_REALLOC): Define.
5921         (TV_PCH_PTR_SORT): Define.
5922         (TV_PCH_RESTORE): Define.
5923         (TV_PCH_CPP_RESTORE): Define.
5924
5925 2010-04-13  Michael Matz  <matz@suse.de>
5926
5927         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5928         into MINUS_EXPRs.
5929         (can_reassociate_p): New function.
5930         (break_up_subtract_bb, reassociate_bb): Use it.
5931
5932 2010-04-13  Richard Guenther  <rguenther@suse.de>
5933
5934         PR bootstrap/43737
5935         * builtins.c (c_readstr): Fix assert.
5936
5937 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5938
5939         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5940         when generating cltd insn.
5941
5942         (*ashl<mode>3_1): Remove special handling for register operand 2.
5943         (*ashlsi3_1_zext): Ditto.
5944         (*ashlhi3_1): Ditto.
5945         (*ashlhi3_1_lea): Ditto.
5946         (*ashlqi3_1): Ditto.
5947         (*ashlqi3_1_lea): Ditto.
5948         (*<shiftrt_insn><mode>3_1): Ditto.
5949         (*<shiftrt_insn>si3_1_zext): Ditto.
5950         (*<shiftrt_insn>qi3_1_slp): Ditto.
5951         (*<rotate_insn><mode>3_1): Ditto.
5952         (*<rotate_insn>si3_1_zext): Ditto.
5953         (*<rotate_insn>qi3_1_slp): Ditto.
5954
5955 2010-04-13  Richard Guenther  <rguenther@suse.de>
5956
5957         * tree-ssa-structalias.c (callused_id): Remove.
5958         (call_stmt_vars): New.
5959         (get_call_vi): Likewise.
5960         (lookup_call_use_vi): Likewise.
5961         (lookup_call_clobber_vi): Likewise.
5962         (get_call_use_vi): Likewise.
5963         (get_call_clobber_vi): Likewise.
5964         (make_transitive_closure_constraints): Likewise.
5965         (handle_const_call): Adjust to do per-call call-used handling.
5966         (handle_pure_call): Likewise.
5967         (find_what_var_points_to): Remove general callused handling.
5968         (init_base_vars): Likewise.
5969         (init_alias_vars): Initialize call_stmt_vars.
5970         (compute_points_to_sets): Process call-used and call-clobbered
5971         vars for call statements.
5972         (delete_points_to_sets): Free call_stmt_vars.
5973
5974 2010-04-13  Richard Guenther  <rguenther@suse.de>
5975
5976         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5977         Only add RW dependence for dependence distance zero.
5978         Adjust maximal vectorization factor according to dependences.
5979         Move alignment handling ...
5980         (vect_find_same_alignment_drs): ... here.  New function.
5981         (vect_analyze_data_ref_dependences): Adjust.
5982         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5983         (vect_analyze_data_refs): Adjust minimal vectorization factor
5984         according to data references.
5985         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5986         dependences before determining the vectorization factor.
5987         Analyze alignment after determining the vectorization factor.
5988         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5989         dependences before alignment.
5990         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5991         Adjust prototype.
5992         (vect_analyze_data_refs): Likewise.
5993         (MAX_VECTORIZATION_FACTOR): New define.
5994
5995 2010-04-13  Duncan Sands  <baldrick@free.fr>
5996
5997         * except.h (lang_eh_type_covers): Remove.
5998         * except.c (lang_eh_type_covers): Likewise.
5999
6000 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6001             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6002
6003         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
6004         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
6005         UNITS_PER_LONG where it is ABI relevant.
6006         (s390_return_addr_rtx): Likewise.
6007         (s390_back_chain_rtx): Likewise.
6008         (s390_frame_area): Likewise.
6009         (s390_frame_info): Likewise.
6010         (s390_initial_elimination_offset): Likewise.
6011         (save_gprs): Likewise.
6012         (s390_emit_prologue): Likewise.
6013         (s390_emit_epilogue): Likewise.
6014         (s390_function_arg_advance): Likewise.
6015         (s390_function_arg): Likewise.
6016         (s390_va_start): Likewise.
6017         (s390_gimplify_va_arg): Likewise.
6018         (s390_function_profiler): Likewise.
6019         (s390_optimize_prologue): Likewise.
6020         (s390_rtx_costs): Likewise.
6021         (s390_secondary_reload): Likewise.
6022         (s390_promote_function_mode): Likewise.
6023         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
6024         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
6025         registers available.
6026         (s390_unwind_word_mode): New function.
6027         (s390_function_value): Split 64 bit values into register pair if
6028         used as return value.
6029         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
6030         function call parameters.  Handle parallels.
6031         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
6032         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
6033         (DWARF_CIE_DATA_ALIGNMENT): New macro.
6034         (s390_expand_setmem): Remove unused variable src_addr.
6035         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
6036         deal with 64 bit registers.
6037         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
6038         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
6039         (UNITS_PER_LONG): New macro.
6040         * libjava/include/s390-signal.h: Define extended ucontext
6041         structure containing the upper halfs of the 64 bit registers.
6042
6043 2010-04-13  Simon Baldwin  <simonb@google.com>
6044
6045         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
6046
6047 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
6048
6049         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
6050         rvalue on the RHS if the LHS is of a non-renamable type.
6051         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
6052
6053 2010-04-13  Matthias Klose  <doko@ubuntu.com>
6054
6055         * gcc.c (cc1_options): Handle -iplugindir before processing
6056         the cc1 spec. Only add -iplugindir once.
6057         (cpp_unique_options): Add -iplugindir option if -fplugin* options
6058         found.
6059         * common.opt (iplugindir): Remove `Separate' property, initialize.
6060         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
6061         option.
6062         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
6063         (distclean): Remove plugin dir.
6064         * doc/invoke.texi: Document -iplugindir.
6065
6066 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
6067
6068         * doc/plugins.texi (Loading Plugins): Document short
6069         -fplugin=foo option.
6070         (Plugin API): Mention default_plugin_dir_name function.
6071
6072         * gcc.c (find_file_spec_function): Add new declaration.
6073         (static_spec_func): Use it for "find-file".
6074         (find_file_spec_function): Add new function.
6075         (cc1_options): Add -iplugindir option if -fplugin* options found.
6076
6077         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
6078
6079         * plugin.c (add_new_plugin): Updated comment, and handle short
6080         plugin name.
6081         (default_plugin_dir_name): Added new function.
6082
6083         * common.opt (iplugindir): New option to set the plugin directory.
6084
6085 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
6086
6087         * config/i386/i386.md (any_rotate): New code iterator.
6088         (rotate_insn): New code attribute.
6089         (rotate): Ditto.
6090         (SWIM124): New mode iterator.
6091         (<rotate_insn>ti3): New expander.
6092         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
6093         any_rotate code iterator.
6094         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
6095         using any_rotate code iterator and SWIM124 mode iterator.
6096         (ix86_rotlti3): New insn_and_split pattern.
6097         (ix86_rotrti3): Ditto.
6098         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
6099         ix86_rotl{di,ti}3 patterns.
6100         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
6101         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
6102         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
6103         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
6104         code iterator and SWI mode iterator.
6105         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
6106         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
6107         code iterator.
6108         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
6109         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
6110         (bswap rotatert splitter): Add splitter.
6111         (bswap splitter): Macroize splitter using any_rotate code iterator.
6112         Add insn predicate to split only for TARGET_USE_XCHGB or when
6113         optimizing function for size.
6114
6115 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6116
6117         * config/pa/pa.c (emit_move_sequence): Remove use of
6118         deleted variable flag_argument_noalias.
6119
6120 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6121
6122         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
6123         configurations.
6124         Add to unsupported targets list.
6125         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
6126         sparc*-sun-solaris2.[567]* from target lists.
6127         * configure: Regenerate.
6128         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
6129         removal.
6130         Remove Solaris 7 patch references.
6131         (Specific, sparc-sun-solaris2.7): Removed.
6132         (sparc-sun-solaris2*): Update Solaris 7 example.
6133         (sparc64-*-solaris2*): Likewise.
6134
6135 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6136
6137         * config.build (alpha*-dec-osf4*): Remove.
6138         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
6139         of obsolete configurations.
6140         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
6141         support.
6142         * config/alpha/t-osf4: Renamed to ...
6143         * config/alpha/t-osf5: ... this.
6144         * config/alpha/osf.h: Renamed to ...
6145         * config/alpha/osf5.h: ... this.
6146         Merged old osf5.h contents.
6147         Update comments.
6148         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
6149         (EXTRA_SPECS): Removed.
6150         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
6151         reflect removal of Tru64 UNIX V4.0/V5.0 support.
6152         Document that.
6153
6154 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6155
6156         * doc/contrib.texi (Contributors, Rainer Orth): Update.
6157
6158 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
6159
6160         PR/43702
6161         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
6162         __thiscall convention.
6163
6164 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6165
6166         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
6167         orig_base.
6168         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
6169
6170 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6171
6172         * function.c (assign_parms_initialize_all): Add unused attribute
6173         to fntype.
6174
6175 2010-04-12  Richard Guenther  <rguenther@suse.de>
6176
6177         * gsstruct.def (GSS_CALL): New.
6178         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
6179         * gimple.h: Include tree-ssa-alias.h.
6180         (struct gimple_statement_call): New.
6181         (union gimple_statement_struct_d): Add gimple_call member.
6182         (gimple_call_reset_alias_info): Declare.
6183         (gimple_call_use_set): New function.
6184         (gimple_call_clobber_set): Likewise.
6185         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
6186         * gimple.c (gimple_call_reset_alias_info): New function.
6187         (gimple_build_call_1): Call it.
6188         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6189         * tree-inline.c (remap_gimple_stmt): Likewise.
6190         (expand_call_inline): Remove callused handling.
6191         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
6192         * tree-dfa.c (dump_variable): Likewise.
6193         * tree-parloops.c (parallelize_loops): Likewise.
6194         * tree-ssa.c (init_tree_ssa): Likewise.
6195         (delete_tree_ssa): Likewise.
6196         * tree-flow-inline.h (is_call_used): Remove.
6197         * tree-flow.h (struct gimple_df): Remove callused member.
6198         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
6199         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
6200         (ref_maybe_used_by_call_p_1): Simplify.
6201         (call_may_clobber_ref_p_1): Likewise.
6202         * tree-ssa-structalias.c (compute_points_to_sets): Set
6203         the call stmt used and clobbered sets.
6204         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
6205         (find_tail_calls): Verify the tail call.
6206
6207 2010-04-12  Richard Guenther  <rguenther@suse.de>
6208
6209         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6210         single-iteration always-inline inlining.
6211         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6212         (cgraph_decide_inlining): Do not handle always-inline specially.
6213         (try_inline): Remove always-inline cycle detection special case.
6214         Do not recurse on always-inlines.
6215         (cgraph_early_inlining): Do not iterate if not optimizing.
6216         (cgraph_gate_early_inlining): remove.
6217         (pass_early_inline): Run unconditionally.
6218         (gate_cgraph_decide_inlining): New function.
6219         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6220         not inlining or optimizing.
6221         (cgraph_decide_inlining_of_small_functions): Also consider
6222         always-inline functions.
6223         (cgraph_default_inline_p): Return true for nodes which should
6224         disregard inline limits.
6225         (estimate_function_body_sizes): Assume zero size and time for
6226         nodes which are marked as disregarding inline limits.
6227         (cgraph_decide_recursive_inlining): Do not perform recursive
6228         inlining on always-inline nodes.
6229
6230 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6231
6232         PR bootstrap/43699
6233         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6234         for exprs satisfying handled_component_p.
6235
6236 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6237
6238         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6239         non-constant aggregate elements.
6240
6241         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6242         is a real initialization.
6243
6244 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6245
6246         PR c/36774
6247         * c-decl.c (start_function): Move forward check for nested function.
6248
6249 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6250
6251         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6252         * config/sh/sh.c: Include reload.h.
6253         (sh_legitimize_reload_address): New.
6254         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6255         sh_legitimize_reload_address.
6256
6257 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6258
6259         * config/sh/sh.md (*movqi_pop): New insn pattern.
6260         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6261
6262 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6263
6264         * config/i386/i386.md (any_shiftrt): New code iterator.
6265         (shiftrt_insn): New code attribute.
6266         (shiftrt): Ditto.
6267         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6268         using any_shiftrt code iterator.
6269         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6270         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6271         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6272         pattern from corresponding peephole2 patterns.
6273         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6274         using any_shiftrt code iterator.
6275         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6276         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6277         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6278         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6279         *{ashr,lshr}<mode>3_cmp_zext.
6280         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6281
6282 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6283
6284         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6285         scratch register.
6286         (*lshr<mode>3_cconly): Ditto.
6287
6288 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6289
6290         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6291         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6292         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6293         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6294         DWI mode iterator.
6295         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6296         from corresponding peephole2 patterns.
6297         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6298         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6299         and *lshrdi3_1_rex64 using SWI mode iterator.
6300         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6301         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6302         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6303         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6304         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6305         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6306         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6307         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6308         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6309         SWI mode iterator.
6310
6311 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6312
6313         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6314         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6315         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6316         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6317         DWI mode iterator.
6318         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6319         from corresponding peephole2 patterns.
6320         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6321         (ashrsi3_cvt): Rename from ashrsi3_31.
6322         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6323         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6324         and x86_64_shift_adj_3 using SWI48 mode iterator.
6325         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6326         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6327         and *ashrdi3_1_rex64 using SWI mode iterator.
6328         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6329         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6330         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6331         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6332         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6333         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6334         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6335         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6336         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6337         SWI mode iterator.
6338         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6339         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6340         x86_shift<mode>_adj_3 expanders.
6341
6342 2010-04-10  Wei Guozhi  <carrot@google.com>
6343
6344         PR target/42601
6345         * config/arm/arm.c (arm_pic_static_addr): New function.
6346         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6347         a static symbol.
6348         (arm_output_addr_const_extra): Output expression for new pattern.
6349         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6350
6351 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6352
6353         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6354         not enabled.
6355
6356         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6357         * web.c: Include "insn-config.h" and "recog.h".
6358         (union_match_dups): New function.
6359         (web_main): Call it.
6360         (union_defs): Don't try to recognize match_dups.
6361
6362         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6363         if doing so would replace the entire pattern.
6364
6365 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6366
6367         PR target/43707
6368         PR target/43709
6369         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6370         and splitter pattern.  Change splitter operand 1 predicate to
6371         nonmemory_operand.
6372
6373 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6374
6375         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6376         lattices are addresses of CONST_DECLs with the same initial value.
6377         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6378         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6379
6380 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6381             Bernd Schmidt  <bernds@codesourcery.com>
6382
6383         * loop-invariant.c (replace_uses): New static function.
6384         (move_invariant_reg): Use it to ensure we can replace the uses.
6385
6386 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6387
6388         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6389         function template.
6390         (picochip_override_options): Enable section anchors only above -O1.
6391         (picochip_reorg): Fixed a couple of build warnings.
6392
6393 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6394
6395         * configure.ac (plugin -rdynamic test): Log result.
6396         * configure: Regenerate.
6397         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6398         (RDYNAMIC_SPEC): Define.
6399         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6400
6401 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6402
6403         * configure.ac: Determine Sun ld version numbers.
6404         (comdat_group): Restrict GNU ld version checks to gld.
6405         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6406         (enable_comdat): Support --enable-comdat.
6407         * configure: Regenerate.
6408         * doc/install.texi (Configuration): Document --enable-comdat.
6409
6410 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6411
6412         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6413         * config/sol2-gld.h: ... here.
6414         * config.gcc (sparc*-*-solaris2*): Reflect this.
6415         (i[34567]86-*-solaris2*): Use it.
6416
6417 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6418
6419         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6420         setup_clocks_p.
6421         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6422
6423 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6424
6425         PR 42965
6426         * diagnostic.c (diagnostic_initialize): Initialize
6427         some_warnings_are_errors.
6428         (diagnostic_finish): New.
6429         (diagnostic_action_after_output): Call it before exiting.
6430         (diagnostic_report_diagnostic): Do not print message here. Set
6431         some_warnings_are_errors.
6432         * diagnostic.h (diagnostic_context): Delete
6433         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6434         (diagnostic_finish): Declare.
6435         * toplev.c (toplev_main): Call it before exit.
6436
6437 2010-04-09  Jason Merrill  <jason@redhat.com>
6438
6439         PR c++/42623
6440         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6441         for incomplete type.
6442
6443         PR c++/41788
6444         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6445         based on a warning flag.
6446
6447 2010-04-09  Richard Guenther  <rguenther@suse.de>
6448
6449         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6450
6451 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6452
6453         PR bootstrap/43684
6454         * varasm.c (default_assemble_visibility): Wrap vars that are
6455         set, but unused, by targets without GAS.
6456         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6457         Remove set, but unused, vars.
6458         (rs6000_legitimize_tls_address): Likewise.
6459         (altivec_expand_dst_builtin): Likewise.
6460         * config/darwin.c (machopic_classify_symbol): Likewise.
6461         (machopic_indirection_name): Likewise.
6462
6463 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6464
6465         * config/i386/i386.md (DWI): New mode iterator.
6466         (S): New mode attribute.
6467         (shift_operand): Ditto.
6468         (shift_immediate_operand): Ditto.
6469         (ashl_input_operand): Ditto.
6470         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6471         using SDWIM mode iterator.
6472         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6473         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6474         DWI mode iterator.
6475         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6476         from corresponding peephole2 patterns.
6477         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6478         and x86_64_shift_adj_1 using SWI48 mode iterator.
6479         (x86_shift<mode>_adj_2): Ditto.
6480         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6481         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6482         using SWI48 mode iterator.
6483         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6484         *ashldi3_cmp_rex64 using SWI mode iterator.
6485         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6486         *ashldi3_cconly_rex64 using SWI mode iterator.
6487         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6488         x86_shift<mode>_adj_{1,2}.
6489         (ix86_split_ashr): Ditto.
6490         (ix86_split_lshr): Ditto.
6491
6492 2010-04-09  Richard Guenther  <rguenther@suse.de>
6493
6494         * target.h (builtin_conversion): Pass in input and output types.
6495         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6496         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6497         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6498         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6499
6500         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6501         Handle AVX modes.
6502         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6503
6504 2010-04-09  Richard Guenther  <rguenther@suse.de>
6505
6506         PR target/43152
6507         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6508
6509 2010-04-09  Richard Guenther  <rguenther@suse.de>
6510
6511         * tree-vectorizer.h (struct _stmt_vec_info): Document
6512         that vectype is the type of the LHS.
6513         (supportable_widening_operation, supportable_narrowing_operation):
6514         Get both input and output vector types as arguments.
6515         (vect_is_simple_use_1): Declare.
6516         (get_same_sized_vectype): Likewise.
6517         * tree-vect-loop.c (vect_determine_vectorization_factor):
6518         Set STMT_VINFO_VECTYPE to the vector type of the def.
6519         (vectorizable_reduction): Adjust.
6520         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6521         Adjust.  Specify the output vector type.
6522         (vect_pattern_recog_1): Adjust.
6523         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6524         (vectorizable_call): Adjust.
6525         (vectorizable_conversion): Likewise.
6526         (vectorizable_operation): Likewise.
6527         (vectorizable_type_demotion): Likewise.
6528         (vectorizable_type_promotion): Likewise.
6529         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6530         the def.
6531         (vect_is_simple_use_1): New function.
6532         (supportable_widening_operation): Get both input and output
6533         vector types.
6534         (supportable_narrowing_operation): Likewise.
6535         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6536
6537 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6538
6539         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6540         __thiscall and _thiscall as predefined macros.
6541         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6542         thiscall attribute handling.
6543         (ix86_comp_type_attributes): Likewise.
6544         (ix86_function_regparm): Likewise.
6545         (ix86_return_pops_args): Likewise.
6546         (init_cumulative_args): Likewise.
6547         (find_drap_reg): Likewise.
6548         (ix86_static_chain): Likewise.
6549         (x86_this_parameter): Likewise.
6550         (x86_output_mi_thunk): Likewise.
6551         (ix86_attribute_table): Add description for thiscall attribute.
6552         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6553         * doc/extend.texi: Add documentation for thiscall.
6554
6555 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6556
6557         PR c++/28584
6558         * c.opt (Wint-to-pointer-cast): Available in C++.
6559         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6560
6561 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6562
6563         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6564         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6565         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6566         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6567         function type instead.  Reorder and simplify checks.
6568
6569         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6570
6571 2010-04-08  Jing Yu  <jingyu@google.com>
6572             Zdenek Dvorak  <ook@ucw.cz>
6573
6574         PR tree-optimization/42720
6575         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6576         loop unswitch conditions here from ...
6577         (tree_unswitch_single_loop): ... here.
6578
6579 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6580
6581         * tree-if-conv.c: Fix comments and simplify logic.
6582
6583 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6584
6585         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6586         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6587         (main_tree_if_conversion): Update call to tree_if_conversion.
6588
6589 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6590
6591         PR 42485
6592         * doc/invoke.texi (-b,-V): Delete.
6593         * doc/tm.texi: Do not mention -b.
6594         * gcc.c (display_help): Delete -b and -V.
6595         (process_command): Delete -b and -V.
6596         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6597
6598 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6599             Wolfgang Gellerich  <gellerich@de.ibm.com>
6600
6601         Implement target hook for loop unrolling
6602         * target.h (loop_unroll_adjust): Add a new target hook function.
6603         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6604         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6605         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6606         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6607         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6608         target hook.
6609         (decide_unroll_stupid): Likewise.
6610
6611 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6612
6613         PR target/43643
6614         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6615
6616 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6617
6618         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6619         (Specific, *-*-solaris2*): Likewise.
6620         Don't prefer Sun as over GNU as.
6621
6622 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6623
6624         * config/s390/s390.c (override_options): Adjust the z10 defaults
6625         for max-unroll-times, max-completely-peeled-insns
6626         and max-completely-peel-times.
6627
6628 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6629
6630         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6631         instructions for z10.
6632         (s390_expand_setmem): Likewise.
6633         (s390_expand_cmpmem): Likewise.
6634
6635 2010-04-08  Richard Guenther  <rguenther@suse.de>
6636
6637         PR tree-optimization/43679
6638         * tree-ssa-pre.c (eliminate): Only propagate copies.
6639
6640 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6641
6642         PR bootstrap/43681
6643         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6644         set but not used variable warning.
6645
6646 2010-04-08  Wei Guozhi  <carrot@google.com>
6647
6648         PR target/41653
6649         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6650         (arm_size_rtx_costs): Call the new function when optimized for size.
6651
6652 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6653
6654         PR debug/43670
6655         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6656         op0 is not a MEM, just return NULL instead of assertion
6657         failure.
6658         (discover_nonconstant_array_refs): Don't walk debug stmts.
6659
6660 2010-04-08  Doug Kwan  <dougkwan@google.com>
6661
6662         * configure.ac: Recognize gold and do not use its version number
6663         to test ld features.
6664         * configure: Regenerate.
6665
6666 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6667
6668         PR middle-end/40815
6669         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6670         (negate_value): Move code to push elements to broken_up_substracts ...
6671         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6672         negative pair to plus_negates.
6673         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6674
6675 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6676
6677         * doc/install.texi (Configuration): Move description of
6678         --enable-lto, --with-libelf*, --enable-gold from Java section to
6679         general section.
6680
6681         * doc/generic.texi (Working with declarations)
6682         (Function Properties, C and C++ Trees): Fix typos.
6683         * doc/sourcebuild.texi (Top Level): Likewise.
6684
6685 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6686
6687         PR c/18624
6688         * tree.h (DECL_READ_P): Define.
6689         (struct tree_decl_common): Add decl_read_flag.
6690         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6691         a set but not used warning.
6692         (merge_decls): Merge DECL_READ_P flag.
6693         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6694         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6695         * c-common.c (handle_used_attribute, handle_unused_attribute):
6696         Likewise.
6697         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6698         New prototypes.
6699         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6700         New functions.
6701         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6702         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6703         c_parser_binary_expression, c_parser_cast_expression,
6704         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6705         Call default_function_array_read_conversion instead of
6706         default_function_array_conversion where needed.
6707         (c_parser_unary_expression, c_parser_conditional_expression,
6708         c_parser_postfix_expression_after_primary, c_parser_initelt):
6709         Likewise.  Call mark_exp_read where needed.
6710         (c_parser_statement_after_labels, c_parser_asm_operands,
6711         c_parser_typeof_specifier, c_parser_sizeof_expression,
6712         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6713         where needed.
6714         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6715         New.
6716         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6717         (warn_unused_but_set_parameter): Default to warn_unused
6718         && extra_warnings.
6719         * doc/invoke.texi: Document -Wunused-but-set-variable and
6720         -Wunused-but-set-parameter.
6721
6722         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6723         used count variable.
6724         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6725         when operandN variables aren't used in the body of the expander
6726         or splitter.
6727         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6728         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6729         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6730         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6731         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6732         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6733         * tree.c (PROCESS_ARG): Likewise.
6734
6735 2010-04-07  Simon Baldwin  <simonb@google.com>
6736
6737         * diagnostic.h (diagnostic_override_option_index): New macro to
6738         set a diagnostic's option_index.
6739         * c-tree.h (c_cpp_error): Add warning reason argument.
6740         * opts.c (_warning_as_error_callback): New.
6741         (register_warning_as_error_callback): Store callback for
6742         warnings enabled via enable_warning_as_error.
6743         (enable_warning_as_error): Call callback, minor code tidy.
6744         * opts.h (register_warning_as_error_callback): Declare.
6745         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6746         response to -Werror=.
6747         (c_common_init_options): Register warning_as_error_callback in opts.c.
6748         * common.opt: Add -Wno-cpp option.
6749         * c-common.c (struct reason_option_codes_t): Map cpp warning
6750         reason codes to gcc option indexes.
6751         * (c_option_controlling_cpp_error): New function, lookup the gcc
6752         option index for a cpp warning reason code.
6753         * (c_cpp_error): Add warning reason argument, call
6754         c_option_controlling_cpp_error for diagnostic_override_option_index.
6755         * doc/invoke.texi: Document -Wno-cpp.
6756
6757 2010-04-07  Richard Guenther  <rguenther@suse.de>
6758
6759         * ipa-reference.c (mark_load): Use get_base_address.
6760         (mark_store): Likewise.
6761
6762         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6763         inserting GIMPLE_NOPs into the IL.
6764         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6765         Explicitly strip handled components and indirect references.
6766
6767         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6768         folding address expressions.
6769         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6770         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6771         operand_equal_p to compare decls.
6772         (ptr_deref_may_alias_decl_p): Likewise.
6773         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6774         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6775         Handle reversed comparison ops.
6776         * tree-sra.c (asm_visit_addr): Use get_base_address.
6777         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6778         * ipa-reference.c (mark_address): Use get_base_address.
6779
6780 2010-04-07  Richard Guenther  <rguenther@suse.de>
6781
6782         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6783         Propagate constants everywhere.
6784
6785 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6786
6787         PR debug/43516
6788         * tree.c (MAX_INT_CACHED_PREC): Define.
6789         (nonstandard_integer_type_cache): New array.
6790         (build_nonstandard_integer_type): Cache results for precision
6791         <= MAX_INT_CACHED_PREC.
6792
6793 2010-04-07  Richard Guenther  <rguenther@suse.de>
6794
6795         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6796         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6797         * common.opt: Likewise.
6798         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6799         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6800         (nonoverlapping_memrefs_p): Likewise.
6801         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6802         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6803         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6804         OPT_fargument_noalias_global for backward compatibility.
6805
6806 2010-04-07  Richard Guenther  <rguenther@suse.de>
6807
6808         PR tree-optimization/43270
6809         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6810         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6811         * tree-ssa-pre.c (phi_translate_1): Adjust.
6812         (fully_constant_expression): Split out vn_reference handling to ...
6813         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6814         Fold reads from constant strings.
6815         (vn_reference_lookup): Handle fully constant references.
6816         (vn_reference_lookup_pieces): Likewise.
6817         * Makefile.in (expmed.o-warn): Add -Wno-error.
6818
6819 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6820
6821         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6822
6823 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6824
6825         PR driver/41594
6826         * gcc.c: Add -static-libstdc++ to list of recognized options.
6827
6828 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6829
6830         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6831
6832 2010-04-07  Richard Guenther  <rguenther@suse.de>
6833
6834         PR middle-end/42617
6835         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6836         bases build simple mem attributes to retain points-to information.
6837
6838 2010-04-07  Richard Guenther  <rguenther@suse.de>
6839
6840         PR middle-end/42617
6841         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6842         preserve points-to related information.
6843
6844 2010-04-07  Richard Guenther  <rguenther@suse.de>
6845
6846         PR middle-end/42617
6847         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6848         discard plain indirect references.
6849         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6850         * tree.c (tree_nop_conversion): Likewise.
6851
6852 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6853
6854         PR debug/43628
6855         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6856
6857 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6858
6859         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6860         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6861
6862 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6863
6864         * tree-if-conv.c: Fix indentation and comments.
6865
6866 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6867
6868         * tree-if-conv.c: Sort static functions in topological order.
6869
6870 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6871
6872         * tree-if-conv.c: Fix indentation and comments.
6873
6874 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6875
6876         PR middle-end/43519
6877         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6878         lang_hooks.types.type_for_size instead of
6879         build_nonstandard_integer_type.
6880         When converting an unsigned type to signed, double its precision.
6881         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6882         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6883         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6884         use lb <= ub.
6885
6886 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6887
6888         PR middle-end/43519
6889         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6890         POINTER_PLUS_EXPR for pointer types.
6891
6892 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6893
6894         PR middle-end/43519
6895         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6896         * graphite-clast-to-gimple.c: Include langhooks.h.
6897         (max_signed_precision_type): New.
6898         (max_precision_type): Takes two types as arguments.
6899         (precision_for_value): New.
6900         (precision_for_interval): New.
6901         (gcc_type_for_interval): New.
6902         (gcc_type_for_value): New.
6903         (gcc_type_for_clast_term): New.
6904         (gcc_type_for_clast_red): New.
6905         (gcc_type_for_clast_bin): New.
6906         (gcc_type_for_clast_expr): Split up into several functions.
6907         (gcc_type_for_clast_eq): Rewritten.
6908         (compute_bounds_for_level): New.
6909         (compute_type_for_level_1): New.
6910         (compute_type_for_level): New.
6911         (gcc_type_for_cloog_iv): Removed.
6912         (gcc_type_for_iv_of_clast_loop): Rewritten.
6913         (graphite_create_new_loop): Compute the lower and upper bound types
6914         with gcc_type_for_clast_expr.
6915         (graphite_create_new_loop_guard): Same.
6916         (find_cloog_iv_in_expr): Removed.
6917         (compute_cloog_iv_types_1): Removed.
6918         (compute_cloog_iv_types): Removed.
6919         (gloog): Do not call compute_cloog_iv_types.
6920         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6921         GBB_CLOOG_IV_TYPES.
6922         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6923         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6924         (GBB_CLOOG_IV_TYPES): Removed.
6925
6926 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6927
6928         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6929         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6930         (detect_commutative_reduction): Same.
6931
6932 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6933
6934         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6935         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6936         argument.
6937         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6938         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6939         (rewrite_commutative_reductions_out_of_ssa): Same.
6940         * passes.c (execute_function_todo): Call verify_ssa for every pass
6941         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6942         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6943         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6944         with an extra argument.
6945         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6946         verify_ssa only when the extra argument is true.
6947         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6948         with an extra argument.
6949         (tree_transform_and_unroll_loop): Same.
6950
6951 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6952
6953         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6954         for all the passes of the LNO having LOOP_CLOSED_SSA.
6955         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6956         * tree-loop-distribution.c (pass_loop_distribution): Same.
6957         * tree-pass.h (TODO_verify_loops): Removed.
6958         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6959         (pass_lim): Same.
6960         (pass_tree_unswitch): Same.
6961         (pass_predcom): Same.
6962         (pass_vectorize): Same.
6963         (pass_linear_transform): Same.
6964         (pass_graphite_transforms): Same.
6965         (pass_iv_canon): Same.
6966         (pass_complete_unroll): Same.
6967         (pass_complete_unrolli): Same.
6968         (pass_parallelize_loops): Same.
6969         (pass_loop_prefetch): Same.
6970         (pass_iv_optimize): Same.
6971
6972 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6973
6974         PR middle-end/32824
6975         * passes.c (init_optimization_passes): Move pass_lim before
6976         pass_copy_prop and pass_dce_loop.
6977
6978 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6979
6980         PR target/43667
6981         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6982         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6983         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6984         MULTI_* defines for 4 argument vpermil2p* builtins.
6985
6986 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6987
6988         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6989         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6990         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6991         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6992         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6993         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6994         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6995         Use x86_maybe_negate_const_int to output insn mnemonic.
6996         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6997         check from instruction predicate.  Update comments.
6998         * config/i386/sync.md (sync_add<mode>): Use
6999         x86_maybe_negate_const_int to output insn mnemonic.
7000
7001 2010-04-06  Jan Hubicka  <jh@suse.cz>
7002
7003         PR tree-optimization/42906
7004         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
7005         IGNORE_SELF argument.  Set visited_control_parents for fully
7006         processed BBs.
7007         (find_obviously_necessary_stmts): Update call of
7008         mark_control_dependent_edges_necessary.
7009         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
7010
7011 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7012
7013         * config/i386/i386.md: Remove comment about 'e' and 'E'
7014         operand modifier.
7015
7016 2010-04-06  Richard Guenther  <rguenther@suse.de>
7017
7018         PR tree-optimization/43627
7019         * tree-vrp.c (extract_range_from_unary_expr): Widenings
7020         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
7021         not varying.
7022
7023 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7024
7025         * BASE-VER: Change to 4.6.0.
7026
7027         PR target/43638
7028         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
7029         handling.
7030
7031 2010-04-06  Richard Guenther  <rguenther@suse.de>
7032
7033         PR middle-end/43661
7034         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
7035
7036 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7037
7038         * doc/invoke.texi (Optimize Options): Document that LTO
7039         won't remove object access purely due to incompatible
7040         declarations.
7041
7042 2010-04-04  Matthias Klose  <doko@ubuntu.com>
7043
7044         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
7045         Initialize variable.
7046
7047 2010-04-03  Richard Guenther  <rguenther@suse.de>
7048
7049         PR middle-end/42509
7050         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
7051         require a non-NULL MEM_OFFSET.
7052
7053 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
7054
7055         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
7056         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
7057         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
7058         config/alpha/predicates.md, config/arm/arm.md,
7059         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
7060         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
7061         config/darwin9.h, config/darwin.c, config/darwin.h,
7062         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
7063         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
7064         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
7065         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
7066         config/mips/mips.md, config/mn10300/mn10300.c,
7067         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
7068         config/rs6000/aix.h, config/rs6000/dfp.md,
7069         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
7070         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
7071         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
7072         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
7073         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
7074         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
7075         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
7076         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
7077         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
7078         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
7079         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
7080         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
7081         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
7082         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
7083         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
7084         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
7085         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
7086         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
7087         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
7088         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
7089         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
7090         opt-functions.awk, opth-gen.awk, params.def, passes.c,
7091         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
7092         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
7093         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
7094         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
7095         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
7096         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
7097         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
7098         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
7099         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
7100         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
7101         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
7102         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
7103         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
7104         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
7105
7106 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7107
7108         PR other/43620
7109         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
7110         * aclocal.m4: Regenerate.
7111
7112 2010-04-02  Richard Guenther  <rguenther@suse.de>
7113
7114         PR tree-optimization/43629
7115         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
7116         if we have seen a constant value.
7117
7118 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
7119
7120         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
7121
7122 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
7123
7124         PR target/43469
7125         * arm.c (legitimize_tls_address): Adjust call to
7126         gen_tls_load_dot_plus_four.
7127         (arm_note_pic_base): New function.
7128         (arm_cannot_copy_insn_p): Use it.
7129         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
7130         constraint.
7131
7132 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7133
7134         PR bootstrap/43531
7135
7136         Revert:
7137         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7138
7139         * Makefile.in ($(out_object_file)): Depend on
7140         gt-$(basename $(notdir $(out_file))).h.
7141
7142 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
7143
7144         * config.gcc (lm32-*-rtems*): Add t-lm32.
7145
7146 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
7147
7148         * config.gcc: Add lm32-*-rtems*.
7149         * config/lm32/rtems.h: New file.
7150
7151 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
7152
7153         PR target/42609
7154         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
7155
7156 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
7157
7158         * dwarf2out.c (output_compilation_unit_header): For
7159         -gdwarf-4 use version 4 instead of version 3.
7160         (output_line_info): For version 4 and above emit additional
7161         maximum ops per insn header field.
7162         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
7163
7164         * dwarf2out.c (is_c_family, is_java): Remove.
7165         (lower_bound_default): New function.
7166         (add_bound_info, gen_descr_array_type_die): Use it.
7167
7168 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
7169
7170         PR debug/43325
7171         * dwarf2out.c (gen_variable_die): Allow debug info for variable
7172         re-declaration when it happens in a function.
7173
7174 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
7175
7176         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
7177         (cgraph_remove_function_insertion_hook): Same.
7178         (cgraph_call_function_insertion_hooks): Same.
7179
7180 2010-04-01  Richard Guenther  <rguenther@suse.de>
7181
7182         PR middle-end/43614
7183         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
7184         and TREE_THIS_VOLATILE.
7185         (copy_ref_info): Likewise.
7186         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
7187         * tree.c (build6_stat): Ignore side-effects of all but arg5
7188         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
7189         TARGET_MEM_REF.
7190
7191 2010-04-01  Richard Guenther  <rguenther@suse.de>
7192
7193         PR tree-optimization/43607
7194         * ipa-type-escape.c (check_call): Do not access non-existing
7195         arguments.
7196
7197 2010-04-01  Richard Guenther  <rguenther@suse.de>
7198
7199         PR middle-end/43602
7200         Revert
7201         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7202                     Jack Howarth <howarth@bromo.med.uc.edu>
7203
7204         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7205         variables TLS.
7206
7207 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7208
7209         * doc/install.texi (Prerequisites): Document libelf usability on
7210         IRIX 5/6 and Solaris 2.
7211         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7212         Update GNU as, GNU ld requirements.
7213         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7214         Document Sun Studio compiler download.
7215         Update and simplify as, ld recommendations.
7216         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7217
7218 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7219
7220         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7221         with_tune_32 to pentium4.
7222
7223 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7224
7225         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7226
7227 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7228
7229         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7230         obsoletion, removal.
7231         Update IDO URL.
7232         Document GNU as requirement.
7233         Update configure requirements.
7234         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7235         Recomment IRIX 6.5.18+.
7236         Document IDF/IDL requirement.
7237         Document GNU as requirement.
7238         Document GNU ld bootstrap failure.
7239         Remove freeware.sgi.com reference.
7240
7241 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7242
7243         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7244         UNIX V4.0, V5.0 obsoletion, removal.
7245         Remove --with-gc=simple reference.
7246         Update VM requirements during bootstrap.
7247         Remove -oldas bootstrap description.
7248         Update binutils reference.
7249         Remove comparison failure note.
7250
7251 2010-03-31  Richard Guenther  <rguenther@suse.de>
7252             Zdenek Dvorak  <ook@ucw.cz>
7253             Sebastian Pop  <sebastian.pop@amd.com>
7254
7255         PR middle-end/43464
7256         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7257         with multiple arguments.
7258         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7259
7260 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7261
7262         * graphite-dependences.c (print_pddr): Call print_pdr with an
7263         extra argument.
7264         * graphite-poly.c (debug_pdr): Add an extra argument for the
7265         verbosity level.
7266         (print_pdr): Same.
7267         (print_pbb_domain): Same.
7268         (print_pbb): Same.
7269         (print_scop_context): Same.
7270         (print_scop): Same.
7271         (print_cloog): Same.
7272         (debug_pbb_domain): Same.
7273         (debug_pbb): Same.
7274         (print_pdrs): Same.
7275         (debug_pdrs): Same.
7276         (debug_scop_context): Same.
7277         (debug_scop): Same.
7278         (debug_cloog): Same.
7279         (print_scop_params): Same.
7280         (debug_scop_params): Same.
7281         (print_iteration_domain): Same.
7282         (print_iteration_domains): Same.
7283         (debug_iteration_domain): Same.
7284         (debug_iteration_domains): Same.
7285         (print_scattering_function): Same.
7286         (print_scattering_functions): Same.
7287         (debug_scattering_function): Same.
7288         (debug_scattering_functions): Same.
7289         * graphite-poly.h (debug_pdr): Update declaration.
7290         (print_pdr): Same.
7291         (print_pbb_domain): Same.
7292         (print_pbb): Same.
7293         (print_scop_context): Same.
7294         (print_scop): Same.
7295         (print_cloog): Same.
7296         (debug_pbb_domain): Same.
7297         (debug_pbb): Same.
7298         (print_pdrs): Same.
7299         (debug_pdrs): Same.
7300         (debug_scop_context): Same.
7301         (debug_scop): Same.
7302         (debug_cloog): Same.
7303         (print_scop_params): Same.
7304         (debug_scop_params): Same.
7305         (print_iteration_domain): Same.
7306         (print_iteration_domains): Same.
7307         (debug_iteration_domain): Same.
7308         (debug_iteration_domains): Same.
7309         (print_scattering_function): Same.
7310         (print_scattering_functions): Same.
7311         (debug_scattering_function): Same.
7312         (debug_scattering_functions): Same.
7313
7314 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7315
7316         * graphite-poly.c (print_scattering_function_1): New.
7317         (print_scattering_function): Call it.
7318         (print_scop_params): Remove spaces at the end of lines.
7319         (print_cloog): New.
7320         (debug_cloog): New.
7321         * graphite-poly.h (print_cloog): Declared.
7322         (debug_cloog): Declared.
7323
7324 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7325
7326         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7327         in loop->header.
7328         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7329         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7330         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7331         to switch between adding the IV bump in loop->latch or in loop->header.
7332
7333 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7334
7335         * graphite-poly.c (print_scattering_function): Pretty print following
7336         the scoplib format.
7337         (print_pdr): Same.
7338         (print_pbb_domain): Same.
7339         (dump_gbb_cases): Same.
7340         (dump_gbb_conditions): Same.
7341         (print_pdrs): Same.
7342         (print_pbb): Same.
7343         (print_scop_params): Same.
7344         (print_scop_context): Same.
7345         (print_scop): Same.
7346         (print_pbb_body): New.
7347         (lst_indent_to): New.
7348         (print_lst): Start new lines with a #.
7349         * graphite-poly.h (pbb_bb): New.
7350         (pbb_index): Use pbb_bb.
7351         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7352         disjuncts.
7353         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7354
7355 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7356
7357         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7358         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7359         and 0 instead of 1 for dw_val_class_flag.
7360         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7361         dw_val_class_range_list, dw_val_class_loc_list,
7362         dw_val_class_lineptr and dw_val_class_macptr, use
7363         DW_FORM_flag_present for dw_val_class_flag and
7364         DW_FORM_exprloc for dw_val_class_loc.
7365         (output_die): For -gdwarf-4 print dw_val_class_loc
7366         size as uleb128 instead of 1 or 2 bytes and don't print
7367         anything for dw_val_class_flag.
7368
7369         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7370         instead of cselib_lookup following by tweaking locs->setting_insn.
7371
7372         PR bootstrap/43596
7373         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7374         even before returning from label, setjmp call or volatile asm
7375         handling.
7376
7377 2010-03-31  Richard Guenther  <rguenther@suse.de>
7378
7379         PR middle-end/43600
7380         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7381         temporary data on stack.
7382
7383 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7384
7385         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7386         (PUSHSECTION_ASM_OP): Remove.
7387         (POPSECTION_ASM_OP): Remove.
7388         (PUSHSECTION_FORMAT): Remove.
7389         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7390         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7391         * config/sol2.c (solaris_output_init_fini): Use it.
7392
7393 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7394
7395         PR 43574
7396         * opt-functions.awk (var_type_struct): Use signed char type
7397         for simple variables.
7398
7399 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7400
7401         * config/sol2.c: Include output.h.
7402         (solaris_assemble_visibility): New function.
7403         * config/t-sol2 (sol2.o): Add output.h dependency.
7404         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7405         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7406         Redefine.
7407
7408 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7409
7410         PR target/43580
7411         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7412         V2SImode or XFmode on PRE_DEC.
7413
7414         PR debug/43557
7415         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7416         BLKmode.
7417
7418 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7419
7420         PR 43562
7421         * reload.h (caller_save_initialized_p): Declare.
7422         * toplev.c (backend_init_target): Don't call
7423         init_caller_save but set caller_save_initialized_p to false.
7424         * caller-save.c (caller_save_initialized_p): Define.
7425         (init_caller_save): Check caller_save_initialized_p.
7426         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7427
7428 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7429
7430         PR target/39048
7431         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7432         and soft-fp/t-softfp to tmake_file.
7433         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7434         (LIBGCC2_TF_CEXT): Define.
7435         (TF_SIZE): Define.
7436
7437 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7438
7439         PR debug/42977
7440         * cselib.c (n_useless_values): Document handling of debug locs.
7441         (n_useless_debug_values, n_debug_values): New variables.
7442         (new_elt_loc_list): Don't add to debug values, keep count.
7443         (promote_debug_loc): New.
7444         (cselib_reset_table): Zero new variables.
7445         (entry_and_rtx_equal_p): Promote debug locs.
7446         (discard_useless_locs): Increment n_useless_debug_values for
7447         debug values.
7448         (remove_useless_values): Adjust n_useless_values and n_debug_values
7449         with n_useless_debug_values.
7450         (add_mem_for_addr): Promote debug locs.
7451         (cselib_lookup_mem): Likewise.
7452         (cselib_lookup_addr): Renamed to...
7453         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7454         (cselib_log_lookup): ... this.  Turn into...
7455         (cselib_lookup_addr): ... new wrapper.
7456         (cselib_lookup_from_insn): New.
7457         (cselib_invalidate_regno): Increment n_useless_debug_values for
7458         debug values.
7459         (cselib_invalidate_mem): Likewise.
7460         (cselib_process_insn): Take n_deleted and n_debug_values into
7461         account to guard remove_useless_value call.
7462         (cselib_finish): Zero n_useless_debug_values.
7463         * cselib.h (cselib_lookup_from_insn): Declare.
7464         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7465         (sched_analyze_2): Likewise.
7466
7467 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7468
7469         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7470         functions.
7471         (adjust_mems): Replace narrowing SUBREG of expression containing
7472         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7473         with operations in the narrower mode.
7474
7475         PR debug/43593
7476         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7477         regs_invalidated_by_call instead all call_used_reg_set registers.
7478
7479 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7480
7481         PR middle-end/43430
7482         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7483         pointer comparisons with types_compatible_p.
7484         * tree-vect-stmts.c (vectorizable_call): Same.
7485         (vectorizable_condition): Same.
7486
7487 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7488
7489         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7490         stack check if the mask would be zero.
7491
7492 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7493             Jack Howarth <howarth@bromo.med.uc.edu>
7494
7495         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7496         variables TLS.
7497
7498 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7499
7500         PR other/25232
7501         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7502         and __unordtf2.
7503         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7504         Include ___unordxf2 and ___unordtf2.
7505         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7506         GCC_4.4.0 here.
7507
7508 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7509
7510         * config/lm32/t-lm32: New file.
7511         * config.gcc: Use the above file when targetting lm32.
7512
7513 2010-03-28  Duncan Sands  <baldrick@free.fr>
7514
7515         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7516
7517 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7518
7519         PR middle-end/43431
7520         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7521         Improve vectorization cost model diagnostic.
7522
7523 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7524
7525         PR middle-end/43436
7526         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7527         compute_data_dependences_for_loop returns false, early exit
7528         and output an extra diagnostic for the failed data reference
7529         analysis.
7530
7531 2010-03-29  Richard Guenther  <rguenther@suse.de>
7532
7533         PR tree-optimization/43560
7534         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7535         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7536
7537 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7538
7539         PR 43564
7540         * toplev.c (process_options): Set optimization_default_node
7541         and optimization_current_node.
7542         * opts.c (decode_options): Don't set optimization_default_node
7543         and optimization_current_node.
7544
7545 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7546
7547         * config/rtems.h: Abandon -qrtems_debug.
7548
7549 2010-03-28  Jan Hubicka  <jh@suse.cz>
7550
7551         PR tree-optimization/43505
7552         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7553         map should not be copied.
7554
7555 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7556
7557         PR middle-end/41674
7558         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7559         cdtors, set DECL_PRESERVE_P.
7560         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7561         should be preseved.
7562
7563 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7564
7565         PR tree-optimization/43528
7566         * stor-layout.c (place_field): Check that constant fits into
7567         unsigned HWI when skipping calculation of MS bitfield layout.
7568
7569 2010-03-27  Jan Hubicka  <jh@suse.cz>
7570
7571         PR middle-end/43391
7572         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7573         notice_global_symbol work.
7574
7575 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7576
7577         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7578         instead of dwarf2out_decl.
7579         (struct var_loc_node): Remove section_label field.
7580         (dwarf2out_function_decl): New function.
7581         (dwarf2out_var_location): Don't set section_label field.
7582         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7583
7584 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7585
7586         PR tree-optimization/43544
7587         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7588         First argument for builtin vectorized function hook is now a
7589         tree to be able to distinguish between machine specific and
7590         standard builtins.
7591         * targhooks.c (default_builtin_vectorized_function): Ditto.
7592         * targhooks.h (default_builtin_vectorized_function): Ditto.
7593         * target.h (struct gcc_target): Ditto.
7594         * tree-vect-stmts.c (vectorizable_function): Ditto.
7595         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7596         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7597         Ditto.
7598
7599 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7600
7601         PR c/43381
7602         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7603         nested binding iff it is a FUNCTION_DECL.
7604         (store_parm_decls_newstyle): Pass nested=true to bind for
7605         FUNCTION_DECLs amongst parameters.
7606
7607 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7608
7609         * var-tracking.c (vt_expand_loc_callback): Don't run
7610         cselib_expand_value_rtx_cb in dummy mode if
7611         cselib_dummy_expand_value_rtx_cb returned false.
7612
7613         * var-tracking.c (emit_note_insn_var_location): For one part
7614         notes with offset 0, don't add EXPR_LIST around the location.
7615         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7616         add_location_or_const_value_attribute): Adjust for that change.
7617
7618         PR debug/43540
7619         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7620         into first operand and location into second.
7621         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7622         dw_cfi_oprnd_loc for DW_CFA_expression.
7623         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7624         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7625         assume first argument is regnum and second argument is location.
7626
7627 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7628
7629         PR target/42113
7630         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7631         of scratch register to DImode.  Split to DImode comparison operator.
7632         Use SImode subreg of scratch register in the multiplication.
7633         (*cmp_sadd_sidi): Ditto.
7634         (*cmp_ssub_si): Ditto.
7635         (*cmp_ssub_sidi): Ditto.
7636
7637 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7638
7639         PR target/43524
7640         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7641         Remove invalid assert and wrong comment.
7642
7643 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7644
7645         PR debug/43516
7646         * flags.h (final_insns_dump_p): New extern.
7647         * final.c (final_insns_dump_p): New variable.
7648         (rest_of_clean_state): Set it before -fdump-final-insns=
7649         dumping, clear afterwards.
7650         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7651         MEM_ALIAS_SET on MEMs.
7652
7653 2010-03-26  David S. Miller  <davem@davemloft.net>
7654
7655         * configure.ac: Fix sparc GOTDATA_OP bug check.
7656         * configure: Rebuild.
7657
7658 2010-03-26  Alan Modra  <amodra@gmail.com>
7659
7660         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7661
7662 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7663
7664         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7665         TLS_SECTION_ASM_FLAG.
7666
7667 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7668
7669         PR bootstrap/43511
7670         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7671         Clear first_function_block_is_cold.
7672
7673         PR c/43385
7674         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7675         argument if the argument is truth_value_p.
7676
7677 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7678
7679         * config/rs6000/constraints.md: Update copyright year for my changes.
7680
7681         PR target/43484
7682         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7683         used in reg+reg addressing, swap registers.
7684
7685 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7686
7687         PR debug/43293
7688         * target.h (struct gcc_target): Add code_end hook.
7689         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7690         if not yet defined.
7691         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7692         * toplev.c (compile_file): Call targetm.asm_out.code_end
7693         hook before unwind info/debug info output.
7694         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7695         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7696         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7697         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7698         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7699         * config/i386/i386.c (ix86_file_end): Renamed to...
7700         (ix86_code_end): ... this.  Make static.  Don't call
7701         file_end_indicate_exec_stack.  Emit unwind info using
7702         final_start_function/final_end_function.
7703         (darwin_x86_file_end): Remove.
7704         (TARGET_ASM_CODE_END): Define.
7705         * config/i386/i386.h (TARGET_ASM_FILE_END,
7706         NEED_INDICATE_EXEC_STACK): Don't define.
7707         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7708         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7709         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7710         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7711
7712         PR target/43498
7713         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7714         at the beginning and final_end_function at the end.
7715         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7716
7717 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7718
7719         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7720         and Sun as TLS syntax.
7721         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7722         * configure: Regenerate.
7723         * config.in: Regenerate.
7724         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7725         (default_elf_asm_named_section): Use it.
7726         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7727         (i386_output_dwarf_dtprel): Likewise.
7728         (output_addr_const_extra): Likewise.
7729         (output_pic_addr_const): Lowercase @GOTTPOFF.
7730         (output_addr_const_extra): Likewise.
7731         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7732         (output_addr_const_extra): Likewise.
7733         (output_pic_addr_const): Lowercase @INDNTPOFF.
7734         (output_addr_const_extra): Likewise.
7735         (output_pic_addr_const): Lowercase @NTPOFF.
7736         (output_addr_const_extra): Likewise.
7737         (output_pic_addr_const): Lowercase @TPOFF.
7738         (output_addr_const_extra): Likewise.
7739         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7740         (*tls_global_dynamic_64): Likewise.
7741         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7742         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7743
7744         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7745         (ASM_OUTPUT_TLS_COMMON): Use it.
7746         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7747
7748         PR target/38118
7749         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7750         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7751         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7752         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7753         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7754         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7755
7756 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7757
7758         * config/i386/i386.c (override_options): Don't accept
7759         -mtls-dialect=sun any longer.
7760         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7761         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7762         (*tls_local_dynamic_base_32_sun): Likewise.
7763         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7764
7765 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7766
7767         PR debug/43508
7768         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7769         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7770
7771         PR debug/43479
7772         * ira.c (adjust_cleared_regs): New function.
7773         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7774
7775         PR debug/19192
7776         PR debug/43479
7777         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7778         from gimple_block.
7779         * expr.c (expand_expr_real): Restore previous
7780         curr_insn_source_location and curr_insn_block after
7781         expand_expr_real_1 call.
7782         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7783         instead of expand_expr_real_1.
7784
7785 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7786
7787         PR rtl-optimization/43413
7788         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7789         hard regs too.
7790
7791 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7792
7793         PR target/43348
7794         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7795         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7796
7797 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7798
7799         * config/i386/i386.c (ix86_target_string): Add -mfma.
7800         Fix a typo in comment.
7801
7802 2010-03-22  Mike Stump  <mikestump@comcast.net>
7803
7804         PR target/23071
7805         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7806         Don't overly align based upon packed packed fields.
7807
7808 2010-03-22  Jason Merrill  <jason@redhat.com>
7809
7810         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7811         Use () rather than [], and move before the element type.
7812
7813 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7814
7815         * doc/configfiles.texi (Configuration Files): Removed
7816         fixinc/Makefile*, intl/Makefile.*.
7817         * doc/makefile.texi: Fixed markup. Abstract from version
7818         control system used.
7819         (Makefile): Removed obsolete gcc/java/parse.y example.
7820         * doc/sourcebuild.texi: Likewise.
7821         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7822         libgomp, libssp.  Removed fastjar.
7823         (Miscellaneous Docs): Clarify location.
7824         Added COPYING3, COPYING3.LIB.
7825         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7826
7827 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7828
7829         PR target/38085
7830         * config/i386/i386.c (x86_function_profiler)
7831         [!NO_PROFILE_COUNTERS]: Fix typo.
7832         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7833         instead of callq.
7834
7835 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7836             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7837
7838         * doc/sourcebuild.texi (Test Directives): Split into six
7839         subsections, with most of the current text in new subsections
7840         Directives, Selectors, and Final Actions.
7841         (Directives): Split list of test directives into multiple
7842         subsubsections.
7843         (Selectors): Describe use and syntax of selectors.
7844         (Effective-Target Keywords): Describe all existing keywords.
7845         (Add Options): Describe features for dg-add-options.
7846         (Require Support): Describe variants of dg-require-support.
7847         (Final Actions): Describe commands to use in dg-final.
7848
7849 2010-03-22  Michael Matz  <matz@suse.de>
7850
7851         PR middle-end/43475
7852         * recog.c (validate_replace_rtx_group): Replace also in
7853         REG_EQUAL and REG_EQUIV notes.
7854
7855 2010-03-22  Richard Guenther  <rguenther@suse.de>
7856
7857         PR tree-optimization/43390
7858         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7859         sure vector extracts are type correct.
7860
7861 2010-03-22  Richard Guenther  <rguenther@suse.de>
7862
7863         PR middle-end/40106
7864         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7865         x * sqrt (x) even when optimizing for size if the target
7866         has native support for sqrt.
7867
7868 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7869
7870         * varasm.c (make_decl_rtl_for_debug): Also clear
7871         flag_mudflap for the duration of make_decl_rtl call.
7872
7873         PR debug/43443
7874         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7875         locs from preserved VALUEs.
7876
7877 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7878
7879         PR middle-end/42718
7880         * pa.md (movmemsi): Set align to one if zero.
7881         (movmemdi): Likewise.
7882
7883 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7884
7885         PR target/42321
7886         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7887         with their corresponding prologue pushes.
7888
7889 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7890
7891         PR target/43156
7892         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7893         at the begining or end.
7894         (spu_expand_epilogue): Likewise.
7895
7896 2010-03-20  Richard Guenther  <rguenther@suse.de>
7897
7898         PR rtl-optimization/43438
7899         * combine.c (make_extraction): Properly zero-/sign-extend an
7900         extraction of the low part of a CONST_INT.  Also handle
7901         CONST_DOUBLE.
7902
7903 2010-03-19  Mike Stump  <mikestump@comcast.net>
7904
7905         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7906         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7907         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7908
7909 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7910
7911         PR c/43211
7912         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7913         an error.
7914
7915 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7916
7917         PR rtl-optimization/42258
7918         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7919         use that may match DEF.
7920
7921         PR target/40697
7922         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7923         the cost of loading the constant rather than assuming
7924         COSTS_N_INSNS (1).
7925         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7926         outer code is AND, do the same tests as the andsi3 expander and
7927         return COSTS_N_INSNS (1) if and is cheap.
7928
7929         * optabs.c (avoid_expensive_constant): Fix formatting.
7930
7931 2010-03-19  Michael Matz  <matz@suse.de>
7932
7933         PR c++/43116
7934         * attribs.c (decl_attributes): When rebuilding a function pointer
7935         type use the same qualifiers as the original pointer type.
7936
7937 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7938
7939         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7940         and is_gimple_ip_invariant_address.
7941
7942 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7943
7944         Revert
7945         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7946
7947         * config/arm/arm.c (arm_override_options): Turn off
7948         flag_dwarf2_cfi_asm for AAPCS variants.
7949
7950 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7951
7952         PR target/43399
7953         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7954         Use PRE_MODIFY instead of PRE_DEC.
7955         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7956         (vfp_emit_fstmd): Likewise.
7957
7958 2010-03-19  Michael Matz  <matz@suse.de>
7959
7960         PR target/43305
7961         * builtins.c (expand_builtin_interclass_mathfn,
7962         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7963         if that fails.
7964
7965 2010-03-19  Richard Guenther  <rguenther@suse.de>
7966
7967         PR tree-optimization/43415
7968         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7969         (phi_translate_1): ... this.
7970         (phi_translate): Move all caching here.  Cache all NARY
7971         and REFERENCE translations.
7972
7973 2010-03-19  David S. Miller  <davem@davemloft.net>
7974
7975         With help from Eric Botcazou.
7976         * config/sparc/sparc.c: Include dwarf2out.h.
7977         (emit_pic_helper): Delete.
7978         (pic_helper_symbol_name): Delete.
7979         (pic_helper_emitted_p): Delete.
7980         (pic_helper_needed): New.
7981         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7982         (get_pc_thunk_name): New.
7983         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7984         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7985         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7986         (sparc_expand_prologue): Update load_pic_register call.
7987         (sparc_output_mi_thunk): Likewise.
7988         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7989         thunk if possible.  Output CFI information as needed.
7990
7991 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7992             Jack Howarth <howarth@bromo.med.uc.edu>
7993
7994         PR target/36399
7995         * config/i386/i386.h: Fix ABI on darwin x86-32.
7996
7997 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7998
7999         * tree.h: Declare make_decl_rtl_for_debug.
8000         * varasm.c (make_decl_rtl_for_debug): New.
8001         * dwarf2out.c (rtl_for_decl_location): Call it.
8002         * cfgexpand.c (expand_debug_expr): Call it.
8003
8004 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8005
8006         PR bootstrap/43399
8007         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
8008         mem_mode.
8009
8010         PR bootstrap/43403
8011         * var-tracking.c (vt_init_cfa_base): Do nothing if
8012         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
8013
8014 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
8015
8016         PR debug/42873
8017         * var-tracking.c (canonicalize_vars_star): New.
8018         (dataflow_post_merge_adjust): Use it.
8019
8020 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8021
8022         PR debug/43058
8023         * var-tracking.c (non_suitable_const): New function.
8024         (add_uses): For DEBUG_INSNs with constants, don't record any
8025         value, instead just the constant value itself.
8026         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
8027         is not VAR_LOC_UNKNOWN_P, set var to the constant.
8028         (emit_notes_in_bb): Likewise.
8029         (emit_note_insn_var_location): For onepart variables if
8030         cur_loc is a VOIDmode constant, use DECL_MODE.
8031
8032 2010-03-18  Martin Jambor  <mjambor@suse.cz>
8033
8034         PR middle-end/42450
8035         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
8036         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
8037         all non-clones.  Moved call redirection...
8038         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8039         (cgraph_materialize_all_clones): Dispose of all
8040         combined_args_to_skip bitmaps.
8041         (verify_cgraph_node): Do not check for edges pointing to wrong
8042         nodes in inline clones.
8043         * tree-inline.c (copy_bb): Call
8044         cgraph_redirect_edge_call_stmt_to_callee.
8045         * ipa.c (cgraph_remove_unreachable_nodes): Call
8046         cgraph_node_remove_callees even when there are used clones.
8047
8048 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8049
8050         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
8051
8052 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8053
8054         PR target/43383
8055         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
8056         for 32bit.
8057
8058 2010-03-18  Michael Matz  <matz@suse.de>
8059
8060         PR middle-end/43419
8061         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
8062         into sqrt(x) if we need to preserve signed zeros.
8063
8064 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
8065             Eric Botcazou  <ebotcazou@adacore.com>
8066
8067         PR rtl-optimization/43360
8068         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
8069         note if we don't know its invariant status.
8070
8071 2010-03-18  Michael Matz  <matz@suse.de>
8072
8073         PR tree-optimization/43402
8074         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
8075         PHI chains of ssa names registered for update.
8076
8077 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
8078
8079         PR target/42427
8080         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
8081         non-offsettable and pre_modify update addressing.
8082         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
8083         and "2" alternatives "#".
8084         (*movdd_softfloat32): Make all alternatives "#";
8085         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
8086         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
8087         (*movdf_softfloat32): Make all alternatives "#";
8088         (movdi): Use the new DIFD mode iterator to create a common splitter
8089         for movdi, movdf and movdd patterns.
8090
8091 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
8092
8093         * common.opt (dumpdir): Remove redundant tab.
8094
8095 2010-03-17  Martin Jambor  <mjambor@suse.cz>
8096
8097         PR tree-optimization/43347
8098         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
8099         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
8100
8101 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
8102
8103         PR rtl-optimization/42216
8104         * regrename.c (create_new_chain): New function, broken out from...
8105         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
8106         appending a use to an empty chain.
8107         (build_def_use): Remove previous changes that convert OP_INOUT to
8108         OP_OUT operands; instead detect the case where an OP_INOUT operand
8109         uses a previously untracked register and create an empty chain for it.
8110
8111 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8112
8113         * doc/extend.texi (Function Attributes): Rewrite unfinished
8114         sentence in ms_abi documentation.
8115
8116 2010-03-17  Alan Modra  <amodra@gmail.com>
8117
8118         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
8119         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
8120         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
8121         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
8122
8123 2010-03-16  Richard Henderson  <rth@redhat.com>
8124
8125         PR middle-end/43365
8126         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
8127         (lower_try_finally): Save and restore eh_seq around the expansion
8128         of the try-finally.
8129
8130 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8131
8132         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
8133         statements before splitting block.
8134
8135 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8136
8137         * doc/sourcebuild.texi (Testsuites): Fix markup.
8138         Use pathnames relative to gcc/testsuite.
8139         (Test Directives): Move description of how timeout is determined.
8140         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
8141         (C Tests): Correct gcc.misc-tests directory.
8142         Framework tests now live in gcc.test-framework.
8143
8144 2010-03-16  Richard Guenther  <rguenther@suse.de>
8145
8146         PR middle-end/43379
8147         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
8148         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
8149
8150 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8151             Alexandre Oliva  <aoliva@redhat.com>
8152
8153         PR tree-optimization/42917
8154         * lambda-code.c (remove_iv): Skip debug statements.
8155         (lambda_loopnest_to_gcc_loopnest): Likewise.
8156         (not_interesting_stmt): Debug statements are not interesting.
8157
8158 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
8159
8160         PR debug/43051
8161         PR debug/43092
8162         * cselib.c (cselib_preserve_constants,
8163         cfa_base_preserved_val): New static variables.
8164         (preserve_only_constants): New function.
8165         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
8166         clear its REG_VALUES.  If cselib_preserve_constants, don't
8167         empty the whole hash table, but preserve there VALUEs with constants,
8168         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
8169         (cselib_preserve_cfa_base_value): New function.
8170         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
8171         (cselib_init): Change argument to int bitfield.  Set
8172         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
8173         is in it.
8174         (cselib_finish): Clear cselib_preserve_constants and
8175         cfa_base_preserved_val.
8176         * cselib.h (enum cselib_record_what): New enum.
8177         (cselib_init): Change argument to int.
8178         (cselib_preserve_cfa_base_value): New prototype.
8179         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
8180         * dse.c (dse_step1): Likewise.
8181         * cfgcleanup.c (thread_jump): Likewise.
8182         * sched-deps.c (sched_analyze): Likewise.
8183         * gcse.c (local_cprop_pass): Likewise.
8184         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
8185         If FN is non-NULL, call the callback always and whenever it returns
8186         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
8187         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
8188         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
8189         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
8190         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
8191         * var-tracking.c: Include recog.h.
8192         (bb_stack_adjust_offset): Remove.
8193         (vt_stack_adjustments): Don't call it, instead just gather the
8194         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
8195         (adjust_stack_reference): Remove.
8196         (compute_cfa_pointer): New function.
8197         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
8198         (struct adjust_mem_data): New type.
8199         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
8200         functions.
8201         (get_address_mode): New function.
8202         (replace_expr_with_values): Use it.
8203         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
8204         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
8205         (adjust_sets): Remove.
8206         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8207         Use get_address_mode.
8208         (get_adjusted_src): Remove.
8209         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8210         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8211         (add_with_sets): Don't call adjust_sets.
8212         (fp_setter, vt_init_cfa_base): New functions.
8213         (vt_initialize): Change return type to bool.  Move most of pool etc.
8214         initialization to the beginning of the function from end.  Pass
8215         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8216         If !frame_pointer_needed, call vt_stack_adjustment before mos
8217         vector is filled, call vt_init_cfa_base if argp/framep has been
8218         eliminated to sp.  If frame_pointer_needed and argp/framep has
8219         been eliminated to hard frame pointer, set
8220         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8221         encountering fp setter in the prologue.  For MO_ADJUST, call
8222         log_op_type before pusing the op into mos vector, not afterwards.
8223         Call adjust_insn before cselib_process_insn/add_with_sets,
8224         call cancel_changes (0) afterwards.
8225         (variable_tracking_main_1): Adjust for vt_initialize calling
8226         vt_stack_adjustments and returning whether it succeeded or not.
8227
8228 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8229
8230         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8231         debug statements.
8232
8233 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8234
8235         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8236         has been set.
8237         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8238         drap_reg has not been set.
8239
8240 2010-03-15  Michael Matz  <matz@suse.de>
8241
8242         PR middle-end/43300
8243         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8244         use it to expand block copies.
8245         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8246         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8247         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8248
8249 2010-03-15  Richard Guenther  <rguenther@suse.de>
8250
8251         PR tree-optimization/43367
8252         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8253         elimination check.
8254
8255 2010-03-15  Richard Guenther  <rguenther@suse.de>
8256
8257         PR tree-optimization/43317
8258         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8259
8260 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8261
8262         PR tree-optimization/43141
8263         * tree-sra.c (create_abstract_origin): New function.
8264         (modify_function): Call create_abstract_origin.
8265
8266 2010-03-15  Chris Demetriou  <cgd@google.com>
8267
8268         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8269         wasn't copied.
8270
8271 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8272
8273         PR middle-end/43354
8274         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8275         call insert_out_of_ssa_copy for default definitions.
8276
8277 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8278
8279         * graphite-clast-to-gimple.c (my_long_long): Defined.
8280         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8281         * graphite-sese-to-poly.c (my_long_long): Defined.
8282         (scop_ivs_can_be_represented): Use it.
8283
8284 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8285
8286         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8287         graphite-max-bbs-per-function, and loop-block-tile-size.
8288         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8289         with "maximum".
8290         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8291
8292 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8293
8294         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8295         forward declaration.
8296         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8297         (add_upper_bounds_from_estimated_nit): New.
8298         (build_loop_iteration_domains): Use it.
8299
8300 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8301
8302         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8303
8304 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8305
8306         PR middle-end/43306
8307         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8308         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8309
8310 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8311
8312         * graphite.c (graphite_initialize): To bound the number of bbs per
8313         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8314         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8315         * doc/invoke.texi: Document it.
8316
8317 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8318
8319         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8320         * graphite-sese-to-poly.h (build_poly_scop): Same.
8321
8322 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8323
8324         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8325         the number of parameters in the scop.  Use as an upper bound
8326         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8327         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8328         * doc/invoke.texi: Document it.
8329
8330 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8331
8332         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8333         * doc/c-tree.texi: Remove.
8334         * doc/generic.texi: Merge c-tree.texi here.
8335         * doc/gccint.texi (Trees): Remove menu entry.
8336         (c-tree.texi): Remove @include.
8337         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8338         * doc/languages.texi (Reading RTL): Ditto.
8339
8340 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8341
8342         PR target/42869
8343         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8344
8345 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8346
8347         PR middle-end/42431
8348         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8349         code added to work around reload clobbering CONST insns.
8350
8351 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8352
8353         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8354         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8355         (cselib_preserve_only_values): Remove retain argument, don't
8356         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8357         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8358         * var-tracking.c (micro_operation): Move insn field before union.
8359         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8360         (struct variable_tracking_info_def): Remove n_mos field, change
8361         mos into a vector of micro_operations.
8362         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8363         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8364         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8365         changing into a vector.
8366         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8367         come before all other uops generated by add_stores.
8368         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8369         argument removal.
8370         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8371         a vector.  Run just one pass over the bbs instead of separate counting
8372         and computation phase.
8373         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8374
8375         PR debug/43329
8376         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8377         into *nonlocalized_list vector.
8378         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8379         even if origin is non-NULL.
8380         (gen_variable_die): Likewise.
8381         (process_scope_var): Don't change origin.
8382         (gen_decl_die): Likewise.
8383         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8384         before adding new edges instead of after it, fix moving over
8385         debug stmts.
8386
8387 2010-03-11  David S. Miller  <davem@davemloft.net>
8388
8389         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8390         of four.
8391         * configure: Rebuild.
8392
8393 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8394
8395         PR tree-optimization/43257
8396         * tree.c (assign_assembler_name_if_neeeded): New function.
8397         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8398         above new function.
8399         * tree.h (assign_assembler_name_if_neeeded): Declare.
8400         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8401         the function if needed.
8402
8403 2010-03-11  Chris Demetriou  <cgd@google.com>
8404
8405         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8406         include/stdint-gcc.h, and include/stdint.h world-readable.
8407
8408 2010-03-11  Richard Guenther  <rguenther@suse.de>
8409
8410         PR tree-optimization/43255
8411         * tree-vrp.c (process_assert_insertions_for): Do not insert
8412         asserts for trivial conditions.
8413
8414 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8415
8416         PR tree-optimization/43280
8417         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8418         generation.  Move calculation of size out of the if branch.
8419         (find_bswap): Modify compare number generation.
8420
8421 2010-03-11  Richard Guenther  <rguenther@suse.de>
8422
8423         PR lto/43200
8424         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8425         (input_gimple_stmt): Fixup handled component types during
8426         operand read.  Also fix up decls in ADDR_EXPRs.
8427
8428 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8429
8430         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8431         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8432
8433 2010-03-10  Jan Hubicka  <jh@suse.cz>
8434
8435         PR c/43288
8436         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8437         * varasm.c (get_variable_section): Don't do that here...
8438         (make_decl_rtl): ... and here.
8439         (do_assemble_alias): Produce decl RTL.
8440         (assemble_alias): Likewise.
8441
8442 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8443
8444         PR debug/43290
8445         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8446         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8447         of fde->vdrap_reg.
8448         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8449         (based_loc_descr): Only express drap or vdrap regno based expressions
8450         using DW_OP_fbreg when not optimizing.
8451         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8452         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8453         REG_CFA_SET_VDRAP note.
8454
8455 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8456
8457         PR tree-optimization/43236
8458         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8459         error in calculation of base address in reverse iteration case.
8460         (generate_builtin): Take number of latch executions if the statement
8461         is in the latch.
8462
8463 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8464
8465         PR middle-end/42859
8466         * tree-eh.c: Include pointer-set.h.
8467         (lower_eh_dispatch): Filter out duplicate case labels and
8468         remove the unneeded edge when the label is unused.  Return
8469         true when some edges are removed.
8470         (execute_lower_eh_dispatch): When any lowering resulted in
8471         removing an edge, also delete unreachable blocks.
8472
8473 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8474
8475         PR bootstrap/43287
8476         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8477         UNSPEC_MACHOPIC_OFFSET.
8478
8479 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8480
8481         PR target/43294
8482         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8483         (m68k_delegitimize_address): New function.
8484
8485 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8486
8487         PR debug/43299
8488         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8489
8490         PR debug/43299
8491         * var-tracking.c (adjust_sets): New function.
8492         (count_with_sets, add_with_sets): Use it.
8493         (get_adjusted_src): New inline function.
8494         (add_stores): Use it.
8495
8496         PR debug/43304
8497         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8498         call cselib_dummy_expand_value_rtx_cb instead of
8499         cselib_expand_value_rtx_cb.
8500
8501         PR debug/43293
8502         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8503         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8504         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8505         and .cfi_endproc around the pic thunks.
8506         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8507         all queued unwind info register saves are saved before the call.
8508         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8509         considered as sp-=4 for unwind info and the pop as sp+=4 which
8510         also clobbers dest, but doesn't actually restore it.
8511
8512         PR debug/43290
8513         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8514         RTX_FRAME_RELATED_P.
8515
8516 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8517
8518         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8519         whitespaces in output template.
8520
8521 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8522
8523         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8524         out array boundary.
8525
8526 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8527
8528         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8529         builtins.exp in a separate job.
8530
8531 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8532
8533         * graphite-sese-to-poly.c (add_param_constraints): Use
8534         lower_bound_in_type and upper_bound_in_type.
8535
8536 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8537
8538         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8539         instead of unsigned_type_node.
8540
8541 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8542             Reza Yazdani  <reza.yazdani@amd.com>
8543
8544         PR middle-end/43065
8545         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8546         on pointer type parameters.
8547
8548 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8549
8550         PR middle-end/42644
8551         PR middle-end/42130
8552         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8553         handle conversions from pointer to integers.
8554         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8555         induction variable, to be able to work with code generated by CLooG.
8556         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8557         (build_poly_scop): Bail out if we cannot codegen a loop.
8558
8559 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8560
8561         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8562         code generation with gloog_error.
8563
8564 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8565
8566         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8567         Call fold_convert on all the returned values.
8568         (expand_scalar_variables_expr): Pass to
8569         expand_scalar_variables_ssa_name the type of the resulting expression.
8570
8571 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8572
8573         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8574         ppl_min_for_le_pointset.
8575         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8576         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8577
8578 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8579
8580         * graphite-dependences.c (map_into_dep_poly): Removed.
8581         (dependence_polyhedron_1): Use combine_context_id_scat.
8582
8583 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8584
8585         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8586         (struct poly_bb): Same.
8587         (combine_context_id_scat): New.
8588
8589 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8590
8591         PR middle-end/42326
8592         * sese.c (name_defined_in_loop_p): Return false for default
8593         definitions.
8594
8595 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8596
8597         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8598         and clean up the logic.
8599
8600 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8601
8602         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8603         early return.
8604
8605 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8606
8607         * var-tracking.c (remove_cselib_value_chains): Define only for
8608         ENABLE_CHECKING.
8609         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8610         delete_slot_part, emit_notes_for_differences_1): Don't call
8611         remove_cselib_value_chains here.
8612         (set_slot_part, emit_notes_for_differences_2): Don't call
8613         add_cselib_value_chains here.
8614         (preserved_values): New vector.
8615         (preserve_value): New function.
8616         (add_uses, add_stores, vt_add_function_parameters): Use it
8617         instead of cselib_preserve_value.
8618         (changed_values_stack): New vector.
8619         (check_changed_vars_0): New function.
8620         (check_changed_vars_1, check_changed_vars_2): Use it.
8621         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8622         changed_values_stack VALUEs.
8623         (vt_emit_notes): For all preserved_values call
8624         add_cselib_value_chains.  If ENABLE_CHECKING call
8625         remove_cselib_value_chains before verifying value_chains is empty.
8626         Initialize and free changed_values_stack.
8627         (vt_initialize): Initialize preserved_values.
8628         (vt_finalize): Free preserved_values.
8629
8630 2010-03-08  Richard Guenther  <rguenther@suse.de>
8631
8632         PR tree-optimization/43269
8633         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8634         region detection.
8635
8636 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8637
8638         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8639         (ipa_is_param_called): Removed.
8640         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8641         (ipa_print_node_params): Do not print the called flag.
8642         (ipa_write_node_info): Do not stream the called flag.
8643         (ipa_read_node_info): Likewise.
8644
8645 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8646
8647         PR debug/43176
8648         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8649         * cselib.c (struct expand_value_data): Add dummy field.
8650         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8651         dummy to false.
8652         (cselib_dummy_expand_value_rtx_cb): New function.
8653         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8654         any rtl.
8655         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8656         * var-tracking.c: Include pointer-set.h.
8657         (variable): Change n_var_parts to char from int.  Add
8658         cur_loc_changed and in_changed_variables fields.
8659         (variable_canonicalize): Remove.
8660         (shared_var_p): New inline function.
8661         (unshare_variable): Maintain cur_loc_changed and
8662         in_changed_variables fields.  If var was in changed_variables,
8663         replace it there with new_var.  Just copy cur_loc instead of
8664         resetting it to something else.
8665         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8666         (dataflow_set_union): Don't call variable_canonicalize.
8667         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8668         of their DEBUG_EXPR_TREE_DECLs.
8669         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8670         and in_changed_variables and cur_loc_changed is false.
8671         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8672         and cur_loc_changed.  Don't update cur_loc here.
8673         (variable_merge_over_src): Don't call variable_canonicalize.
8674         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8675         removing loc that is equal to cur_loc, clear cur_loc,
8676         set cur_loc_changed and ensure variable_was_changed is called.
8677         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8678         compare pointers in cur_loc check, if it is equal to loc,
8679         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8680         (variable_different_p): Remove compare_current_location argument,
8681         don't compare cur_loc.
8682         (dataflow_set_different_1): Adjust variable_different_p caller.
8683         (variable_was_changed): If dv had some var in changed_variables
8684         already, reset in_changed_variables flag for it and propagate
8685         cur_loc_changed over to the new variable.  On empty var
8686         always set cur_loc_changed.  Set in_changed_variables on whatever
8687         var is added to changed_variables.
8688         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8689         Use shared_var_p.  When removing loc that is equal to cur_loc,
8690         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8691         end, don't set it to something else, just call variable_was_changed.
8692         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8693         loc being removed, clear cur_loc and set cur_loc_changed.
8694         Set cur_loc_changed if all locations have been removed.
8695         (struct expand_loc_callback_data): New type.
8696         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8697         allocated.  Always create SUBREGs if simplify_subreg failed.
8698         Prefer to use cur_loc, when that fails and still in
8699         changed_variables (and seen first time) recompute it.  Set
8700         cur_loc_changed of variables which had to change cur_loc and
8701         compute elcd->cur_loc_changed if any of the subexpressions used
8702         had to change cur_loc.
8703         (vt_expand_loc): Adjust to pass arguments in
8704         expand_loc_callback_data structure.
8705         (vt_expand_loc_dummy): New function.
8706         (emitted_notes): New variable.
8707         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8708         that weren't used for any other decl in current
8709         emit_notes_for_changes call call vt_expand_loc_dummy to update
8710         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8711         first loc_chain location if NULL before.  Always use just
8712         cur_loc instead of first loc_chain location.  When cur_loc_changed
8713         is false, when not --enable-checking=rtl just don't emit any note.
8714         When rtl checking, compute the note and assert it is the same
8715         as previous note.  Clear cur_loc_changed and in_changed_variables
8716         at the end before removing from changed_variables.
8717         (check_changed_vars_3): New function.
8718         (emit_notes_for_changes): Traverse changed_vars to call
8719         check_changed_vars_3 on each changed var.
8720         (emit_notes_for_differences_1): Clear cur_loc_changed and
8721         in_changed_variables.  Recompute cur_loc of new_var.
8722         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8723         (vt_emit_notes): Initialize and destroy emitted_notes.
8724
8725 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8726
8727         PR rtl-optimization/42220
8728         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8729         Use verify_reg_tracked to determine if we should use OP_OUT rather
8730         than OP_INOUT.
8731         (build_def_use): If we see an in-out operand for a register that we
8732         know nothing about, treat is an output if possible, fail the block if
8733         not.
8734
8735 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8736
8737         PR debug/42897
8738         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8739         permanently.
8740
8741 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8742
8743         PR debug/42897
8744         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8745         uses of relevant DEFs that are dead outside the loop too.
8746
8747 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8748
8749         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8750         Reverted:
8751         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8752         PR debug/41371
8753         * var-tracking.c (values_to_unmark): New variable.
8754         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8755         values_to_unmark vector.  Moved body to...
8756         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8757         instead queue it into values_to_unmark vector.
8758         (vt_find_locations): Free values_to_unmark vector.
8759
8760 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8761
8762         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8763         (site.exp): Export them when plugins are enabled.
8764
8765 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8766
8767         PR middle-end/42326
8768         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8769         that contain scevs.
8770         (chrec_fold_multiply): Same.
8771
8772 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8773
8774         PR c/43248
8775         * c-decl.c (build_compound_literal): Return early if init is
8776         an error_mark_node.
8777
8778 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8779
8780         PR tree-optimization/43164
8781         PR tree-optimization/43191
8782         * tree-sra.c (type_consists_of_records_p): Reject records with
8783         zero-size bit-fields at the end.
8784
8785 2010-03-04  Mike Stump  <mikestump@comcast.net>
8786
8787         * Makefile.in (TAGS): Remove *.y.
8788
8789 2010-03-04  Richard Guenther  <rguenther@suse.de>
8790
8791         PR tree-optimization/40761
8792         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8793         in reverse order.
8794         (my_rev_post_order_compute): New function.
8795         (init_pre): Call it.
8796
8797 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8798
8799         PR middle-end/43209
8800         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8801         decrease the cost of an IV candidate when the cost is infinite.
8802
8803 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8804
8805         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8806         Use '3DNow!' for the extension of that name, ensure normal space
8807         after the string.
8808         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8809
8810 2010-03-03  Jeff Law  <law@redhat.com>
8811
8812         * PR middle-end/32693
8813         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8814         than gen_rtx_SUBREG.
8815         (extract_bit_field_1): Likewise.
8816
8817 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8818
8819         * doc/sourcebuild.texi (Test directives): Document that arguments
8820         include-opts and exclude-opts are now optional for dg-skip-if,
8821         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8822
8823 2010-03-03  Jason Merrill  <jason@redhat.com>
8824
8825         PR c++/12909
8826         * cgraph.h (varpool_node): Add extra_name field.
8827         * varpool.c (varpool_extra_name_alias): New.
8828         (varpool_assemble_decl): Emit extra name aliases.
8829         (varpool_mark_needed_node): Look past an extra name alias.
8830         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8831         * lto-streamer-in.c (lto_input_tree): Read it.
8832         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8833
8834 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8835
8836         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8837         (sparc*-*-solaris2*): ...this.
8838
8839 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8840
8841         PR debug/43229
8842         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8843         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8844         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8845         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8846
8847         PR debug/43237
8848         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8849         fallthrough to default handling, just with want_address 0 instead of 2.
8850         For single element lists, add_AT_loc directly, otherwise create an
8851         artificial variable DIE and stick location list to it.
8852
8853         PR debug/43177
8854         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8855         (VAL_EXPR_HAS_REVERSE): Define.
8856         (reverse_op): New function.
8857         (add_stores): For reversible operations add an extra MO_VAL_USE.
8858
8859 2010-03-02  Jason Merrill  <jason@redhat.com>
8860
8861         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8862
8863 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8864
8865         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8866         (sparc64-*-linux*): Likewise.
8867         (sparc64-*-solaris2*): Include assembler files before linker ones.
8868         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8869         * config/sparc/gas.h: Delete.
8870         * config/sparc/sol2-64.h: Add copyright notice.
8871         * config/sparc/sol2-gas-bi.h: Likewise.
8872         * config/sparc/sol2-gld.h: Likewise.
8873         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8874         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8875         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8876         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8877         (sparc_elf_asm_named_section): Rename into...
8878         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8879
8880 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8881
8882         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8883
8884 2010-03-02  Jeff Law  <law@redhat.com>
8885
8886         PR middle-end/42431
8887         * reload1.c (rtx_p, substitute_stack): Declare.
8888         (substitute): Record addresses of changed rtxs.
8889         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8890         Restore the original rtx when complete.
8891         (reload): Free subsitute_stack when complete.
8892
8893 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8894
8895         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8896         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8897         new chapter.
8898         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8899         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8900         Torture Tests): Change from subsection to section.
8901
8902 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8903             Steven Bosscher  <steven@gcc.gnu.org>
8904
8905         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8906         instead of bb.
8907
8908 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8909
8910         PR middle-end/42640
8911         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8912         the assignment from the new induction variable to the assignment
8913         of the value from the original loop PHI function.
8914
8915 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8916             Daniel Jacobowitz  <dan@codesourcery.com>
8917
8918         * doc/sourcebuild.texi (Test directives): Clarify options to
8919         dg-skip-if.
8920
8921 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8922
8923         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8924         Disable cfi directives unless GCC and gas agree on using read-only
8925         .eh_frame sections for 64-bit.
8926         * configure: Regenerate.
8927
8928 2010-03-01  Richard Guenther  <rguenther@suse.de>
8929
8930         PR tree-optimization/43220
8931         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8932         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8933
8934 2010-03-01  Richard Guenther  <rguenther@suse.de>
8935             Martin Jambor  <mjambor@suse.cz>
8936
8937         PR middle-end/41250
8938         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8939         gimplified parameters.
8940
8941 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8942
8943         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8944
8945 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8946
8947         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8948
8949 2010-03-01  Richard Guenther  <rguenther@suse.de>
8950
8951         PR middle-end/43213
8952         * expr.c (expand_assignment): Use the alias-oracle to tell
8953         if the rhs aliases the result decl.
8954
8955 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8956
8957         PR pch/14940
8958         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8959         to sol_gt_pch_get_address.
8960         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8961         64-bit, SPARC and x86.
8962         (sol_gt_pch_get_address): New function.
8963
8964 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8965
8966         * toplev.h (inform_n, error_n): Declare.
8967         * diagnostic.c (inform_n, error_n): New function.
8968
8969 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8970
8971         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8972         has no rtl yet when processing local_decls, queue it and recheck
8973         if deferred stack allocation hasn't assigned it rtl.
8974
8975 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8976
8977         * config/sh/sh.c (unspec_bbr_uid): New.
8978         (gen_block_redirect): Use it instead of INSN_UID.
8979         (gen_far_branch): Likewise.
8980
8981 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8982
8983         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8984         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8985
8986 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8987
8988         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8989         (Warning Options): -Wno-conversion-null is valid for
8990         Objective-C++ as well.
8991         * doc/tm.texi (Named Address Spaces): Likewise.
8992         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8993         * doc/tree-ssa.texi (Tree SSA): Likewise.
8994
8995 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8996
8997         PR bootstrap/43202
8998         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8999         by default.  Don't set the default arch for
9000         i[34567]86-*-darwin*|x86_64-*-darwin*.
9001
9002 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9003
9004         PR bootstrap/43202
9005         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
9006         default.  Set the default 32bit/64bit archs with $with_arch
9007         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
9008
9009 2010-02-27  Richard Guenther  <rguenther@suse.de>
9010
9011         PR tree-optimization/43186
9012         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
9013         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
9014         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
9015         unroller iterations.
9016
9017 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9018
9019         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
9020         required and i[34567]86-*-* targets don't support 64bit ISA.
9021
9022 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
9023
9024         PR ada/43096
9025         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9026         the same alias set.
9027
9028 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9029
9030         * config.gcc: Set the default arch at least to Prescott for
9031         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
9032         if SSE math is enabled.
9033
9034 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9035
9036         * diagnostic.c (diagnostic_initialize): Update.
9037         (diagnostic_report_diagnostic): Test inhibit_notes_p for
9038         informative notes.
9039         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
9040         (diagnostic_inhibit_notes): New.
9041         * toplev.c (process_options): inhibit notes with -fcompare-debug.
9042
9043 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9044
9045         PR c/20631
9046         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
9047         * doc/standards.texi: Likewise.
9048         * doc/extend.texi: Likewise.
9049         * doc/trouble.texi: Likewise.
9050         * doc/cppopts.texi: Likewise.
9051         * doc/install.texi: Likewise.
9052         * c.opt (std=c90,std=gnu90): New options.
9053         * c-opts.c (c_common_handle_option): Handle them.
9054
9055 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9056
9057         PR c/24577
9058         * c-decl.c (undeclared_variable): Use an informative note.
9059
9060 2010-02-26  Richard Guenther  <rguenther@suse.de>
9061
9062         PR tree-optimization/43186
9063         * gimple.h (gimple_fold): Remove.
9064         * gimple.c (gimple_fold): Remove.  Inline into single user ...
9065         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
9066         Try harder for conditions.
9067
9068 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9069
9070         PR debug/43190
9071         * function.c (used_types_insert): Don't skip through named pointer
9072         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
9073         and it is different from the main variant's type.
9074
9075 2010-02-26  Nick Clifton  <nickc@redhat.com>
9076
9077         * config/rx/rx.md (sminsi3): Remove bogus alternative.
9078
9079 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9080
9081         * config.gcc: Support --with-fpmath=sse for x86.
9082
9083         * config/i386/ssemath.h: New.
9084
9085         * doc/install.texi (--with-fpmath=sse): Documented.
9086
9087 2010-02-26  Richard Guenther  <rguenther@suse.de>
9088
9089         PR tree-optimization/43188
9090         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
9091         vector types of over-aligned element type.
9092
9093 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
9094
9095         PR target/43175
9096         * config/i386/i386.c (expand_vec_perm_blend): Use correct
9097         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
9098
9099 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
9100
9101         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
9102
9103 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9104
9105         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
9106         * var-tracking.c: Include diagnostic.h.
9107         (debug_dv): New function.
9108         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
9109
9110         PR debug/43160
9111         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
9112         (add_value_chain, add_value_chains, remove_value_chain,
9113         remove_value_chains): Handle DEBUG_EXPRs.
9114         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
9115
9116         PR debug/43161
9117         * regcprop.c (struct queued_debug_insn_change): New type.
9118         (struct value_data_entry): Add debug_insn_changes field.
9119         (struct value_data): Add n_debug_insn_changes field.
9120         (debug_insn_changes_pool): New variable.
9121         (free_debug_insn_changes, apply_debug_insn_changes,
9122         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
9123         (kill_value_one_regno): Call free_debug_insn_changes if needed.
9124         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
9125         fields.
9126         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
9127         changes for them.
9128         (copyprop_hardreg_forward_1): Don't call apply_change_group for
9129         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
9130         changes, call cprop_find_used_regs via note_stores.
9131         (copyprop_hardreg_forward): When copying vd from predecessor
9132         which has any queued DEBUG_INSN changes, make sure the pointers are
9133         cleared.  At the end call df_analyze and then if there are any
9134         DEBUG_INSN changes queued at the end of some basic block for still
9135         live registers, apply them.
9136         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
9137
9138 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
9139
9140         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
9141         (arm*-*-*): Ditto.
9142
9143 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9144
9145         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
9146         targets.  Set the default with_cpu/with_arch from arch/cpu.
9147         Allow x86-64 and native for with_cpu/with_arch.
9148
9149 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
9150
9151         * ebitmap.c: Change calls to verify_popcount with calls to
9152         sbitmap_verify_popcount.
9153         (ebitmap_clear_bit): Fixed map->cacheindex test and
9154         map>cache update when bit clearing results in an empty
9155         element.
9156
9157 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9158
9159         PR target/43154
9160         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
9161         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
9162         and support both V2DF and V2DI modes.
9163         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
9164         support both V2DF and V2DI modes.
9165         (general): Delete trailing whitespace from a few patterns.
9166
9167         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9168         V2DF/V2DI interleave high/low builtins.
9169
9170         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
9171         new VSX builtins.
9172
9173         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
9174         interleave high/low functions.
9175
9176 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
9177
9178         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
9179         #pragma extern_prefix.
9180
9181 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
9182
9183         PR debug/43166
9184         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
9185         BLKmode, assert op0 is a MEM and just adjust its mode.
9186
9187         PR debug/43165
9188         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
9189         if bitpos isn't multiple of mode's bitsize.
9190
9191 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9192
9193         * c.opt (-ftemplate-depth=): New.
9194         (-ftemplate-depth-): Deprecate.
9195         * optc-gen.awk: Handle -ftemplate-depth=.
9196         * opth-gen.awk: Likewise.
9197         * c-opts.c (c_common_handle_option): Likewise.
9198         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
9199
9200 2010-02-24  Jason Merrill  <jason@redhat.com>
9201
9202         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
9203
9204 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9205
9206         * cfg.c (alloc_aux_for_block): Remove inline.
9207         (alloc_aux_for_edge): Likewise.
9208
9209 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9210
9211         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9212
9213 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9214
9215         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9216         * config/i386/sol2-gas.h: New file.
9217         * config.gcc (i[34567]86-*-solaris2*): Use it.
9218
9219 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9220
9221         PR c/43128
9222         * c-typeck.c (ep_convert_and_check): New.
9223         (build_conditional_expr): Use it.
9224         (build_binary_op): Likewise.
9225
9226 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9227
9228         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9229
9230         PR debug/43150
9231         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9232         bounds even for -O+.
9233         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9234         expr needs to have DECL_NAME set.
9235
9236 2010-02-24  Nick Clifton  <nickc@redhat.com>
9237
9238         * config/mep/mep.c: Include gimple.h.
9239         (mep_function_uses_sp): Delete unused function.
9240         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9241         parameters.  Use unsigned integers to count args.  Return a
9242         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9243
9244 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9245
9246         PR target/43107
9247         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9248         greater or equal to nelt instead of 2 * nelt.
9249         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9250         with nelt - 1.
9251
9252 2010-02-23  Jason Merrill  <jason@redhat.com>
9253
9254         PR debug/42800
9255         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9256         in cfun->local_decls even if they have register types.
9257
9258         PR c++/42837
9259         * stor-layout.c (place_field): Don't warn about unnecessary
9260         DECL_PACKED if the type is packed.
9261
9262 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9263
9264         PR target/43139
9265         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9266         GOTOFF relocs, even when the base reg isn't pic pointer.
9267
9268 2010-02-23  Michael Matz  <matz@suse.de>
9269
9270         PR debug/43077
9271         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9272         (expand_gimple_basic_block): Generate and use debug temps if there
9273         are debug uses left after the last real use of TERed ssa names.
9274         Unlink debug immediate uses when they are expanded.
9275
9276 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9277
9278         PR 43123
9279         * config/i386/i386.c (override_options): Reorganise to provide
9280         better error messages.
9281
9282 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9283
9284         PR middle-end/43083
9285         * graphite-scop-detection.c (create_single_exit_edge): Move
9286         the call to find_single_exit_edge to....
9287         (create_sese_edges): ...here.  Don't handle multiple edges
9288         exiting the function.
9289         (build_graphite_scops): Don't handle multiple edges
9290         exiting the function.
9291
9292 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9293
9294         PR middle-end/43097
9295         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9296         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9297
9298 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9299
9300         PR middle-end/43026
9301         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9302
9303 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9304
9305         PR c++/43126
9306         * c-typeck.c (convert_arguments): Print declaration location.
9307         * c-common.c (validate_nargs): Rename as
9308         builtin_function_validate_nargs.
9309         (check_builtin_function_arguments): Update.
9310
9311 2010-02-22  Richard Guenther  <rguenther@suse.de>
9312
9313         PR lto/43045
9314         * tree-inline.c (declare_return_variable): Use the type of
9315         the call stmt lhs if available.
9316
9317 2010-02-22  Duncan Sands  <baldrick@free.fr>
9318
9319         * passes.c (register_pass): Always consider all pass lists when
9320         ref_pass_instance_number is zero.
9321
9322 2010-02-22  Richard Guenther  <rguenther@suse.de>
9323
9324         PR tree-optimization/42749
9325         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9326         parameter.  Do arithmetic in the original type.
9327         (update_accumulator_with_ops): Likewise.
9328         (adjust_accumulator_values): Adjust.
9329
9330 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9331
9332         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9333         (QI to BLKmode splitter): New splitter.
9334
9335 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9336
9337         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9338         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9339
9340 2010-02-22  Richard Guenther  <rguenther@suse.de>
9341
9342         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9343
9344 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9345
9346         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9347         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9348         ($(T)crti.o, $(T)crtn.o): Remove rules.
9349
9350 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9351
9352         PR fortran/35259
9353         * doc/invoke.texi (-fassociative-math): Document that this
9354         option is automatically enabled for Fortran.
9355
9356 2010-02-20  David S. Miller  <davem@davemloft.net>
9357
9358         * configure.ac: Test if linker and assembler properly support
9359         GOTDATA_OP relocations.
9360         * configure: Rebuild.
9361         * config.in: Likewise.
9362         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9363         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9364         (movsi_high_pic): Likewise.
9365         (movdi_lo_sum_pic): Likewise.
9366         (movdi_high_pic): Likewise.
9367         (movsi_pic_gotdata_op): New pattern.
9368         (movdi_pic_gotdata_op): Likewise.
9369         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9370         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9371
9372 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9373
9374         PR target/43067
9375         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9376         attribute to ssemul.
9377         (xop_mulv2div2di3_high): Ditto.
9378
9379 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9380
9381         PR c++/35669
9382         * c.opt (Wconversion-null): New option.
9383         * doc/invoke.texi (Wconversion-null): Document.
9384
9385 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9386
9387         * common.opt (Wlarger-than-): Add Undocumented.
9388
9389 2010-02-19  Mike Stump  <mikestump@comcast.net>
9390
9391         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9392
9393 2010-02-19  Jason Merrill  <jason@redhat.com>
9394
9395         PR target/40332
9396         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9397         * configure: Likewise.
9398
9399 2010-02-20  Alan Modra  <amodra@gmail.com>
9400
9401         PR middle-end/42344
9402         * cgraph.h (cgraph_make_decl_local): Declare.
9403         * cgraph.c (cgraph_make_decl_local): New function.
9404         (cgraph_make_node_local): Use it.
9405         * cgraphunit.c (cgraph_function_versioning): Likewise.
9406         * ipa.c (function_and_variable_visibility): Likewise.
9407
9408 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9409
9410         PR bootstrap/43121
9411         * except.c (sjlj_emit_function_enter): Don't call
9412         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9413         directly.
9414         * rtl.h (add_reg_br_prob_note): Remove prototype.
9415
9416 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9417
9418         PR 41779
9419         * c-common.c (conversion_warning): Remove widening conversions
9420         before checking the conversion of integers to reals.
9421
9422 2010-02-19  Mike Stump  <mikestump@comcast.net>
9423
9424         PR middle-end/43125
9425         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9426
9427         PR objc/43061
9428         * cgraphunit.c (process_function_and_variable_attributes): Check
9429         DECL_PRESERVE_P instead of looking up attribute "used".
9430         * ipa-pure-const.c (check_decl): Likewise.
9431         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9432         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9433         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9434         instead of attribute "used".
9435         * config/sol2-c.c (solaris_pragma_init): Likewise.
9436         (solaris_pragma_fini): Likewise.
9437
9438 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9439
9440         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9441         Use XCNEW instead of xcalloc.
9442         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9443         XNEW instead of xmalloc.
9444         (get_fields): Use XNEWVEC instead of xmalloc.
9445
9446         PR debug/43084
9447         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9448         populate vars array.
9449         (create_new_general_access): For debug stmts just reset value.
9450         (get_stmt_accesses): For accesses within debug stmts just record them
9451         using add_access_to_acc_sites instead of preventing the peeling or
9452         counting them as accesses.
9453
9454         PR middle-end/42233
9455         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9456
9457 2010-02-19  Richard Guenther  <rguenther@suse.de>
9458
9459         PR tree-optimization/42916
9460         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9461         instructions.
9462
9463 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9464
9465         * configure.ac: Replace all uses of changequote in macro arguments
9466         with proper quoting.
9467
9468 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9469
9470         PR middle-end/42233
9471         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9472
9473 2010-02-19  Richard Guenther  <rguenther@suse.de>
9474
9475         PR tree-optimization/42944
9476         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9477         test for aliasing with errno.
9478
9479 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9480
9481         PR middle-end/42233
9482         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9483         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9484         * dojump.c: Include output.h.
9485         (inv): New inline function.
9486         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9487         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9488         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9489         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9490         argument, pass it down to other calls.
9491         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9492         add REG_BR_PROB note to the conditional jump.
9493         * cfgexpand.c (add_reg_br_prob_note): Removed.
9494         (expand_gimple_cond): Don't call it, add the probability
9495         as last argument to jumpif_1/jumpifnot_1.
9496         * Makefile.in (dojump.o): Depend on output.h.
9497         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9498         callers.
9499         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9500         * stmt.c (do_jump_if_equal): Likewise.
9501         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9502         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9503         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9504         Likewise.
9505         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9506         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9507         jumpifnot_1 callers.
9508         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9509         callers.
9510         (store_expr): Adjust jumpifnot caller.
9511         (store_constructor): Adjust jumpif caller.
9512
9513         PR middle-end/42233
9514         * gimplify.c (gimple_boolify): For __builtin_expect call
9515         gimple_boolify also on its first argument.
9516
9517 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9518
9519         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9520         changequote block.
9521         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9522         * configure: Regenerated.
9523
9524 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9525
9526         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9527         lang_hooks.types_compatible_p instead of comptypes.
9528
9529 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9530
9531         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9532         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9533         if __prefer_thumb__ is defined.
9534
9535 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9536
9537         PR tree-optimization/43066
9538         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9539         array with zero-sized element type.
9540
9541 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9542
9543         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9544         rtx, allocate struct var_loc_node here and return it to the
9545         caller, and only if it is actually needed.
9546         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9547         move it earlier and return immediately if it returns NULL.
9548
9549 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9550
9551         * config/sparc/gas.h: New file.  Restore
9552         TARGET_ASM_NAMED_SECTION to its ELF default.
9553         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9554         check !HAVE_GNU_AS.
9555         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9556         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9557         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9558         after sparc/sysv4.h.
9559
9560 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9561
9562         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9563
9564 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9565
9566         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9567         patterns from predicated pattern.
9568
9569 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9570
9571         PR target/43103
9572         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9573         for insn mnemonic suffix.
9574
9575 2010-02-17  Richard Guenther  <rguenther@suse.de>
9576
9577         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9578         to loop PHI nodes.
9579
9580 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9581
9582         PR debug/42918
9583         * caller-save.c (save_call_clobbered_regs): If BB ends with
9584         a DEBUG_INSN, move any notes in between last real insn and the last
9585         DEBUG_INSN after the last DEBUG_INSN.
9586
9587 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9588
9589         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9590         Fix return type.  Fix argument type.  Explain meaning of return value.
9591
9592 2010-02-16  Richard Guenther  <rguenther@suse.de>
9593
9594         PR tree-optimization/41043
9595         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9596         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9597         statements ...
9598         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9599
9600 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9601
9602         PR tree-optimization/43074
9603         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9604         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9605         vectorizable cycles in hybrid SLP check.
9606         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9607
9608 2010-02-16  Richard Guenther  <rguenther@suse.de>
9609
9610         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9611         (true_dependence): If memrefs_conflict_p computes must-alias
9612         trust it.  Move TBAA check after offset-based disambiguation.
9613         (canon_true_dependence): Likewise.
9614
9615 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9616
9617         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9618         * doc/invoke.texi: Document it.
9619         * var-tracking.c: Include toplev.h and params.h.
9620         (vt_find_locations): Return bool indicating success.  Compute
9621         hash sizes unconditionally.  Check new parameter, report.
9622         (variable_tracking_main_1): Check vt_find_locations results and
9623         retry.  Renamed from...
9624         (variable_tracking_main): ... this.  New wrapper to preserve
9625         flag_var_tracking_assignments.
9626         * Makefile.in (var-tracking.o): Adjust dependencies.
9627
9628 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9629             Jakub Jelinek <jakub@redhat.com>
9630
9631         PR target/42854
9632         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9633         if weak_import attribute is present.
9634         * config/darwin.c (machopic_select_section): Likewise.
9635
9636 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9637
9638         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9639         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9640         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9641         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9642
9643         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9644         types.
9645
9646         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9647         Fix argument types.
9648
9649         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9650         Rewrite text to refer to the names.
9651
9652 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9653
9654         * config/i386/i386-builtin-types.def
9655         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9656         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9657         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9658         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9659         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9660         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9661         IX86_BUILTIN_VPERMIL2PS256.
9662         (MULTI_ARG_4_DF2_DI_I): Defined.
9663         (MULTI_ARG_4_DF2_DI_I1): Defined.
9664         (MULTI_ARG_4_SF2_SI_I): Defined.
9665         (MULTI_ARG_4_SF2_SI_I1): Defined.
9666         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9667         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9668         __builtin_ia32_vpermil2ps256.
9669         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9670         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9671         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9672         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9673         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9674         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9675         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9676         CODE_FOR_xop_vpermil2v8sf3.
9677         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9678         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9679         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9680         (_mm256_permute2_pd): New.
9681         (_mm_permute2_ps): New.
9682         (_mm256_permute2_ps): New.
9683
9684 2010-02-15  Nick Clifton  <nickc@redhat.com>
9685
9686         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9687         boolean parameters.  Use emit_jump_insn when emitting a pop
9688         instruction containing a return insn.
9689         (push): Use 'true' rather than '1' as second parameter to F.
9690         (h8300_expand_prologue): Likewise.
9691         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9692         (h8300_expand_epilogue): Likewise.
9693
9694 2010-02-15  Richard Guenther  <rguenther@suse.de>
9695
9696         PR middle-end/43068
9697         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9698         if that is zero.
9699
9700 2010-02-15  Nick Clifton  <nickc@redhat.com>
9701
9702         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9703         delta.
9704
9705 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9706
9707         * intl.c (fake_ngettext): New function.
9708         * intl.h (fake_ngettext): Declare.
9709         (ngettext): Define macro.
9710         * collect2.c (notice_translated): New function.
9711         (main): Use notice_translated and ngettext.
9712         * collect2.h (notice_translated): Declare.
9713
9714 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9715
9716         * reorg.c (delete_computation): Comment fixes.
9717         * caller-save.c (setup_save_areas): Idem.
9718         * sel-sched-dump.c (dump_lv_set): Idem.
9719         * rtl.def: Idem.
9720
9721 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9722
9723         * config/s390/s390.c (s390_sched_init): New function.
9724         (TARGET_SCHED_INIT): Target hook defined.
9725
9726 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9727             Jack Howarth  <howarth@bromo.med.uc.edu>
9728             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9729
9730         PR target/42982
9731         Partial revert of unintended change in fix for PR41605.
9732         * config/darwin.h: Fix typo.
9733         * config/darwin9.h: Same.
9734
9735 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9736
9737         * c-pch.c (pch_init): Clear v.
9738
9739 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9740
9741         PR middle-end/42930
9742         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9743         graphite_can_represent_init for MULT_EXPR.
9744
9745 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9746
9747         PR middle-end/42914
9748         PR middle-end/42530
9749         * graphite-sese-to-poly.c (remove_phi): New.
9750         (translate_scalar_reduction_to_array): Call remove_phi.
9751
9752 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9753
9754         PR middle-end/42771
9755         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9756         * graphite-clast-to-gimple.h (gloog): Update declaration.
9757         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9758         * graphite-poly.h (struct poly_bb): Add missing comments.
9759         (struct scop): Add poly_scop_p field.
9760         (POLY_SCOP_P): New.
9761         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9762         * graphite.c (graphite_transform_loops): Build the polyhedral
9763         representation for each scop before code generation.
9764         * sese.c (rename_variables_in_operand): Removed.
9765         (rename_variables_in_expr): Return the renamed expression.
9766         (rename_sese_parameters): New.
9767         * sese.h (rename_sese_parameters): Declared.
9768
9769 2010-02-11  Richard Guenther  <rguenther@suse.de>
9770
9771         PR tree-optimization/42998
9772         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9773         POINTER_PLUS_EXPR properly.
9774
9775 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9776             Changpeng Fang  <changpeng.fang@amd.com>
9777
9778         PR middle-end/40886
9779         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9780         the cost of an IV candidate when the IV is used in a test against zero.
9781
9782         * gcc.dg/tree-ssa/ivopts-3.c: New.
9783
9784 2010-02-11  Richard Guenther  <rguenther@suse.de>
9785
9786         PR lto/41664
9787         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9788         pointer-vs-decl case by swapping refs.  Handle some cases
9789         of pointer-vs-decl disambiguations more conservatively.
9790         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9791         to false after expanding.
9792
9793 2010-02-11  Richard Guenther  <rguenther@suse.de>
9794
9795         PR driver/43021
9796         * gcc.c (process_command): Handle LTO file@offset case more
9797         appropriately.
9798
9799 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9800
9801         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9802         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9803         of DEBUG_INSNs.
9804         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9805
9806         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9807         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9808         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9809         Optimize eq/ne comparisons when both arguments are known to be
9810         zero-extended.
9811         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9812         Don't mask operands unnecessarily if they are known to be already
9813         zero-extended.
9814
9815 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9816
9817         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9818         instead of loop.
9819
9820 2010-02-10  Richard Guenther  <rguenther@suse.de>
9821
9822         PR tree-optimization/43017
9823         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9824         for wrapping signed arithmetic.
9825
9826 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9827
9828         PR debug/43010
9829         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9830         if no debug info should be emitted for it.
9831
9832 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9833
9834         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9835         note when flag_exceptions is set.
9836
9837 2010-02-10  Duncan Sands  <baldrick@free.fr>
9838
9839         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9840
9841 2010-02-10  Richard Guenther  <rguenther@suse.de>
9842
9843         PR c/43007
9844         * tree.c (get_unwidened): Handle constants.
9845         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9846
9847 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9848
9849         PR lto/42985
9850         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9851         check for variable argument counts independently.
9852
9853 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9854
9855         PR target/42841
9856         * config/sh/sh.c (find_barrier): Increase length for non delayed
9857         conditional branches.
9858
9859 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9860
9861         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9862
9863 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9864
9865         * builtins.c (set_builtin_user_assembler_name): Also handle
9866         ffs if int is smaller than word.
9867
9868 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9869
9870         PR middle-end/42973
9871         * ira-conflicts.c (get_dup): Remove.
9872         (process_reg_shuffles): Add new parameter.  Use it as an
9873         additional guard for copy generation.
9874         (add_insn_allocno_copies): Rewrite.
9875
9876 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9877
9878         * common.opt (fsched2-use-traces): Preserved for backward
9879         compatibility.
9880         * doc/invoke.texi: Remove the documentation about option
9881         -fsched2-use-traces.
9882         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9883         flag_sched2_use_traces.
9884         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9885         the backward compatibility flag section.
9886
9887 2010-02-09  Richard Guenther  <rguenther@suse.de>
9888
9889         PR tree-optimization/43008
9890         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9891         make HEAP variables initialized from global memory if they
9892         are not known builtin functions.
9893         (find_func_aliases): Adjust.
9894
9895 2010-02-09  Richard Guenther  <rguenther@suse.de>
9896
9897         PR tree-optimization/43000
9898         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9899         arithmetic manually.
9900
9901 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9902
9903         PR tree-optimization/42931
9904         * tree-loop-linear.c (try_interchange_loops): Don't call
9905         double_int_mul if estimated_loop_iterations failed.
9906
9907 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9908
9909         PR middle-end/42898
9910         * tree-sra.c (build_accesses_from_assign): Do not mark in
9911         should_scalarize_away_bitmap if stmt has volatile ops.
9912         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9913         has volatile ops.
9914
9915 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9916
9917         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9918
9919 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9920
9921         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9922         before the pattern.
9923
9924 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9925
9926         PR middle-end/42946
9927         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9928
9929 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9930
9931         PR middle-end/42988
9932         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9933         to unknown_dependence.
9934         (graphite_legal_transform_dr): Handle the unknown_dependence.
9935         (graphite_carried_dependence_level_k): Same.
9936
9937 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9938
9939         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9940
9941 2010-02-07  Richard Guenther  <rguenther@suse.de>
9942
9943         PR middle-end/42991
9944         * expr.c (get_inner_reference): Always initialize *pbitsize.
9945
9946 2010-02-07  Richard Guenther  <rguenther@suse.de>
9947
9948         PR middle-end/42956
9949         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9950         new ARRAY_REFs on variable size element or minimal index arrays.
9951         Complete.
9952         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9953         gimple_fold_indirect_ref.
9954
9955 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9956
9957         PR target/42957
9958         * arm.c (arm_override_options): Just return if the user has specified
9959         an invalid fpu name.
9960
9961 2010-02-03  Jason Merrill  <jason@redhat.com>
9962
9963         PR c++/42870
9964         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9965         i386_pe_maybe_record_exported_symbol.
9966
9967 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9968
9969         PR target/42924
9970         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9971         (pa_delegitimize_address): New function.
9972
9973 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9974
9975         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9976         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9977
9978 2010-02-05  Richard Guenther  <rguenther@suse.de>
9979
9980         PR lto/42762
9981         * lto-streamer-in.c (get_resolution): Deal with references
9982         to undefined functions.
9983
9984 2010-02-05  Richard Guenther  <rguenther@suse.de>
9985
9986         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9987         (fold_const_aggregate_ref): Likewise.
9988         (ccp_fold_stmt): Substitute loads.
9989         (maybe_fold_reference): Verify types before substituting.
9990         Unshare properly.
9991         (fold_gimple_assign): Unshare properly.
9992         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9993
9994 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9995
9996         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9997         for rs6000_gen_cell_microcode.
9998
9999 2010-02-04  Richard Guenther  <rguenther@suse.de>
10000
10001         PR rtl-optimization/42952
10002         * dse.c (const_or_frame_p): Remove MEM handling.
10003
10004 2010-02-04  Nick Clifton  <nickc@redhat.com>
10005
10006         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10007         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10008         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
10009         (mn10300_asm_output_mi_thunk): New function.
10010         (mn10300_can_output_mu_thunk): New function.
10011         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
10012         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
10013         (FUNCTION_ARG): Delete incorrect comment.
10014
10015 2010-02-03  Jason Merrill  <jason@redhat.com>
10016
10017         PR c++/40138
10018         * fold-const.c (operand_equal_p): Handle erroneous types.
10019
10020 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10021
10022         * config/h8300/h8300.md (can_delay): Fix attibute condition.
10023
10024 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
10025
10026         PR rtl-optimization/42941
10027         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
10028         of xmalloc.
10029
10030 2010-02-03  Jason Merrill  <jason@redhat.com>
10031
10032         PR c++/35652
10033         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
10034
10035 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
10036
10037         PR debug/42896
10038         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
10039         (cselib_reset_table): Renamed from...
10040         (cselib_reset_table_with_next_value): ... this.
10041         (cselib_get_next_uid): Renamed from...
10042         (cselib_get_next_unknown_value): ... this.
10043         * cselib.c (next_uid): Renamed from...
10044         (next_unknown_value): ... this.
10045         (cselib_clear_table): Adjust.
10046         (cselib_reset_table): Adjust.  Renamed from...
10047         (cselib_reset_table_with_next_value): ... this.
10048         (cselib_get_next_uid): Adjust.  Renamed from...
10049         (cselib_get_next_unknown_value): ... this.
10050         (get_value_hash): Use hash.
10051         (cselib_hash_rtx): Likewise.
10052         (new_cselib_val): Adjust.  Set and dump uid.
10053         (cselib_lookup_mem): Pass next_uid as hash.
10054         (cselib_subst_to_values): Likewise.
10055         (cselib_log_lookup): Dump uid.
10056         (cselib_lookup): Pass next_uid as hash.  Adjust.
10057         (cselib_process_insn): Adjust.
10058         (cselib_init): Initialize next_uid.
10059         (cselib_finish): Adjust.
10060         (dump_cselib_table): Likewise.
10061         * dse.c (canon_address): Dump value uid.
10062         * print-rtl.c (print_rtx): Print value uid.
10063         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
10064         (dvuid): New type.
10065         (dv_uid): New function, sort of renamed from...
10066         (dv_htab_hash): ... this, reimplemented in terms of it and...
10067         (dv_uid2hash): ... this.  New.
10068         (variable_htab_eq): Drop excess assertions.
10069         (tie_break_pointers): Removed.
10070         (canon_value_cmp): Compare uids.
10071         (variable_post_merge_New_vals): Print uids.
10072         (vt_add_function_parameters): Adjust.
10073         (vt_initialize): Reset table.  Adjust.
10074
10075 2010-02-03  Richard Guenther  <rguenther@suse.de>
10076
10077         PR tree-optimization/42944
10078         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
10079         (call_may_clobber_ref_p_1): Likewise.  Properly handle
10080         malloc and calloc clobbering errno.
10081
10082 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
10083
10084         * doc/invoke.texi: Fix name of sched1 dump.
10085
10086         * opts.c (decode_options): Set flag_tree_switch_conversion
10087         only conditionally on optimize >= 2.
10088
10089         * gcse.c: Assorted comment fixes in pass description.
10090
10091 2010-02-03  Anthony Green  <green@moxielogic.com>
10092
10093         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
10094         nop padding in order to maintain alignment of storage location of
10095         target function address.
10096         (moxie_trampoline_init): Store target function address at newly
10097         aligned location.
10098         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
10099         to 32.
10100         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
10101
10102 2010-02-03  Richard Guenther  <rguenther@suse.de>
10103
10104         PR middle-end/42927
10105         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
10106
10107 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10108
10109         * config.gcc: Reenable check for obsolete targets.
10110         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
10111         mips-sgi-irix6.[0-4]*.
10112
10113 2010-02-02  Nick Clifton  <nickc@redhat.com>
10114
10115         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
10116         constant size of 4 as being the same as 0.
10117         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
10118         can take values in the range 0..4.
10119
10120 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
10121
10122         PR java/41991
10123         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
10124         as _darwin10_Unwind_FindEnclosingFunction().
10125         * libgcc-libsystem.ver: New.
10126
10127 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
10128
10129         PR target/41399
10130         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
10131         implicitly set registers.
10132
10133 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
10134
10135         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
10136         (arm_override_options): Allow automatic selection of the thread
10137         pointer register if thumb2.
10138         (legitimize_pic_address): Improve code sequences for Thumb2.
10139         (arm_call_tls_get_addr): Likewise.
10140         (legitimize_tls_address): Likewise.
10141         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
10142         (pic_load_addr_32bit): ... this.  New named pattern.
10143         * thumb2.md (pic_load_addr_thumb2): Delete.
10144         (pic_load_dot_plus_four): Delete.
10145         (tls_load_dot_plus_four): New named pattern.
10146
10147 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10148
10149         PR libgomp/29986
10150         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
10151         Document fix for TLS bug.
10152
10153 2010-01-31  Richard Guenther  <rguenther@suse.de>
10154
10155         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
10156         conservatively correct.
10157
10158 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10159
10160         PR target/42850
10161         Revert:
10162         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10163
10164         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10165
10166 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10167
10168         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
10169
10170 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
10171
10172         * config.gcc: Adjust order of makefile fragments for mingw targets.
10173
10174 2010-01-31  Richard Guenther  <rguenther@suse.de>
10175
10176         PR middle-end/42898
10177         * gimplify.c (gimplify_init_constructor): For volatile LHS
10178         initialize a temporary.
10179
10180 2010-01-31  Matthias Klose  <doko@ubuntu.com>
10181
10182         * configure.ac: Fix __stack_chk_fail check for cross builds configured
10183         --with-headers
10184         * configure: Regenerate.
10185
10186 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
10187
10188         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10189         the same alias set and their sizes different constantness.
10190         (aliasing_component_refs_p): Revert 2009-10-24 change.
10191
10192 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10193
10194         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
10195         unused.
10196
10197 2010-01-29  Richard Guenther  <rguenther@suse.de>
10198
10199         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
10200         Assert we successfully updated the call.
10201
10202 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
10203
10204         PR rtl-optimization/42889
10205         * df.h (df_set_bb_dirty_nonlr): New prototype.
10206         * df-core.c (df_set_bb_dirty_nonlr): New function.
10207         * df-scan.c (df_insn_rescan): Call it instead of
10208         df_set_bb_dirty for DEBUG_INSNs.
10209
10210 2010-01-29  Richard Guenther  <rguenther@suse.de>
10211
10212         PR middle-end/37448
10213         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10214         quadratic behavior in most cases.
10215
10216 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10217
10218         PR target/42891
10219         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10220         in the call to gen_x86_movsicc_0_m1.
10221
10222 2010-01-28  Richard Guenther  <rguenther@suse.de>
10223
10224         PR tree-optimization/42871
10225         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10226
10227 2010-01-28  Richard Guenther  <rguenther@suse.de>
10228
10229         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10230         into call arguments.
10231
10232 2010-01-28  Richard Guenther  <rguenther@suse.de>
10233
10234         PR middle-end/42883
10235         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10236         the forwarder if the destination is an EH landing pad.
10237
10238 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10239
10240         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10241         block list passed to gimple_duplicate_sese_tail.
10242         (parallelize_loops): Avoid parallelization when the function
10243         has_nonlocal_label.
10244         Avoid parallelization when the preheader is IRREDUCIBLE.
10245         Try to optimize when estimated_loop_iterations_int is unresolved.
10246         Add the loop's location to the dump file.
10247         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10248         (gimple_duplicate_sese_tail): Remove the check for the latch.
10249         Redirect nexits to the exit block.
10250         Remove handling of the incoming edges to the latch.
10251         Redirect the backedge from the copied latch to the exit bb.
10252
10253 2010-01-28  Michael Matz  <matz@suse.de>
10254
10255         PR target/42881
10256         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10257         Wrap force_reg into a sequence, emit it before user.
10258
10259 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10260
10261         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10262         (arm_rev): New.
10263         (arm_legacy_rev): Likewise.
10264         (thumb_legacy_rev): Likewise.
10265
10266 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10267
10268         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10269         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10270         on MEM's address failed, try avoid_constant_pool_reference and
10271         recurse if it returned something different.
10272         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10273         address, try avoid_constant_pool_reference and recurse if it
10274         returned something different.
10275         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10276         address and avoid_constant_pool_reference returned something
10277         different, don't set have_address.
10278
10279 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10280
10281         PR debug/42861
10282         * var-tracking.c (val_store): Add modified argument, obey it.
10283         Adjust callers.
10284         (count_uses): Move down logging of main.
10285         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10286         don't need resolution.
10287         (emit_notes_in_bb): Likewise.
10288
10289 2010-01-27  Richard Guenther  <rguenther@suse.de>
10290
10291         PR middle-end/42878
10292         * tree-inline.c (remap_decl): Delay remapping of SSA name
10293         default definitions until we need them.
10294
10295 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10296
10297         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10298         (rs6000_delegitimize_address): New function.
10299
10300         * config/s390/s390.c (s390_delegitimize_address): Call
10301         delegitimize_mem_from_attrs.
10302
10303         PR middle-end/42874
10304         * tree-inline.c (cannot_copy_type_1): Removed.
10305         (copy_forbidden): Don't forbid copying of functions containing
10306         records/unions with variable length fields.
10307
10308 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10309
10310         Revert:
10311         PR target/42841
10312         * config/sh/sh.c (find_barrier): Increase length for non delayed
10313         conditional branches.
10314
10315 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10316
10317         * configure.ac (gnu-unique-object): Fix ldd version check.
10318         * configure: Regenerate.
10319
10320 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10321
10322         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10323         HAVE_GNU_AS value.
10324         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10325         Test for HAVE_GNU_AS value.
10326
10327 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10328
10329         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10330         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10331         INT64_TYPE): Define.
10332         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10333         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10334         INT_LEAST64_TYPE): Define.
10335         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10336         UINT_LEAST64_TYPE): Define.
10337         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10338         INT_FAST64_TYPE): Define.
10339         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10340         UINT_FAST64_TYPE): Define.
10341         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10342         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10343         (SIG_ATOMIC_TYPE): Define.
10344
10345 2010-01-26  Richard Guenther  <rguenther@suse.de>
10346
10347         * df-scan.c (df_scan_set_bb_info): Remove assert.
10348         (df_insn_rescan_debug_internal): Merge asserts.
10349         (df_install_ref): Likewise.
10350         (df_mark_reg): Use bitmap_set_range.
10351         (df_hard_reg_used_p): Remove assert.
10352         (df_hard_reg_used_count): Likewise.
10353
10354 2010-01-26  Richard Guenther  <rguenther@suse.de>
10355
10356         PR rtl-optimization/42685
10357         * web.c (web_main): Ignore DEBUG_INSNs.
10358
10359 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10360
10361         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10362
10363         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10364         Fix types of fndecl and arglist parameters.
10365
10366 2010-01-26  Richard Guenther  <rguenther@suse.de>
10367
10368         PR middle-end/42806
10369         * tree-eh.c (unsplit_eh): Skip debug insns.
10370
10371 2010-01-26  Richard Guenther  <rguenther@suse.de>
10372
10373         PR tree-optimization/42250
10374         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10375
10376 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10377
10378         PR fortran/42866
10379         * omp-low.c (expand_omp_sections): Only use single_pred if
10380         l2_bb is single_pred_p.
10381
10382 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10383
10384         PR target/42841
10385         * config/sh/sh.c (find_barrier): Increase length for non delayed
10386         conditional branches.
10387         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10388
10389 2010-01-24  David S. Miller  <davem@davemloft.net>
10390
10391         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10392         define if not using GAS.
10393         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10394         Likewise.  Delete SECTION_MERGE code, which is only applicable
10395         when using GAS.
10396
10397 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10398
10399         PR c++/42748
10400         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10401         mangling of va_list in system headers.
10402
10403 2010-01-23  Toon Moene  <toon@moene.org>
10404
10405         * tree-predcom.c (combine_chains): Return NULL, not false.
10406
10407 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10408
10409         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10410         initialization of variable res to agree with return type.
10411
10412 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10413
10414         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10415         * tree-sra.c: Add include of expr.h.
10416
10417 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10418
10419         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10420         insert the debug stmt on the single non-EH edge from the stmt.
10421
10422 2010-01-22  Richard Henderson  <rth@redhat.com>
10423
10424         PR tree-opt/42833
10425         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10426         the RHS until after generate_subtree_copies has insertted its
10427         code before the current statement.
10428
10429 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10430
10431         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10432
10433         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10434
10435 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10436
10437         PR tree-optimization/42585
10438         * tree-sra.c (struct access): New field grp_total_scalarization.
10439         (dump_access): Dump the new field.
10440         (should_scalarize_away_bitmap): New variable.
10441         (cannot_scalarize_away_bitmap): Likewise.
10442         (sra_initialize): Allocate new bitmaps.
10443         (sra_deinitialize): Free new bitmaps.
10444         (create_access_1): New function.
10445         (create_access): Parts moved to create_access_1.
10446         (type_consists_of_records_p): New function.
10447         (completely_scalarize_record): Likewise.
10448         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10449         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10450         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10451         access.
10452         (analyze_all_variable_accesses): Completely scalarize small eligible
10453         records.
10454
10455 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10456
10457         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10458
10459 2010-01-21  Andrew Haley  <aph@redhat.com>
10460
10461         * gcc.c (process_command): Move lang_specific_driver before
10462         setting cc_libexec_prefix.
10463
10464 2010-01-21  Richard Guenther  <rguenther@suse.de>
10465
10466         PR middle-end/19988
10467         * fold-const.c (negate_expr_p): Pretend only negative
10468         real constants are easily negatable.
10469
10470 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10471             Jason Merrill  <jason@redhat.com>
10472
10473         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10474         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10475         * calls.c (initialize argument_information): Handle it.
10476         * c-common.c (handle_transparent_union_attribute): Use new name.
10477         * c-decl.c (finish_struct): Ditto.
10478         * c-typeck.c (type_lists_compatible_p): Ditto.
10479         (convert_for_assignment): Use new name and also handle record.
10480         * function.c (aggregate_value_p): Handle it.
10481         (pass_by_reference): Ditto.
10482         (assign_parm_data_types): Ditto.
10483         * print-tree.c (print_node): Ditto.
10484         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10485         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10486         * tree.c (first_field): New fn.
10487
10488 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10489
10490         PR target/42818
10491         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10492         even when linking statically, for now.
10493
10494 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10495
10496         PR debug/42715
10497         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10498         without a cselib val.
10499         (count_uses): Accept MO_VAL_SET with no val on stores.
10500         (add_stores): Likewise.
10501
10502 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10503
10504         * var-tracking.c (check_value_val): Add a compile time assertion.
10505         (dv_is_decl_p): Simplify.
10506         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10507         gcc_assert if ENABLE_CHECKING.
10508
10509 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10510
10511         PR debug/42782
10512         * var-tracking.c: Include tree-flow.h.
10513         (mem_dies_at_call): New.
10514         (dataflow_set_preserve_mem_locs): Use it.
10515         (dataflow_set_remove_mem_locs): Likewise.
10516         (dump_var): Renamed from dump_variable.  Adjust all callers.
10517         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10518         * Makefile.in (var-tracking.o): Adjust deps.
10519
10520 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10521
10522         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10523
10524 2010-01-20  Richard Guenther  <rguenther@suse.de>
10525
10526         PR tree-optimization/42717
10527         * tree-ssa-dce.c (get_live_post_dom): Remove.
10528         (forward_edge_to_pdom): Take an arbitrary edge to copy
10529         degenerate PHI args from.
10530         (remove_dead_stmt): Use the first post-dominator even if it
10531         does not contain live statements as redirection destination.
10532
10533 2010-01-20  Richard Guenther  <rguenther@suse.de>
10534
10535         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10536
10537 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10538
10539         * sel-sched.c (create_speculation_check): Remove set but not used
10540         variable twin.
10541         (try_transformation_cache): Remove set but not used variable ds.
10542         (calculate_privileged_insns): Remove set but not used variables
10543         cur_insn and min_spec_insn.
10544         (find_best_expr): Remove set but not used variable avail_n.
10545         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10546         variable e.
10547         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10548         false_label.
10549         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10550         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10551         new_scop_exit_edge.
10552
10553 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10554
10555         PR bootstrap/42786
10556         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10557         cpu types.  Add support for *-sse3 cpu types.
10558         (x86_64-*-*): Ditto.
10559
10560 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10561
10562         PR middle-end/42803
10563         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10564         argument, call initializer_constant_valid_p_1 instead of
10565         initializer_constant_valid_p, pass CACHE to it, return NULL
10566         immediately if first call returns NULL.
10567         (initializer_constant_valid_p_1): New function.
10568         (initializer_constant_valid_p): Use it.
10569
10570 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10571
10572         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10573
10574 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10575
10576         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10577         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10578         (loc_list_from_tree): Don't handle unsigned division.  Handle
10579         signed modulo using DW_OP_{over,over,div,mul,minus}.
10580         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10581         modulo instead of signed.
10582
10583 2010-01-20  DJ Delorie  <dj@redhat.com>
10584
10585         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10586         (Fpa): Pass it
10587         (h8300_emit_stack_adjustment): Propogate it.
10588         (push): Pass it.
10589         (h8300_expand_prologue): Likewise.
10590         (h8300_expand_epilogue): Likewise.
10591
10592 2010-01-19  Michael Matz  <matz@suse.de>
10593
10594         PR tree-optimization/41783
10595         * tree-data-ref.c (toplevel): Include flags.h.
10596         (dump_data_dependence_relation):  Also dump the inputs if the
10597         result will be unknown.
10598         (split_constant_offset_1): Look through some conversions.
10599         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10600         the offset from last element is too large.
10601         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10602         (reassociate_to_the_same_stmt): Handle vector registers.
10603         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10604         (e.g. conversions).
10605         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10606         wide_prolog_niters argument, emit widening instructions.
10607         (vect_do_peeling_for_alignment): Adjust caller, use widened
10608         variant of the iteration cound.
10609         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10610
10611 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10612
10613         PR target/38697
10614         * config/arm/neon-testgen.m (emit_automatics): New parameter
10615         features. Adjust for Fixed_return_reg feature.
10616         (test_intrinsic): Call emit_automatics with new feature.
10617         * config/arm/neon.ml: Update copyright years.
10618         (features): New Fixed_return_reg feature.
10619         (ops): Update feature for Vget_low.
10620
10621 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10622
10623         PR tree-optimization/42719
10624         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10625         stmt uses.
10626
10627         PR debug/42728
10628         * fwprop.c (all_uses_available_at): Return false if def_set dest
10629         is a REG that is used in def_insn.
10630
10631 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10632
10633         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10634
10635         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10636         Add argument names.
10637
10638         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10639
10640         * target.h (struct gcc_target) <secondary_reload>: Change type
10641         of last argument to secondary_reload_info *.
10642
10643 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10644
10645         PR target/42774
10646         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10647         memory references with unaligned offsets.  Remove CQImode handling.
10648         (unaligned_memory_operand): Return 1 for memory references with
10649         unaligned offsets.  Remove CQImode handling.
10650
10651 2010-01-18  Richard Guenther  <rguenther@suse.de>
10652
10653         PR middle-end/39954
10654         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10655         builtin calls.
10656
10657 2010-01-18  Richard Guenther  <rguenther@suse.de>
10658
10659         PR tree-optimization/42781
10660         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10661         restrict processing only if the original variable was artificial.
10662
10663 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10664
10665         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10666         find number of popped argument bytes.
10667
10668         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10669         Fix the text that describes the return value for invalid insns.
10670
10671         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10672
10673         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10674         Clarify what 'cost of the -dependence' is.  Fix quoting.
10675
10676         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10677         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10678
10679 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10680
10681         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10682         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10683
10684 2010-01-17  Richard Guenther  <rguenther@suse.de>
10685
10686         PR middle-end/42248
10687         * function.c (split_complex_args): Take a VEC to modify.
10688         (assign_parms_augmented_arg_list): Build a VEC instead of
10689         a chain of PARM_DECLs.
10690         (assign_parms_unsplit_complex): Take a VEC of arguments.
10691         Do not fixup unmodified parms.
10692         (assign_parms): Deal with the VEC.
10693         (gimplify_parameters): Likewise.
10694
10695 2010-01-17  Richard Guenther  <rguenther@suse.de>
10696
10697         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10698         node existence check.
10699         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10700         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10701         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10702         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10703         (gimple_execute_on_growing_pred): Likewise.
10704
10705 2010-01-17  Richard Guenther  <rguenther@suse.de>
10706
10707         PR tree-optimization/42773
10708         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10709         (compute_antic_aux): Likewise.
10710         (compute_partial_antic_aux): Likewise.
10711
10712 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10713
10714         PR debug/42767
10715         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10716         and US_TRUNCATE.
10717
10718 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10719
10720         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10721         appearance.
10722
10723         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10724         Fix markup for strict argument.
10725
10726         (TARGET_SCHED_REORDER2): Fix argument types.
10727
10728         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10729         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10730
10731         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10732         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10733
10734         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10735         Add argument name.
10736
10737         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10738         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10739         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10740         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10741         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10742
10743         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10744
10745         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10746
10747         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10748         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10749
10750         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10751
10752         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10753         Use prototype.
10754
10755         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10756
10757         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10758         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10759
10760         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10761
10762         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10763
10764         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10765         referring to it.  Fix language.
10766
10767         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10768
10769         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10770
10771         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10772
10773         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10774
10775         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10776         '@var{stream}.  Remove stray 'and'.
10777
10778         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10779
10780         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10781
10782         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10783
10784         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10785         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10786
10787         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10788         Fix description of return value.
10789         Rename argument "sz" to "len."
10790
10791         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10792         Clarify meaning of 'true' return value.
10793
10794         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10795
10796         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10797         rep_mode versus mode_rep.
10798
10799         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10800
10801         (TARGET_BUILTIN_DECL): Fix name.
10802
10803         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10804
10805         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10806
10807         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10808
10809         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10810
10811         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10812
10813         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10814         Clarify language.
10815
10816         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10817         Rename argument tm_fn to md_fn.
10818
10819         (TARGET_OPTION_PRINT): Fix argument list.
10820
10821 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10822
10823         PR target/42664
10824         * config/i386/i386.c (ix86_fixup_binary_operands):
10825         Revert FMA4 fixup of operands.
10826
10827 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10828
10829         PR gcc/42525
10830         * Makefile.in (write_entries_to_file, install-plugin):
10831         Use \012 instead of \n with tr.
10832
10833 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10834
10835         * configure.ac (HAVE_AS_REF): New C macro.
10836         * configure: Regenerate.
10837         * config.in: Likewise.
10838         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10839         if HAVE_AS_REF.
10840         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10841         if HAVE_AS_REF.
10842
10843 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10844
10845         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10846
10847         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10848
10849         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10850
10851         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10852
10853         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10854
10855         (TARGET_BINDS_LOCAL_P): Fix argument type.
10856
10857         (TARGET_ASM_FILE_END): Use prototype.
10858
10859         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10860
10861         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10862
10863         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10864
10865         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10866
10867         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10868         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10869
10870         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10871         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10872
10873         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10874         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10875         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10876         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10877
10878         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10879
10880         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10881
10882         (TARGET_INIT_BUILTINS): Use prototype.
10883
10884         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10885         Put 'const char *' in braces.  Fix parameter types.
10886         (TARGET_INVALID_CONVERSION): Fix parameter types.
10887         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10888         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10889
10890         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10891         Fix argument type.
10892
10893         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10894
10895         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10896
10897 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10898
10899         * doc/tm.texi (TARGET_HELP): Fix return type.
10900
10901         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10902         in braces.  Fix argument types.
10903
10904         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10905
10906         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10907
10908         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10909
10910         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10911         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10912
10913         (TARGET_MANGLE_TYPE): Fix argument types.
10914
10915         (TARGET_IRA_COVER_CLASSES): Use prototype.
10916
10917         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10918
10919         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10920
10921         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10922
10923         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10924
10925         (TARGET_CALLEE_COPIES): Fix argument types.
10926
10927         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10928
10929         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10930
10931         (TARGET_FUNCTION_VALUE): Fix argument types.
10932
10933         (TARGET_RETURN_IN_MSB): Fix argument type.
10934
10935         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10936
10937         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10938
10939         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10940
10941         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10942         agree with return type.
10943
10944         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10945
10946 2010-01-15  Jing Yu  <jingyu@google.com>
10947
10948         PR rtl-optimization/42691
10949         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10950         a pseudo to a constant and are merged, and adjust comments.
10951
10952 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10953
10954         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10955
10956 2010-01-15  Richard Guenther  <rguenther@suse.de>
10957
10958         PR middle-end/42739
10959         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10960         labels of computed or non-local gotos to the destination.
10961         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10962         landing pad label is the first label.
10963
10964 2010-01-15  Richard Guenther  <rguenther@suse.de>
10965
10966         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10967
10968 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10969
10970         PR target/42747
10971         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10972         to allow generation of the xssqrtdp instruction on power7.
10973         (sqrtdf2_fpr): Ditto.
10974
10975 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10976
10977         PR middle-end/42674
10978         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10979         functions with noreturn attribute.
10980
10981         PR c++/42608
10982         * varasm.c (declare_weak): Add weak attribute to decl if it
10983         doesn't have one already.
10984         (assemble_external): Only add decls to weak_decls if they also
10985         have weak attribute.
10986
10987 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10988
10989         * var-tracking.c (var_reg_delete): Don't delete the association
10990         between REGs and values or one-part variables if the register
10991         isn't clobbered.
10992
10993 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10994
10995         PR debug/42657
10996         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10997         because its first operand is a non-localized variable.
10998
10999 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11000
11001         PR tree-optimization/42706
11002         * tree-sra.c (encountered_recursive_call): New variable.
11003         (encountered_unchangable_recursive_call): Likewise.
11004         (sra_initialize): Initialize both new variables.
11005         (callsite_has_enough_arguments_p): New function.
11006         (scan_function): Call decl and flags check only for IPA-SRA, check
11007         whether there is a recursive call and whether it has enough arguments.
11008         (all_callers_have_enough_arguments_p): New function.
11009         (convert_callers): Look for recursive calls only when
11010         encountered_recursive_call is set.
11011         (ipa_early_sra): Bail out either if
11012         !all_callers_have_enough_arguments_p or
11013         encountered_unchangable_recursive_call.
11014
11015 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11016
11017         * sel-sched.c: Add 2010 to copyright years.
11018         * sel-sched-ir.c: Likewise.
11019         * sel-sched-ir.h: Likewise.
11020
11021 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11022
11023         PR tree-optimization/42714
11024         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
11025         constructors specially.
11026
11027 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11028
11029         * config/i386/drivers-i386.c (detect_caches_intel):
11030         Add l2sizekb parameter and fill in.
11031         (host_detect_local_cpu): Add l2sizekb, fill in.
11032         Add Atom small cache heuristic.
11033
11034 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11035
11036         * config/i386/drivers-i386.c (detect_caches_cpuid4):
11037         Add level3 parameter and fill in.
11038         (detect_caches_intel): Handle level3 cache.
11039
11040 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11041
11042         * config/i386/drivers-i386.c (host_detect_local_cpu):
11043         Fix core duo detection.
11044
11045 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11046
11047         * config/i386/drivers-i386.c (host_detect_local_cpu):
11048         Fix Atom detection.
11049
11050 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11051
11052         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
11053         (rs6000_variable_issue_1): this.  Use...
11054         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
11055
11056 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11057
11058         * sel-sched-ir.c (sel_restore_other_notes): Rename to
11059         sel_restore_notes.  Update all callers.  Call reemit_notes
11060         for all insns.
11061
11062 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11063
11064         PR rtl-optimization/42246
11065         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
11066         loops.
11067
11068 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11069
11070         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
11071         all successors is the same as number of successors in current region.
11072
11073 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11074
11075         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
11076         to rename is not separable.  Otherwise check that its LHS is not NULL.
11077
11078 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11079
11080         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
11081
11082 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11083
11084         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
11085         available registers when failed to discover LHS register class.
11086         Fix indentation.  Update comment.
11087
11088 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11089             Alexander Monakov  <amonakov@ispras.ru>
11090
11091         PR rtl-optimization/42389
11092         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
11093         to can_issue_more.
11094         (advance_state_on_fence): Likewise.
11095         (sel_target_adjust_priority): Print debug output only when
11096         sched_verbose >= 4, not 2.
11097         (get_expr_cost): Do not issue all unique insns on the next cycle.
11098         (fill_insns): Initialize can_issue_more from the value saved
11099         with the fence.
11100         * sel-sched-ir.c (flist_add): New parameter issue_more.
11101         Init FENCE_ISSUE_MORE with it.
11102         (merge_fences): Likewise.
11103         (init_fences): Update call to flist_add.
11104         (add_to_fences, add_clean_fence_to_fences)
11105         (add_dirty_fence_to_fences): Likewise.
11106         (move_fence_to_fences): Update call to merge_fences.
11107         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
11108         sched groups.
11109         * sel-sched-ir.h (struct _fence): New field issue_more.
11110         (FENCE_ISSUE_MORE): New accessor macro.
11111
11112 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11113
11114         PR rtl-optimization/42388
11115         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
11116         that have no predecessors nor successors.  Do not call move_bb_info
11117         for empty blocks outside of current region.
11118
11119 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11120
11121         PR rtl-optimization/42294
11122         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
11123         * sel-sched.c (move_exprs_to_boundary): Transitively add all
11124         originators' originators.
11125
11126 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11127
11128         PR rtl-optimization/39453
11129         PR rtl-optimization/42246
11130         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
11131         for pipelining_p.
11132         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
11133
11134 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11135             Alexander Monakov  <amonakov@ispras.ru>
11136
11137         PR middle-end/42245
11138         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
11139         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
11140         argument.  Update all callers.
11141         (tidy_control_flow): ... and here.  Recompute topological order
11142         of basic blocks in region if necessary.
11143         (sel_redirect_edge_and_branch): Change return type.  Return true
11144         if topological order might have been invalidated.
11145         (purge_empty_blocks): Export and move from...
11146         * sel-sched.c (purge_empty_blocks): ... here.
11147         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
11148         (maybe_tidy_empty_bb): Delete prototype.
11149         (purge_empty_blocks): Declare.
11150
11151 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
11152
11153         PR rtl-optimization/42249
11154         * sel-sched.c (try_replace_dest_reg): When chosen register
11155         and original register is the same, do not bail out early, but
11156         still check all original insns for validity of replacing destination
11157         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
11158         in this case.
11159
11160 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11161
11162         PR c/42721
11163         Port from no-undefined-overflow branch:
11164         2009-03-09  Richard Guenther  <rguenther@suse.de>
11165
11166         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
11167
11168 2010-01-14  Richard Guenther  <rguenther@suse.de>
11169
11170         PR lto/42665
11171         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
11172
11173 2010-01-14  Ira Rosen  <irar@il.ibm.com>
11174
11175         PR tree-optimization/42709
11176         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
11177         as scalar type in creation of constant vector operand.
11178
11179 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11180
11181         PR testsuite/42414
11182         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
11183         (check-parallel-%): Match `testsuite' directory component only
11184         at the end.
11185
11186 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
11187
11188         PR translation/39521
11189         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
11190         strings with _().
11191
11192 2010-01-13  Richard Guenther  <rguenther@suse.de>
11193
11194         PR tree-optimization/42730
11195         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
11196         offset zero.
11197
11198 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
11199
11200         PR target/pr42542
11201         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
11202         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
11203         them signed.
11204
11205 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11206
11207         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11208         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11209         ___umulsi3_highpart.
11210
11211         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11212         rather than schedule_insns if the pass is enabled.
11213
11214 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11215
11216         PR tree-optimization/42704
11217         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11218         SSA_NAMEs.
11219
11220 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11221
11222         PR tree-optimization/42703
11223         * tree-sra.c (analyze_access_subtree): Check that we can build a
11224         reference to the original data within the aggregate.
11225
11226 2010-01-13  Richard Guenther  <rguenther@suse.de>
11227
11228         PR tree-optimization/42705
11229         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11230
11231 2010-01-13  Richard Guenther  <rguenther@suse.de>
11232
11233         PR middle-end/42716
11234         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11235
11236 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11237
11238         PR debug/41371
11239         * var-tracking.c (values_to_unmark): New variable.
11240         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11241         values_to_unmark vector.  Moved body to...
11242         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11243         instead queue it into values_to_unmark vector.
11244         (vt_find_locations): Free values_to_unmark vector.
11245
11246 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11247
11248         * config/s390/s390.c (override_options): Set
11249         default of max-pending-list-length to 256
11250
11251 2010-01-13  Richard Guenther  <rguenther@suse.de>
11252
11253         PR lto/42678
11254         * tree-pass.h (PROP_gimple_lcx): New.
11255         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11256         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11257         before the final cleanup_eh.
11258         (dump_properties): Dump PROP_gimple_lcx.
11259         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11260         (tree_lower_complex_O0): Remove.
11261         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11262         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11263         tree_lower_complex, schedule TODO_update_ssa.
11264         * lto-streamer-out.c (output_function): Stream the functions
11265         properties.
11266         * lto-streamer-in.c (input_function): Likewise.
11267         (lto_read_body): Do not override them here.
11268
11269 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11270
11271         PR c/42708
11272         * c-typeck.c (build_c_cast): Fold value cast to union type before
11273         wrapping it in a CONSTRUCTOR.
11274
11275 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11276
11277         PR rtl-optimization/42699
11278         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11279         involved.
11280
11281 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11282
11283         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11284         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11285         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11286         SUBTARGET_WARN_UNUSED_SPEC): ... here
11287         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11288
11289 2010-01-12  Julian Brown  <julian@codesourcery.com>
11290
11291         * config/arm/neon-schedgen.ml (Utils): Don't try to
11292         open missing module.
11293         (find_with_result): New.
11294
11295 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11296
11297         PR debug/42662
11298         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11299         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11300
11301         PR tree-optimization/42645
11302         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11303         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11304         decl_map, set processing_debug_stmt to -1 and return name without
11305         any remapping.
11306
11307 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11308
11309         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11310         binutils version, and reword target configuration description.
11311
11312 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11313
11314         * config/avr/avr.h (LINKER_NAME): Remove.
11315
11316 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11317
11318         PR target/42416
11319         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11320         that support VSX, warn for -mno-altivec if vsx is not disabled,
11321         and disable vsx.
11322
11323 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11324             Shujing Zhao  <pearly.zhao@oracle.com>
11325
11326         PR translation/42469
11327         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11328         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11329         character between option name and help text.
11330         * c.opt (imultilib): Likewise.
11331
11332 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11333
11334         * lto-streamer-out.c (output_unreferenced_globals): Output static
11335         variables.
11336
11337 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11338
11339         PR rtl-optimization/42621
11340         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11341         optimizing for size.
11342         (duplicate_computed_gotos): Remove now-redundant check.
11343
11344 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11345
11346         PR target/37454
11347         * configure.ac: Save and restore LDFLAGS and LIBS
11348         * configure: Regenerate.
11349
11350 2010-01-10  Richard Guenther  <rguenther@suse.de>
11351
11352         PR middle-end/42667
11353         * builtins.c (fold_builtin_strlen): Add type argument and
11354         convert the resulting length to it.
11355         (fold_builtin_1): Adjust.
11356
11357 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11358
11359         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11360         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11361         1 insn.
11362         (num_insns_constant_wide): Adjust for that change.
11363
11364 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11365
11366         PR debug/42631
11367         * web.c (union_defs): Add used argument, to combine uses of
11368         uninitialized regs.
11369         (entry_register): Adjust type and tests of used argument.
11370         (web_main): Widen used for new use.  Pass it to union_defs.
11371         * df.h (union_defs): Adjust prototype.
11372
11373 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11374
11375         PR debug/42630
11376         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11377         uses in new incoming argument.  Free body.
11378         (reset_debug_uses_in_loop): New.
11379         (analyze_insn_to_expand_var): Call the latter if the former found
11380         anything.  Fix whitespace.  Reject invalid dest overlaps before
11381         going through all insns in the loop.
11382
11383 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11384
11385         PR debug/42629
11386         * haifa-sched.c (dying_use_p): Debug insns don't count.
11387
11388 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11389
11390         PR middle-end/42363
11391         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11392         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11393         (verify_gimple_call): Reject LHS in noreturn calls.
11394
11395 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11396
11397         PR debug/42604
11398         PR debug/42395
11399         * tree-vect-loop-manip.c (adjust_info): New type.
11400         (adjust_vec): New pointer to vector.
11401         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11402         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11403         (slpeel_update_phis_for_duplicate_loop): Use them.
11404         (slpeel_update_phi_nodes_for_guard1): Likewise.
11405         (slpeel_update_phi_nodes_for_guard2): Likewise.
11406         (slpeel_tree_peel_loop_to_edge): Likewise.
11407         (vect_update_ivs_after_vectorizer): Likewise.
11408
11409 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11410
11411         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11412         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11413
11414 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11415
11416         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11417         bogus uninitialized warning.
11418
11419 2010-01-09  Richard Guenther  <rguenther@suse.de>
11420
11421         PR middle-end/42512
11422         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11423         the evolution is compatible with the initial condition.
11424
11425 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11426
11427         * gcc.c (process_command): Update copyright notice dates.
11428         * gcov.c (print_version): Likewise.
11429         * gcov-dump.c (print_version): Likewise.
11430         * mips-tfile.c (main): Likewise.
11431         * mips-tdump.c (main): Likewise.
11432
11433 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11434
11435         PR target/41885
11436         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11437         (rotlhi3): Delete.
11438         (rotlhi3_8): Delete.
11439         (rotlsi3): Delete.
11440         (rotlsi3_8): Delete.
11441         (rotlsi3_16): Delete.
11442         (rotlsi3_24): Delete.
11443         (rotl<mode>3): New.
11444         (*rotw<mode>3): New.
11445         (*rotb<mode>3): New.
11446         * config/avr/avr.c (avr_rotate_bytes): New function.
11447         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11448
11449 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11450
11451         PR target/37454
11452         * configure.ac: Modify -rdynamic check.
11453         * configure: Regenerate.
11454
11455 2010-01-08  DJ Delorie  <dj@redhat.com>
11456
11457         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11458         register popping order.
11459
11460 2010-01-08  Richard Guenther  <rguenther@suse.de>
11461
11462         PR lto/42528
11463         * c.opt (fsigned-char): Also let LTO handle this option.
11464         (funsigned-char): Likewise.
11465
11466 2010-01-07  Richard Guenther  <rguenther@suse.de>
11467
11468         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11469         (gimple_op): Likewise.
11470         (gimple_op_ptr): Likewise.
11471         (gimple_assign_set_lhs): Remove gcc_assert.
11472         (gimple_assign_set_rhs1): Likewise.
11473         (gimple_assign_set_rhs2): Likewise.
11474         (gimple_call_set_lhs): Likewise.
11475         (gimple_call_set_fn): Likewise.
11476         (gimple_call_set_fndecl): Likewise.
11477         (gimple_call_fndecl): Likewise.
11478         (gimple_call_return_type): Likewise.
11479         (gimple_call_set_chain): Likewise.
11480         (gimple_call_num_args): Likewise.
11481         (gimple_call_set_arg): Likewise.
11482         (gimple_cond_set_code): Likewise.
11483         (gimple_cond_set_lhs): Likewise.
11484         (gimple_cond_set_rhs): Likewise.
11485         (gimple_cond_set_true_label): Likewise.
11486         (gimple_cond_set_false_label): Likewise.
11487         (gimple_label_set_label): Likewise.
11488         (gimple_goto_set_dest): Likewise.
11489         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11490         (gimple_debug_bind_get_value): Likewise.
11491         (gimple_debug_bind_get_value_ptr): Likewise.
11492         (gimple_debug_bind_set_var): Likewise.
11493         (gimple_debug_bind_set_value): Likewise.
11494         (gimple_debug_bind_reset_value): Likewise.
11495         (gimple_debug_bind_has_value_p): Likewise.
11496         (gimple_return_retval_ptr): Remove gcc_assert.
11497         (gimple_return_retval): Likewise.
11498         (gimple_return_set_retval): Likewise.
11499         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11500         (safe_referenced_var_iterator): Remove.
11501         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11502         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11503         (fill_referenced_var_vec): Remove.
11504         (first_readonly_imm_use): Remove redundant gcc_assert.
11505         (phi_arg_index_from_use): Combine gcc_asserts.
11506         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11507         (first_imm_use_stmt): Remove redundant gcc_assert.
11508         * tree-cfg.c (verify_gimple_call): Verify function and chain
11509         operands.  Verify arguments.
11510         (verify_types_in_gimple_stmt): Verify condition code and labels.
11511
11512 2010-01-07  Richard Guenther  <rguenther@suse.de>
11513
11514         PR tree-optimization/42641
11515         * sese.c (rename_map_elt_info): Use the SSA name version, do
11516         not hash pointers.
11517
11518 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11519
11520         PR tree-optimization/42625
11521         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11522         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11523
11524 2010-01-07  Duncan Sands  <baldrick@free.fr>
11525
11526         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11527
11528 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11529
11530         PR target/42511
11531         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11532         note itself is not function_invariant_p.
11533
11534 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11535
11536         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11537         Do not add the DF_NOTE problem.
11538         * store-motion.c (execute_rtl_store_motion): Likewise.
11539
11540 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11541
11542         PR tree-optimization/42157
11543         * tree-sra.c (compare_access_positions): Stabilize sort if both
11544         accesses have integer types, return zero immediately if they are the
11545         same.
11546
11547 2010-01-06  Richard Henderson  <rth@redhat.com>
11548
11549         PR middle-end/41883
11550         * haifa-sched.c (add_to_note_list): Merge into ...
11551         (concat_note_lists): ... here, and ...
11552         (unlink_other_notes, rm_other_notes): Merge into...
11553         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11554         NOTE_INSN_EPILOGUE_BEG.
11555
11556 2010-01-06  Richard Guenther  <rguenther@suse.de>
11557
11558         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11559         not inline regular functions into always-inline functions.
11560
11561 2010-01-06  Nick Clifton  <nickc@redhat.com>
11562
11563         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11564         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11565         used together.
11566         (OVERRIDE_OPTIONS): Delete.
11567         (OPTIMIZATION_OPTIONS): Define.
11568         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11569         * config/rx/rx.c (rx_handle_option): Issue an error message if
11570         -mcpu=rx200 and -fpu are used together.
11571         (rx_set_optimization_options): New function.  Issue an error
11572         message if an optimization attribute attempts to reset the FPU/
11573         math optimization pairing.
11574         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11575         * config/rx/rx.opt: Set the default to 32-bit doubles.
11576         * config/rx/t-rx: Add multilibs for -nofpu option.
11577         * doc/invoke.texi: Update documentation of RX options.
11578
11579 2010-01-06  Richard Guenther  <rguenther@suse.de>
11580
11581         * tree-ssa-pre.c (name_to_id): New global.
11582         (alloc_expression_id): Simplify SSA name handling.
11583         (lookup_expression_id): Likewise.
11584         (init_pre): Zero name_to_id.
11585         (fini_pre): Free it.
11586
11587 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11588
11589         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11590
11591 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11592
11593         PR target/42542
11594         * config/i386/sse.md (smaxv2di3): New.
11595         (umaxv2di3): Likewise.
11596         (sminv2di3): Likewise.
11597         (uminv2di3): Likewise.
11598
11599 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11600
11601         PR target/42564
11602         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11603         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11604         (legitimize_tls_address): Likewise.
11605         (sparc_tls_referenced_p): Likewise.
11606         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11607         and adjust calls to legitimize_pic_address.
11608         (legitimate_constant_p) Use sparc_tls_referenced_p.
11609         (legitimate_pic_operand_p): Likewise.
11610         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11611         (sparc_tls_symbol_ref_1): Delete.
11612         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11613         (legitimize_tls_address): Make static, handle CONST patterns.
11614         (legitimize_pic_address): Make static, remove unused parameter and
11615         adjust recursive calls.
11616         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11617         and adjust call to legitimize_pic_address.
11618         (sparc_output_mi_thunk): Likewise.
11619
11620 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11621             H.J. Lu  <hongjiu.lu@intel.com>
11622
11623         PR target/42542
11624         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11625         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11626         operands to make them signed.
11627
11628         Revert:
11629         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11630
11631         PR target/42542
11632         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11633         GTU to GT for V4SI and V2DI.
11634
11635         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11636         (umin<mode>3): Removed.
11637         (uminv8hi3): New.
11638         (uminv4si3): Likewise.
11639
11640 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11641
11642         PR tree-optimization/42462
11643         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11644         current_function_decl to helper functions and macros.
11645
11646 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11647
11648         PR bootstrap/41771
11649         * flags.h: Don't include real.h.
11650         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11651         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11652         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11653         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11654         * dominance.c: Update copyright.
11655         * gimple.c (walk_gimple_op): Remove inline.
11656         * tree-ssa-reassoc.c: Include real.h.
11657         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11658         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11659
11660 2010-01-05  Nick Clifton  <nickc@redhat.com>
11661
11662         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11663         register to push into the stack frame when the accumulator has to
11664         be saved during interrupts.
11665
11666 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11667
11668         * doc/invoke.texi: Remove the documentation about option
11669         -Wunreachable-code.
11670         * common.opt (Wunreachable-code):  Preserved for backward
11671         compatibility.
11672         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11673         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11674         the backward compatibility flag section.
11675
11676 2010-01-05  Richard Guenther  <rguenther@suse.de>
11677
11678         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11679
11680 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11681
11682         PR other/42611
11683         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11684
11685         PR tree-optimization/42508
11686         * tree-sra.c (convert_callers): Check for recursive call
11687         by comparing cgraph nodes instead of decls.
11688         (modify_function): Call ipa_modify_formal_parameters also
11689         on all same_body aliases.
11690
11691         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11692         cgraph nodes when checking for same_body aliases.
11693
11694 2010-01-05  Richard Guenther  <rguenther@suse.de>
11695
11696         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11697         allocation and lookup.
11698         (get_or_alloc_expr_for_constant): Likewise.
11699         (phi_translate): Sink allocation.
11700
11701 2010-01-04  Richard Guenther  <rguenther@suse.de>
11702
11703         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11704         a new entry only if needed.
11705         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11706         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11707         hashtable lookup.
11708         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11709         the result array.
11710         (phi_translate): Handle CONSTANTs early.
11711
11712 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11713
11714         PR tree-optimization/42398
11715         * tree-sra.c (struct access): Removed flag grp_different_types.
11716         (dump_access): Do not dump the removed flag.
11717         (sort_and_splice_var_accesses): Do not set the removed flag.
11718         (sra_modify_expr): Check for type compatibility directly.
11719
11720 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11721
11722         PR tree-optimization/42366
11723         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11724         edges with variable number of parameters.
11725         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11726         flag instead of asserting it.
11727         (ipa_read_node_info): Read uses_analysis_done flag.
11728
11729 2010-01-04  Richard Guenther  <rguenther@suse.de>
11730
11731         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11732         iterative_hash_* as intended.
11733         (vn_reference_compute_hash): Likewise.  Simplify hashing
11734         SSA names.
11735         (vn_reference_lookup_2): Likewise.
11736         (vn_nary_op_compute_hash): Likewise.
11737         (vn_phi_compute_hash): Likewise.
11738         (expressions_equal_p): Remove strange code.
11739         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11740         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11741         (bitmap_insert_into_set_1): Take value-id as parameter.
11742         (add_to_value): Pass it.
11743         (bitmap_insert_into_set): Likewise.
11744         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11745
11746 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11747
11748         PR driver/42442
11749         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11750         (do_self_spec): For switches with SWITCH_IGNORE set set also
11751         SWITCH_IGNORE_PERMANENTLY.
11752         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11753         of SWITCH_IGNORE.
11754
11755 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11756
11757         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11758         tree of an unreferenced global var.
11759
11760 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11761
11762         PR target/42542
11763         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11764         GTU to GT for V4SI and V2DI.
11765
11766         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11767         (umin<mode>3): Removed.
11768         (uminv8hi3): New.
11769         (uminv4si3): Likewise.
11770
11771 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11772
11773         PR lto/42581
11774         * collect2.c (main): Turn on trace in collect2 if -v is passed
11775         to gcc with LTO.
11776
11777 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11778
11779         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11780         description of expression operand.
11781
11782 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11783
11784         * configure.ac: Add install-html to target_list for Make-hooks.
11785         * configure: Regenerate.
11786         * fortran/Make-lang.in (F95_HTMLFILES): New.
11787         (fortran.html): Use it.
11788         (fortran.install-html): New.
11789         * Makefile.in (install-html): Add lang.install-html.
11790         * java/Make-lang.in (JAVA_HTMLFILES): New.
11791         (java.html): Use it.
11792         (java.install-html): New.
11793         * objc/Make-lang.in (objc.install-html): New.
11794         * objcp/Make-lang.in (obj-c++.install-html): New.
11795         * cp/Make-lang.in (c++.install-html): New.
11796         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11797         * lto/Make-lang.in (lto.install-html): New.
11798
11799 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11800
11801         PR lto/42520
11802         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11803
11804 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11805
11806         PR rtl-optimization/41862
11807         * store-motion.c (store_killed_in_insn, compute_store_table,
11808         remove_reachable_equiv_notes, replace_store_insn,
11809         build_store_vectors): Ignore all DEBUG_INSNs.
11810
11811 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11812
11813         PR lto/41564
11814         * common.opt: Add dumpdir.
11815
11816         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11817         isn't specified.
11818         (option_map): Add --dumpdir.
11819
11820         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11821
11822         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11823
11824         * opts.c (decode_options): Try dump_dir_name first if
11825         dump_base_name isn't an absolute path.
11826         (common_handle_option): Handle OPT_dumpdir.
11827
11828         * toplev.c (dump_dir_name): New.
11829         (print_switch_values): Also ignore -dumpdir.
11830
11831         * toplev.h (dump_dir_name): New.
11832
11833 2010-01-03  Richard Guenther  <rguenther@suse.de>
11834
11835         PR tree-optimization/42589
11836         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11837         double-word expansion of bswap32.
11838
11839 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11840
11841         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11842         with BLOCK_FOR_INSN.
11843         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11844         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11845         noce_process_if_block): Likewise.
11846         * gcse.c (compute_local_properties, insert_expr_in_table,
11847         insert_set_in_table, canon_list_insert, find_avail_set,
11848         pre_insert_copy_insn): Likewise.
11849
11850         * basic-block.h (BLOCK_NUM): Move from here...
11851         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11852
11853 2010-01-03  Richard Guenther  <rguenther@suse.de>
11854
11855         PR tree-optimization/42438
11856         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11857         contains_may_not_return_call flag.
11858         (BB_MAY_NOTRETURN): New.
11859         (valid_in_sets): Trapping nary operations are not valid
11860         in blocks that may not return.
11861         (insert_into_preds_of_block): Remove check for trapping expressions.
11862         (compute_avail): Compute also BB_MAY_NOTRETURN.
11863
11864 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11865
11866         * doc/invoke.texi: Add 2010 to copyright years.
11867
11868 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11869
11870         * config/sparc/sparc.c: Fix formatting nits.
11871
11872 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11873             Alexander Monakov  <amonakov@ispras.ru>
11874
11875         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11876
11877 2010-01-02  Richard Guenther  <rguenther@suse.de>
11878
11879         PR middle-end/42577
11880         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11881         (simplify_switch_using_ranges): Mark to be removed edges
11882         as non-executable.
11883
11884 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11885
11886         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11887
11888         * collect2.c (scan_libraries): Add missing argument in call to
11889         scan_prog_file.
11890
11891 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11892
11893         PR target/42448
11894         * config/alpha/predicates.md (aligned_memory_operand): Return false
11895         for CQImode.
11896         (unaligned_memory_operand): Return true for CQImode.
11897         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11898         doesn not cross aligned SImode word boundary.
11899
11900 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11901
11902         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11903         Remove.
11904         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11905         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11906
11907 2010-01-02  Richard Guenther  <rguenther@suse.de>
11908
11909         PR lto/41597
11910         * toplev.c (compile_file): Emit LTO marker properly.  Change
11911         it to __gnu_lto_v1.
11912         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11913
11914 2010-01-01  Richard Guenther  <rguenther@suse.de>
11915
11916         PR debug/42455
11917         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11918
11919 2010-01-01  Richard Guenther  <rguenther@suse.de>
11920
11921         PR c/42570
11922         * c-decl.c (grokdeclarator): For zero-size arrays force
11923         structural equality checks as layout_type does.
11924
11925 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11926
11927         * builtins.c: Update copyright to 2010.
11928
11929 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11930
11931         PR lto/42531
11932         * lto-streamer-out.c (produce_asm): Revert the last change.
11933         (copy_function): Likewise.
11934
11935         * lto-streamer.c (lto_get_section_name): Skip any leading
11936         asterisk in name.
11937
11938 2010-01-01  Richard Guenther  <rguenther@suse.de>
11939
11940         PR middle-end/42559
11941         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11942         for LABEL_DECLs.
11943
11944 \f
11945 Copyright (C) 2010 Free Software Foundation, Inc.
11946
11947 Copying and distribution of this file, with or without modification,
11948 are permitted in any medium without royalty provided the copyright
11949 notice and this notice are preserved.