Add a missing `\'.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR bootstrap/44315
4         * Makefile.in (build/gencondmd.o): Add a missing `\'.
5
6 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7
8         PR target/44261
9         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
10         (negdf2): Adjust expander pattern and use negdf2_slow.
11         (negsf2): Likewise.
12
13 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
14
15         * basic-block.h (struct control_flow_graph): Move last_label_uid field up.
16         * df.h (struct df_base_ref): Move regno field up.
17         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
18         * expr.h (struct separate_ops): Move location field up.
19         * optabs.h (struct optab_d): Move libcall_basename field down.
20         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
21         * config/i386/i386.h (struct machine_function): Convert call_abi field
22         into a bitfield.  Move cfa field to the end of the structure.
23
24 2010-05-29  Jan Hubicka  <jh@suse.cz>
25
26         * varpool.c (varpool_get_node): Fix lookup.
27
28 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
29
30         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
31         RTL specific prototypes with #ifdef RTX_CODE.
32         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
33         * config/spu/t-spu-elf: Fix dependencies.
34
35         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
36
37 2010-05-29  Mike Stump  <mikestump@comcast.net>
38
39         PR bootstrap/44315
40         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
41         TM_H when building to avoid dependency loops.
42
43 2010-05-29  Jan Hubicka  <jh@suse.cz>
44
45         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
46         refs and body; not the whole node for masters of materialized
47         clones.
48
49 2010-05-29  Mike Stump  <mikestump@comcast.net>
50
51         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
52
53 2010-05-29  Jan Hubicka  <jh@suse.cz>
54
55         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
56         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
57         use of clone_function_name.
58         * cgraph.h (cgraph_create_virtual_clone, 
59         cgraph_function_versioning): update prototypes.
60         (clone_function_name): Declare.
61         * ipa-cp.c (ipcp_insert_stage): Update call of
62         cgraph_create_virtual_clone.
63         * omp-low.c (create_omp_child_function_name): Use
64         cgraph_create_virtual_clone.
65         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
66         (cgraph_function_versioning): Take SUFFIX argument; produce new name
67         and make decl local.
68
69 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
70
71         * vec.h: Include statistics.h
72         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
73         with VEC_H.
74
75 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
76
77         * c-lex.c: Do not include c-tree.h.
78         * c-pretty-print.c: Likewise.
79         * c-opts.c: Likewise.
80         * c-gimplify.c: Likewise.
81         * c-common.c: Likewise.
82         * c-dump.c: Likewise.  Include c-common.h.
83
84 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
85
86         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
87         before including diagnostic-core.h.
88         (c_cpp_error): New prototype moved from c-tree.h.
89         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
90         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
91         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
92         (c_cpp_error): Prototype moved to c-common.h.
93         * Makefile.in: Update dependency for C_COMMON_H.
94
95 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
96
97         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
98         * c-common.c (c_register_addr_space): Remove here.
99         * c-decl.c (c_register_addr_space): Re-add here.
100
101 2010-05-28  Mike Stump  <mikestump@comcast.net>
102
103         * config/darwin-c.c: Remove c-tree.h include.
104
105 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
106
107         * gcc.c: Include diagnostic.h.
108         (error_count): Remove.  All users changed to use errorcount.
109         (programname): Remove.  All users changed to use progname.
110         (fancy_abort, internal_error, fatal_error, error, warning, inform,
111         fnotice): Remove.
112         (execute): Don't include "Internal error" and bug reporting
113         information in argument of internal_error call.
114         (process_command): Don't increment error_count after calling
115         perror_with_name.
116         (input_filename): Rename to gcc_input_filename.  All users
117         changed.
118         (main): Call diagnostic_initialize.  Register delete_temp_files
119         with atexit.  Use seen_error to test for errors.
120         * gcc.h: Include diagnostic-core.h.
121         (fatal_error, error, warning): Remove.
122         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
123         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
124         (gcc.o): Update dependencies.
125
126 2010-05-28  Jeff Law  <law@redhat.com>
127
128         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
129         functions.
130         * ira.h (ira_bad_reload_regno): Declare
131         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
132
133         * ira-color.c (update_curr_costs): Free updated hard reg costs.
134         (ira_reassign_conflict_allocnos): Remove bogus asserts.
135         (allocno_reload_assign): Likewise.
136
137 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
138
139         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
140         build1_stat.
141
142 2010-05-28  Richard Guenther  <rguenther@suse.de>
143
144         PR lto/44312
145         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
146         Stream fixed-point constants mode.
147         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
148         and TYPE_PRECISION.
149         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
150         Stream fixed-point constants mode.
151         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
152         and TYPE_PRECISION.
153
154 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
155
156         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
157         only place it was called from.
158         (number_of_latch_executions): Do not return chrec_dont_know when the
159         may_be_zero is a runtime condition: instead, return a COND_EXPR
160         including the may_be_zero condition.
161         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
162         of nb_iterations.
163         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
164         COND_EXPRs.
165
166 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
167
168         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
169         generate COND_EXPRs for degenerate_phi_result.
170
171 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
172
173         PR middle-end/44293
174         * tree-if-conv.c (if_convertible_loop_p): Check the
175         if-convertibility of phi nodes in non predicated BBs.
176
177 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
178
179         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
180
181 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
182
183         PR driver/15303
184         * gcc.c (inform, warning, inform): New functions.
185         (fatal_ice): Rename to internal_error; change cmsgid parameter to
186         gmsgid.  All callers changed.
187         (notice): Rename to fnotice; add parameter fp.  All callers
188         changed.
189         (fatal_error): Rename to fatal_signal.  All users changed.
190         (fatal): Rename to fatal_error; change cmsgid parameter to
191         gmsgid.  All callers changed.
192         (process_command): Use warning instead of error for warnings.
193         (end_going_arg): Don't use _() around argument of error.
194         (do_spec_1): Use inform for message from %n specs.  Use warning
195         instead of error for warnings.
196         (main): Use inform for comparison messages.  Use warning for
197         message about unused linker input.
198         (error): Increment error_count.  Print "error: ".
199         * gcc.h (fatal): Change to fatal_error.
200         (warning): Declare.
201         * config/darwin-driver.c (darwin_default_min_version): Use warning
202         instead of fprintf for warnings.
203         * cppspec.c (lang_specific_driver): Use fatal_error instead of
204         fatal.
205
206 2010-05-28  Julian Brown  <julian@codesourcery.com>
207
208         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
209         (*thumb2_addsi3_compare0_scratch): New.
210         * config/arm/constraints.md (Pv): New.
211         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
212         for ARM mode only.
213         (*addsi3_compare0_scratch): Likewise.
214
215 2010-05-28  Jan Hubicka  <jh@suse.cz>
216
217         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
218         check.
219         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
220         only on local statics.
221
222 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
223
224         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
225
226 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
227
228         PR bootstrap/44314
229         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
230         (OPTION_GLIBC): Define.
231
232 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
233
234         PR debug/41048
235         * dwarf2out.c (double_int_type_size_in_bits): New function.
236         (round_up_to_align): Change first argument and return value to
237         double_int.
238         (field_byte_offset): Work internally on double_ints.
239
240         PR target/43636
241         * builtins.c (expand_movstr): Use a temporary pseudo instead
242         of target even when target is not NULL and not const0_rtx, but
243         fails movstr predicate.
244         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
245
246 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
247
248         * final.c (rest_of_clean_state): Use %m in errors instead of
249         strerror (errno).
250         * gengtype.c (read_input_list, close_output_files): Use xstrerror
251         instead of strerror.
252         * toplev.c (process_options): Use %m in errors instead of strerror
253         (errno).
254         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
255         (errno).
256
257 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
258
259         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
260         (ix86_canonical_va_list_type): Make static.  Add declaration.
261         (ix86_enum_va_list): Make static.  Reindent.
262         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
263         (ix86_canonical_va_list_type): Ditto.
264         (ix86_enum_va_list): Ditto.
265
266 2010-05-28  Richard Guenther  <rguenther@suse.de>
267
268         * lto-wrapper.c (run_gcc): With -save-temps generate a
269         user-visible ltrans filename.  Fixup ltrans unit numbering.
270
271 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
272
273         * c-common.c (c_common_nodes_and_builtins): Replace use
274         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
275         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
276         to ix86_enum_va_list.
277         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
278         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
279         (TARGET_ENUM_VA_LIST_P): Add hook description.
280         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
281         * target.h (gcc_target): Add enum_va_list hook.
282
283         PR bootstrap/44299
284         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
285         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
286         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
287
288 2010-05-28  Alan Modra  <amodra@gmail.com>
289
290         PR target/44266
291         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
292         emit_library_call machinery to set up __tls_get_addr calls.
293
294 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
295
296         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
297
298 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
299
300         Revert fix for PR c++/44188
301         * c-common.c (is_typedef_decl): Revert the moving of  this
302         definition ...
303         * tree.c (is_typedef_decl): ... here.
304         (typdef_variant_p): Revert the moving of this  definition
305         here from gcc/cp/tree.c.
306         * c-common.h (is_typedef_decl): Revert the moving of this
307         declaration ...
308         * tree.h (is_typedef_decl): ... here.
309         (typedef_variant_p): Revert the moving of this  declaration here
310         from gcc/cp/cp-tree.h
311         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
312         (gen_tagged_type_die): Revert the splitting out of ...
313         (gen_type_die_with_usage): ... this function. Revert the anonymous
314         tagged type handling.
315         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
316         typedefs naming anonymous tagged types.
317
318 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
319
320         * config/rs6000/rs6000-modes.def (PSImode): Delete.
321
322 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
323
324         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
325         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
326         throughout.
327         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
328         "xer" to "ca".
329         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
330         XER_REGS to CA_REGS throughout.
331         * config/rs6000/rs6000.h: Same.
332         (ADDITIONAL_REGISTER_NAMES): Add "xer".
333         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
334         that mode_iterator "P" is the size for arithmetic carries as well.
335         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
336
337 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
338
339         PR bootstrap/44255
340         * combine.c (struct rtx_subst_pair): Define unconditionally.
341         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
342         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
343         Call make_compound_operation on pair->to.
344         (propagate_for_debug): Don't call make_compound_operation here.
345         Always use simplify_replace_fn_rtx.
346
347 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
348
349         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
350         * config/xtensa/xtensa.c (override_options): Check
351           TARGET_FORCE_NO_PIC and set flag_pic.
352         * config/xtensa/xtensa.opt: Document -mforce-no-pic
353
354 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
355
356         PR bootstrap/44299
357         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
358         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
359
360 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
361
362         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
363         toplev.h.
364         * diagnostic.c: Don't include toplev.h.
365         (progname): Define.  Moved from toplev.c.
366         (seen_error): New function.
367         * diagnostic.h: Include diagnostic-core.h.
368         (diagnostic_t, emit_diagnostic): Don't declare here.
369         * toplev.c (progname): Move to toplev.c.
370         (emit_debug_global_declarations, compile_file, finalize,
371         do_compile, toplev_main): Use seen_error.
372         * toplev.h: Include diagnostic-core.h.
373         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
374         internal_error, warning, warning_at, error, error_n, error_at,
375         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
376         verbatim, fnotice, progname): Move to diagnostic-core.h.
377         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
378         (expand_builtin_expect): Use seen_error.
379         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
380         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
381         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
382         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
383         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
384         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
385         errorcount for errors.
386         * c-opts.c (c_common_finish): Use seen_error.
387         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
388         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
389         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
390         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
391         (get_coverage_counts): Use seen_error.
392         * dwarf2out.c (dwarf2out_finish): Use seen_error.
393         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
394         gimplify_body): Use seen_error.
395         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
396         * ipa-pure-const.c (gate_pure_const): Use seen_error.
397         * ipa-reference.c (gate_reference): Use seen_error.
398         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
399         * lambda-code.c: Include diagnostic-core.h instead of
400         diagnostic.h.
401         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
402         * lto-compress.c: Include diagnostic-core.h instead of
403         diagnostic.h.
404         * lto-section-in.c: Include diagnostic-core.h instead of
405         diagnostic.h.
406         * lto-streamer-out.c: Include diagnostic-core.h instead of
407         diagnostic.h.
408         * lto-streamer.c: Include diagnostic-core.h instead of
409         diagnostic.h.
410         (gate_lto_out): Use seen_error.
411         * matrix-reorg.c: Include diagnostic-core.h instead of
412         diagnostic.h.
413         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
414         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
415         (gate_expand_omp, lower_omp_1): Use seen_error.
416         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
417         (rest_of_decl_compilation, rest_of_type_compilation,
418         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
419         * tree-cfg.c (label_to_block_fn): Use seen_error.
420         * tree-inline.c (optimize_inline_calls): Use seen_error.
421         * tree-mudflap.c (mudflap_finish_file): Use
422         seen_error.
423         * tree-optimize.c (gate_all_optimizations,
424         gate_all_early_local_passes, gate_all_early_optimizations): Use
425         seen_error.
426         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
427         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
428         (varpool_remove_unreferenced_decls,
429         varpool_assemble_pending_decls): Use seen_error.
430         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
431         (TOPLEV_H, DIAGNOSTIC_H): Update.
432         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
433         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
434         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
435         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
436         coverage.o, lambda-code.o): Update dependencies.
437
438 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
439
440         PR c++/44188
441         * c-common.c (is_typedef_decl): Move this definition ...
442         * tree.c (is_typedef_decl): ... here.
443         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
444         * c-common.h (is_typedef_decl): Move this declaration ...
445         * tree.h (is_typedef_decl): ... here.
446         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
447         * dwarf2out.c (is_naming_typedef_decl): New function.
448         (gen_tagged_type_die): Split out of ...
449         (gen_type_die_with_usage): ... this function. When an anonymous
450         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
451         is emitted for the typedef.
452         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
453         anonymous tagged types.
454
455 2010-05-27  Jason Merrill  <jason@redhat.com>
456
457         * print-tree.c (debug_vec_tree): New fn.
458         (print_vec_tree): New fn.
459         * tree.h: Declare them.
460         * gdbinit.in (pvt): New command.
461
462         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
463
464         * gdbinit.in (pdd): New command.
465
466 2010-05-27  Jan Hubicka  <jh@suse.cz>
467
468         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
469         (update_caller_keys): Return early if there are no callers;
470         only update fibheap when decresing the key.
471         (update_callee_keys): Avoid recursion.
472         (decide_inlining_of_small_functions): When badness does not match;
473         re-insert into fibheap.
474
475 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
476
477         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
478         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
479         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
480         (ALL_HOST_OBJS): Now a union of the above two.
481         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
482         all files in ALL_HOST_FRONTEND_OBJS.
483         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
484
485         * c-common.c: Pretend to be a backend file by undefining
486         IN_GCC_FRONTEND (still need rtl.h here).
487
488 2010-05-27  Jan Hubicka  <jh@suse.cz>
489
490         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
491         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
492
493 2010-05-27  Jan Hubicka  <jh@suse.cz>
494
495         * sched-ebb.c: Rename struct deps to struct deps_desc.
496         * ddg.c: Likewise.
497         * sel-sched-ir.c: Likewise.
498         * sched-deps.c: Likewise.
499         * sched-int.h: Likewise.
500         * sched-rgn.c: Likewise.
501
502 2010-05-27  Jon Beniston <jon@beniston.com>
503
504         PR 43726
505         * config/lm32/lm32.h: Remove definition of 
506         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
507
508 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
509
510         PR lto/44230
511         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
512
513 2010-05-27  Richard Guenther  <rguenther@suse.de>
514
515         PR tree-optimization/44284
516         * tree-vect-stmts.c (vectorizable_assignment): Handle
517         sign-changing conversions as simple copy.
518
519 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
520
521         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
522         Bionic C library.
523         (__gthread_active_p): Check for pthread_create if compiling against
524         Bionic C library.
525
526 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
527
528         Support compilation for Android platform.  Reimplement -mandroid.
529
530         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
531         (*android*): Set ANDROID_DEFAULT.
532         (arm*-*-linux*): Include linux-android.h.
533         (arm*-*-eabi*): Don't include previous -mandroid implementation.
534         * config/arm/eabi.h: Remove, move Android-specific parts ...
535         * config/linux-android.h: ... here.  New file.
536         * config/arm/eabi.opt: Rename to ...
537         * config/linux-android.opt: ... this.
538         (mandroid): Allow -mno-android option.  Initialize based on
539         ANDROID_DEFAULT.
540         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
541         Move logic to corresponding LINUX_TARGET_* macros.
542         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
543         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
544         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
545         Android definitions.
546         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
547         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
548         Document.
549
550 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
551
552         Add support for Bionic C library
553
554         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
555         macro.
556         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
557         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
558
559         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
560         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
561         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
562         to support multiple C libraries.  Handle Bionic.
563         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
564         (BIONIC_DYNAMIC_LINKER64): Define.
565         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
566         Update.
567         (TARGET_HAS_SINCOS): Enable for Bionic.
568
569         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
570         the last option specified on command line take effect.
571         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
572         (mbionic): New.
573         (mglibc, muclibc): Update.
574
575         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
576         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
577         DEFAULT_LIBC.
578
579         * doc/invoke.texi (-mglibc, -muclibc): Update.
580         (-mbionic): Document.
581
582 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
583
584         * c-common.h (c_register_addr_space): Add prototype.
585         (ADDR_SPACE_KEYWORD): Remove.
586         * c-common.c (c_register_addr_space): New function.
587         (c_addr_space_name): Reimplement.
588         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
589
590         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
591         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
592
593         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
594         Remove TARGET_ADDR_SPACE_KEYWORDS.
595
596 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
597
598         * input.c: New file.
599         * input.h (main_input_filename): Move declaration to toplev.h.
600         * toplev.c (input_location, line_table): Move to input.c
601         * toplev.h (main_input_filename): Move declaration from input.h.
602         * tree.c (expand_location): Move to input.c.
603         * Makefile.in (OBJS-common): Add input.o.
604         (input.o): Add dependencies.
605
606 2010-05-27  Richard Guenther  <rguenther@suse.de>
607
608         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
609         for non-existant files.
610         (fork_execute): Mark args_name file as deleted.
611
612 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
613
614         PR bootstrp/44287
615         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
616         (narrow_signed_type): Likewise.
617
618 2010-05-26  Jan Hubicka  <jh@suse.cz>
619
620         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
621         edge only when checking is enabled; check using former_clone_of;
622         check inline clones too.
623         (cgraph_materialize_clone): Record former_clone_of pointer.
624         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
625         combining redirections; dump args_to_skip bitmap
626         (cgraph_materialize_all_clones): Do no redirection here.
627         * ipa-inline.c (inline_transform): Do redirection here.
628         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
629         cheking only).
630
631 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
632
633         * config/avr/avr-c.c: Do not include regs.h.
634         Include cpplib.h for cpp_define and tree.h for c-common.h.
635         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
636         * config/avr/t-avr: Fix dependencies for avr-c.o.
637
638 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
639
640         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
641         string instead of SYMBOL_REF rtx.
642         * rtl.h (set_stack_check_libfunc): Move prototype from here...
643         * libfuncs.h: ...to here.  Adjust for explow.c change.
644
645 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
646
647         * pretty-print.c: Don't include ggc.h.
648         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
649         (identifier_to_locale): Use them for allocation.
650         * pretty-print.h (identifier_to_locale_alloc,
651         identifier_to_locale_free): Declare.
652         * toplev.c (alloc_for_identifier_to_locale): New.
653         (general_init): Set identifier_to_locale_alloc and
654         identifier_to_locale_free.
655         * Makefile.in (pretty-print.o): Update dependencies.
656
657 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
658
659         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
660         pointer types if they have different alignment or mode.
661
662 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
663
664         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
665         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
666         * config/sparc/sparc-protos.h (function_value): Remove declaration.
667         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
668         sparc_function_value_regno_p): New functions.
669         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
670         TARGET_FUNCTION_VALUE_REGNO_P): Define.
671         (function_value): Rename to...
672         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
673         argument to 'outgoing'.
674         (function_arg_record_value, function_arg_union_value,
675         function_arg_vector_value): Update comment.
676
677 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
678
679         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
680         (fde_needed_for_eh_p): New predicate.
681         (output_call_frame_info): Use it throughout to decide whether FDEs
682         are needed for EH purpose.
683         (dwarf2out_begin_prologue): Reorder assignments.
684
685 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
686
687         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
688         special case loop->header.
689         (is_predicated): New.
690         (if_convertible_loop_p): Call it.
691
692 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
693
694         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
695         iterator in parameter.  Do not generate code during the analysis.
696         (tree_if_convert_cond_stmt): Removed.
697         (tree_if_convert_stmt): Removed.
698         (predicate_bbs): New.
699         (if_convertible_loop_p): Call predicate_bbs.
700         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
701         now contains all the analysis part.
702
703 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
704
705         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
706         statements in the analysis part.
707         (tree_if_convert_stmt): Update comment.
708         (remove_conditions_and_labels): New.
709         (combine_blocks): Call remove_conditions_and_labels.
710         (tree_if_conversion): Update comment.
711
712 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
713
714         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
715         than 2 predecessors or more than 2 successors.
716
717 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
718
719         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
720         of loops in which the data dependence analysis fails.
721
722 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
723
724         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
725         CDI_POST_DOMINATORS.
726         (tree_if_conversion): Same.
727
728 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
729
730         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
731
732 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
733
734         * tree-if-conv.c: Update copyright years.  Fix comments.
735         Fix indentation.
736
737 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
738
739         * builtin-types.def (BT_INT128): New primitive type.
740         (BT_UINT128): Likewise.
741         * c-common.c (c_common_r): Add __int128 keyword.
742         (c_common_type_for_size): Handle __int128.
743         (c_common_type_for_mode): Likewise.
744         (c_common_signed_or_unsigned_type): Likewise.
745         (c_common_nodes_and_builtins): Add builtin type
746         if target supports 128-bit integer scalar.
747         * c-common.h (enum rid): Add RID_INT128.
748         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
749         if target supports 128-bit integer scalar.
750         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
751         (finish_declspecs): Likewise.
752         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
753         (c_token_starts_declspecs): Likewise.
754         (c_parser_declspecs): Likewise.
755         (c_parser_attributes): Likewise.
756         (c_parser_objc_selector): Likewise.
757         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
758         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
759         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
760         * tree.c (make_or_reuse_type): Likewise.
761         (make_unsigned_type): Likewise.
762         (build_common_tree_nodes_2): Likewise.
763         * tree.h (enum integer_type_kind): Add itk_int128 and
764         itk_unsigned_int128.
765         (int128_integer_type_node): New define.
766         (int128_unsigned_type_node): New define.
767         * doc/extend.texi: Add documentation about __int128 type.
768
769 2010-05-26  Richard Guenther  <rguenther@suse.de>
770
771         * tree-ssa-sccvn.c (copy_nary): Adjust.
772         (copy_phis): Rename to ...
773         (copy_phi): ... this.  Adjust.
774         (copy_references): Rename to ...
775         (copy_reference): ... this.  Adjust.
776         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
777         result into the valid table.
778
779 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
780
781         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
782         insn-config.h, insn-codes.h, recog.h, and optabs.h.
783
784 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
785
786         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
787
788 2010-05-26  Richard Guenther  <rguenther@suse.de>
789
790         * opts.c (common_handle_option): Handle OPT_Ofast.
791
792 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
793
794         * diagnostic.c: Don't include opts.h.
795         (permissive_error_option): Define.
796         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
797         for classify_diagnostic.  Don't use memset for
798         classify_diagnostic.  Initialize new and recently added fields.
799         (diagnostic_classify_diagnostic): Use context->n_opts instead of
800         N_OPTS.
801         (diagnostic_report_diagnostic): Pass context parameter to
802         diagnostic_report_warnings_p.  Use option_enabled and option_name
803         hooks from context.
804         (emit_diagnostic): Use permissive_error_option.
805         (permerror): Likewise.
806         * diagnostic.h: Don't include options.h.
807         (struct diagnostic_context): Add n_opts, opt_permissive,
808         inhibit_warnings, warn_system_headers, option_enabled and
809         option_name fields.  Change classify_diagnostic to a pointer.
810         * opts-diagnostic.h: New file.
811         * opts.c: Include opts-diagnostic.h.
812         (common_handle_option): Set global_dc fields for -Wfatal-errors,
813         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
814         (option_name): New function.
815         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
816         (c_common_handle_option): Set global_dc->permissive for
817         -fpermissive.
818         * c-common.c (c_cpp_error): Save and restore
819         global_dc->warn_system_headers, not variable warn_system_headers.
820         * toplev.c: Include opts-diagnostic.h.
821         (general_init): Update call to diagnostic_initialize.  Set
822         global_dc->show_column, global_dc->option_enabled and
823         global_dc->option_name.
824         (process_options): Don't set global_dc fields here.
825         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
826         (diagnostic.o, opts.o, toplev.o): Update dependencies.
827
828 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
829
830         * config/picochip/picochip.md (movsi): Split a movsi from a
831         const after reload.
832
833 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
834
835         * ggc-zone.c: Update copyright year.
836         (poison_region): Mark memory for Valgrind as undefined before
837         memset () call and inaccessible afterwards.
838         (ggc_pch_total_size): Change type of i to int.
839
840 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
841
842         * ggc-common.c (ggc_free_overhead): Allow empty slot.
843
844 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
845
846         * ggc-common.c: Update copyright year.
847         (ggc_rlimit_bound): Remove prototype.  Compile only if
848         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
849         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
850         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
851         (ggc_min_heapsize_heuristic): Likewise.
852
853 2010-05-26  Richard Guenther  <rguenther@suse.de>
854
855         PR rtl-optimization/44164
856         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
857         no-common access-path disambiguation.
858         (indirect_ref_may_alias_decl_p): Adjust.
859         (indirect_refs_may_alias_p): Likewise.
860         (refs_may_alias_p_1): Likewise.
861
862 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
863
864         * c-typeck.c: Do not include expr.h.
865
866 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
867
868         * rtl.h (decl_default_tls_model): Move prototype from here...
869         * output.h: ...to here.
870         * c-decl.c: Do not include rtl.h.
871         * c-pragma.c: Likewise.
872         * c-parser.c: Likewise.
873         * c-gimplify.c: Likewise.  And also not hard-reg-set.
874         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
875         FIXME note for it.  Add a FIXME note for expr.h.
876         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
877         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
878         defined.
879
880 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
881
882         PR target/44199
883         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
884         or total_size is larger than red zone size for non-V4 ABI, emit a
885         stack_tie resp. frame_tie insn before stack pointer restore.
886         * config/rs6000/rs6000.md (frame_tie): New insn.
887
888 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
889
890         * function.h (struct function): Add can_throw_non_call_exceptions bit.
891         * lto-streamer-in.c (input_function): Stream it in.
892         * lto-streamer-out.c (output_function): Stream it out.
893         * function.c (allocate_struct_function): Set it.
894         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
895         for flag_non_call_exceptions.
896         * cfgbuild.c (control_flow_insn_p): Likewise.
897         (make_edges): Likewise.
898         * cfgexpand.c (expand_stack_alignment): Likewise.
899         * combine.c (distribute_notes): Likewise.
900         * cse.c (cse_extended_basic_block): Likewise.
901         * except.c (insn_could_throw_p): Likewise.
902         * gcse.c (simple_mem): Likewise.
903         * ipa-pure-const.c (check_call): Likewise.
904         (check_stmt ): Likewise.
905         * lower-subreg.c (lower-subreg.c): Likewise.
906         * optabs.c (emit_libcall_block): Likewise.
907         (prepare_cmp_insn): Likewise.
908         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
909         * postreload.c (rest_of_handle_postreload): Likewise.
910         * reload1.c (reload_as_needed): Likewise.
911         (emit_input_reload_insns): Likewise.
912         (emit_output_reload_insns): Likewise.
913         (fixup_abnormal_edges): Likewise.
914         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
915         * store-motion.c (find_moveable_store): Likewise.
916         * tree-eh.c (stmt_could_throw_p): Likewise.
917         (tree_could_throw_p): Likewise.
918         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
919         * config/arm/arm.c (arm_expand_prologue): Likewise.
920         (thumb1_expand_prologue): Likewise.
921         * config/rx/rx.md (cbranchsf4): Likewise.
922         (cmpsf): Likewise.
923         * config/s390/s390.c (s390_emit_prologue): Likewise.
924         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
925         (inline_forbidden_into_p): New predicate.
926         (expand_call_inline): Use it to forbid inlining.
927         (tree_can_inline_p): Likewise.
928
929 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
930
931         * config/i386/i386-c.c: Do not include rtl.h.
932         * config/i386/t-i386: Update dependencies.
933
934 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
935
936         * attribs.c: Do not include rtl.h.
937         * Makefile.in: Update dependencies.
938
939 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
940
941         * double-int.h (double_int_and): New.
942         * combine.c (try_combine): Clean up, use double_int_* and
943         immed_double_int_const functions.
944
945 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
946
947         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
948         stderr to /dev/null instead of grep -q.
949         * configure: Regenerate.
950
951 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
952
953         * Makefile.in (EXCEPT_H): Fix typo.
954
955 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
956
957         * ira-build.c (update_conflict_hard_reg_costs): New.
958         (ira_build): Call update_conflict_hard_reg_costs.
959
960 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
961
962         PR debug/41371
963         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
964         ENABLE_CHECKING.
965         (intersect_loc_chains): Walk the s2var's loc_chain together
966         with s1node chain as long as the locations are equal, don't
967         call find_loc_in_1pdv in that case.
968
969         PR debug/42801
970         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
971         (copy_bind_expr): ... instead of here.
972         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
973         if the block hasn't been remapped.
974         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
975         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
976
977 2010-05-25  Richard Guenther  <rguenther@suse.de>
978
979         PR middle-end/44069
980         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
981         out-of-bounds array accesses.
982
983 2010-05-25  Richard Guenther  <rguenther@suse.de>
984
985         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
986         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
987         (run_gcc): Re-organize to make cleanup easier.
988
989 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
990
991         * config/s390/s390.c (optimization_options): Fix and move the
992         flag_prefetch_loop_arrays override ...
993         (override_options): ... here.
994
995 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
996
997         * diagnostic.c: Don't include plugin.h.
998         (diagnostic_report_diagnostic): Don't handle plugins specially
999         here.  Pass context to internal_error callback.
1000         * diagnostic.h (struct diagnostic_context): Add context parameter
1001         to internal_error callback.
1002         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
1003         * plugin.h (struct diagnostic_context): Declare.
1004         (warn_if_plugins, plugins_internal_error_function): Declare.
1005         * toplev.c (general_init): Set global_dc->internal_error.
1006         * Makefile.in (diagnostic.o): Update dependencies.
1007
1008 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
1009
1010         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
1011         * config/rs6000/t-darwin64: New.
1012         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
1013         build crt2.
1014
1015 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
1016
1017         PR 44203
1018         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
1019         match the original (and intended) behaviour before r159557.  This
1020         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
1021         in two ways.
1022
1023 2010-05-25  Richard Guenther  <rguenther@suse.de>
1024
1025         * doc/invoke.texi: Document -Ofast.
1026         * target.h (struct gcc_target): Add handle_ofast.
1027         * target-def.h (TARGET_HANDLE_OFAST): Add.
1028         (TARGET_INITIALIZER): Adjust.
1029         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
1030         * common.opt (Ofast): Add.
1031
1032 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1033
1034         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
1035         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
1036
1037 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1038
1039         PR target/43610
1040         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
1041         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
1042         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
1043         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
1044
1045 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1046
1047         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
1048         DW_OP_minus with negated offset instead of DW_OP_plus.
1049         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
1050
1051 2010-05-25  Wei Guozhi  <carrot@google.com>
1052
1053         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
1054         tst instruction and a new alternative.
1055         * config/arm/constraints.md (Pu): New constraint.
1056
1057 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
1058
1059         * function.c (assign_stack_local_1): Initialize variable
1060         to avoid warning when bootstrapping at -O3.
1061
1062 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
1063
1064         * configure.ac (all_lang_makefiles): Remove everything related to it.
1065         * configure: Regenerate.
1066         * Makefile.in: Fix reference to ada Make-lang.in.
1067         Remove support for LANG_MAKEFILES.
1068
1069 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
1070             Sandra Loosemore  <sandra@codesourcery.com>
1071
1072         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
1073         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
1074         description.  Add arm_neon_fp16_ok.
1075         (Add Options): Add arm_neon and arm_neon_fp16.
1076
1077 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
1078
1079         * diagnostic.c: Don't include flags.h.
1080         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
1081         context parameters.  Check flags in the context passed as a parameter.
1082         (diagnostic_build_prefix): Add context parameter.  Check
1083         show_column flag in context.
1084         (diagnostic_action_after_output): Check fatal_errors flag in context.
1085         (diagnostic_report_current_module): Check show_column flag in context.
1086         (default_diagnostic_starter): Update call to
1087         diagnostic_build_prefix.
1088         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
1089         (emit_diagnostic): Pass context to permissive_error_kind.
1090         (permerror): Pass context to permissive_error_kind.
1091         * diagnostic.h (struct diagnostic_context): Add show_column,
1092         pedantic_errors, permissive and fatal_errors fields.
1093         (diagnostic_build_prefix): Update prototype.
1094         * langhooks.c
1095         * toplev.c (process_options): Set flags in global_dc from
1096         flag_show_column, flag_pedantic_errors, flag_permissive,
1097         flag_fatal_errors.
1098         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
1099         to diagnostic_build_prefix.
1100         * Makefile.in (diagnostic.o): Update dependencies.
1101
1102 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1103
1104         * config/i386/ia32intrin.h (__crc32q): Define only if
1105         __SSE4_2__ is defined.
1106
1107 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
1108
1109         PR target/44132
1110         PR middle-end/43602
1111         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
1112         DECL_VISIBILITY_SPECIFIED.
1113         (emutls_decl): Set DECL_PRESERVE_P and copy
1114         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
1115         (emutls_finalize_control_var): New callback.
1116         (emutls_finish): Finalize emutls control variables.
1117         * toplev.c (compile_file): Move the call to emutls_finish ()
1118         before varpool_assemble_pending_decls ().
1119
1120 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
1121
1122         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
1123         added to the preprocessor condition.
1124
1125 2010-05-24  Paul Brook  <paul@codesourcery.com>
1126
1127         * gengtype-lex.l: Add HARD_REG_SET.
1128         * expr.c (expand_expr_real_1): Record writes to hard registers.
1129         * function.c (rtl_data): Add asm_clobbers.
1130         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
1131         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
1132         Use crtl->asm_clobbers.
1133
1134 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1135
1136         * doc/makefile.texi (Makefile): Mention stages 'profile'
1137         and 'feedback' for profiledbootstrap.
1138
1139 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1140
1141         PR target/44245
1142         * config/i386/i386.c (def_builtin): Properly check
1143         OPTION_MASK_ISA_64BIT.
1144
1145 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
1146
1147         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1148         typedefs with different but compatible types.  Allow duplicate
1149         typedefs with the same type except for pedantic non-C1X, but give
1150         warning for variably modified types.
1151         * c-typeck.c (tagged_types_tu_compatible_p,
1152         function_types_compatible_p, type_lists_compatible_p,
1153         comptypes_internal): Add parameter different_types_p; set
1154         *different_types_p for different but compatible types.  All
1155         callers changed.
1156         (comptypes_check_different_types): New.
1157         * c-tree.h (comptypes_check_different_types): Declare.
1158
1159 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1160
1161         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
1162         * jump.c: Include basic-block.h.
1163         * profile.c: Likewise.
1164         * tree-profile.c: Likewise.
1165         * coverage.c: Likewise.
1166         * basic-block.h (optimize_function_for_size_p): Move to function.h.
1167         (optimize_function_for_speed_p): Likewise.
1168         * function.h (optimize_function_for_size_p,
1169         optimize_function_for_speed_p): Moved here from basic-block.h.
1170         * Makefile.in: Update dependencies.
1171
1172 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1173
1174         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1175         before calling make; allow override through $MAKE.
1176         * doc/invoke.texi (Optimize Options): Document override.
1177
1178 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
1179
1180         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1181         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1182         (rs6000_mode_dependent_address_ptr): Make static.
1183         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1184         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1185         Remove.
1186
1187 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1188
1189         PR target/43869
1190         * config/i386/i386.c: Make sure that the correct regparm is passed.
1191
1192 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1193
1194         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1195         * sbitmap.c: ...to here to internalize sbitmap element access.
1196         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1197         Explain why basic-block.h is included.
1198         * function.h: Include tm.h for CUMULATIVE_ARGS.
1199         * Makefile.in: Update dependencies.
1200
1201 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1202
1203         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1204         New core types.
1205         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1206         * sbitmap.c: Include sbitmap.h.
1207         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1208         hard-reg-set.h.  Split everything related to regsets out from here...
1209         * regset.h: ...to here.  New file.
1210         * df.h: Include regset.h and sbitmap.h.
1211         * tree-flow.h: Likewise.
1212         * cfgloop.h: Likewise.
1213         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1214         * cgraph.h: Include vec.h and function.h.
1215         * reload.h (struct insn_chain): Change types of live_throughout
1216         and dead_or_set from regset_head to bitmap_head.
1217         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1218         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1219         spilled_regs from regset_head to bitmap_head to avoid dependency
1220         in regset.h.
1221         * sel-sched-ir.h: Include regset.h.
1222         * reload.c: Include df.h before reload.h.
1223         * caller-save.c: Likewise.
1224         * reload1.c: Likewise.
1225         * ira.c: Likewise.
1226         (mark_elimination): Update type of r to bitmap, consistent with
1227         DF_LR_IN.
1228         * dominance.c: Include bitmap.h.
1229         * modulo-sched.c: Include df.h.
1230         * cfganal.c: Include bitmap.h and sbitmap.h.
1231         * cfgbuild.c: Include sbitmap.h.
1232         * lcm.c: Include sbitmap.h.
1233         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1234         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1235         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1236         * cselib.c: Include bitmap.h.
1237         * tree-optimize.c: Include regset.h.
1238         * stmt.c: Include bitmap.h.
1239         * Makefile.in: Update dependencies.
1240
1241 2010-05-22  Jan Hubicka  <jh@suse.cz>
1242
1243         * cgraph.h (struct varpool_node): Add same_comdat_group.
1244         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1245         pointer.
1246         (output_varpool): Update call of lto_output_varpool_node.
1247         (input_varpool): Read same_comdat_group pointer.
1248         (input_varpool_1): Fixup same_comdat_group pointer.
1249         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1250         group is needed, all are.
1251         * varpool.c (varpool_remove_node): Remove node from same comdat group
1252         linklist too.
1253         (varpool_analyze_pending_decls): Walk same comdat groups.
1254
1255 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1256
1257         * rtl.h (union rtunion_def): Remove rt_bit member.
1258         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1259         * print-rtl (print_rtx): Do not print the member.
1260         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1261         * gengenrtl.c (type_from_format): Likewise.
1262         (accessor_from_format): Likewise.
1263
1264 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1265
1266         * dbgcnt.c: Include toplev.h instead of errors.h.
1267         * ira-emit.c: Don't include errors.h.
1268         * ira.c: Include toplev.h instead of errors.h.
1269         * lto-compress.c: Include toplev.h instead of errors.h.
1270         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1271         ira.o, dbgcnt.o): Update dependencies.
1272
1273 2010-05-22  Richard Guenther  <rguenther@suse.de>
1274
1275         * gimple.c (gimple_types_compatible_p): Check type qualifications
1276         before merging pointer to complete and pointer to incomplete type.
1277         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1278         we use our own resolution algorithm.  The gold linker plugin
1279         doesn't do the job we want it to do here.
1280
1281 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1282
1283         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1284         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1285         (sparc_mode_dependent_address_p): New function.
1286
1287 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1288
1289         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1290
1291         * timevar.c: Do not include any core headers.
1292         (timevar_print): De-i18n-ize.
1293         (print_time): Likewise.
1294         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1295
1296 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1297
1298         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1299         langhooks-def.h.
1300         (diagnostic_initialize): Initialize x_data not last_function.
1301         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1302         (default_diagnostic_starter): Call
1303         diagnostic_report_current_module not
1304         diagnostic_report_current_function.
1305         (diagnostic_report_diagnostic): Initialize x_data not
1306         abstract_origin.
1307         (verbatim): Likewise.
1308         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1309         x_data.
1310         (struct diagnostic_context): Change last_function to x_data.
1311         (diagnostic_auxiliary_data): Replace with
1312         diagnostic_context_auxiliary_data and
1313         diagnostic_info_auxiliary_data.
1314         (diagnostic_last_function_changed, diagnostic_set_last_function,
1315         diagnostic_report_current_function): Move to tree-diagnostic.h.
1316         (print_declaration, dump_generic_node, print_generic_stmt,
1317         print_generic_stmt_indented, print_generic_expr,
1318         print_generic_decl, debug_c_tree, dump_omp_clauses,
1319         print_call_name, debug_generic_expr, debug_generic_stmt,
1320         debug_tree_chain, default_tree_printer): Move to
1321         tree-pretty-print.h.
1322         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1323         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1324         gimple-pretty-print.h.
1325         * pretty-print.c: Don't include tree.h
1326         (pp_base_format): Don't handle %K here.
1327         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1328         * pretty-print.h (text_info): Change abstract_origin to x_data.
1329         (pp_tree_identifier, pp_unsupported_tree,
1330         pp_base_tree_identifier): Move to tree-pretty-print.h.
1331         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1332         tree-pretty-print.h: New files.
1333         * tree-pretty-print.c: Include tree-pretty-print.h.
1334         (percent_K_format): New.  Moved from pretty-print.c.
1335         (pp_base_tree_identifier): Move from pretty-print.c.
1336         * c-objc-common.c: Include tree-pretty-print.h.
1337         (c_tree_printer): Handle %K here.
1338         * langhooks.c: Include tree-diagnostic.h.
1339         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1340         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1341         (default_tree_printer): Handle %K using percent_K_format.
1342         (general_init): Use default_tree_diagnostic_starter.
1343         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1344         (free_lang_data): Use default_tree_diagnostic_starter.
1345         * c-pretty-print.c: Include tree-pretty-print.h.
1346         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1347         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1348         * dwarf2out.c: Include tree-pretty-print.h.
1349         * except.c: Include tree-pretty-print.h.
1350         * gimple-pretty-print.c: Include tree-pretty-print.h and
1351         gimple-pretty-print.h.
1352         * gimplify.c: Include tree-pretty-print.h.
1353         * graphite-poly.c: Include tree-pretty-print.h and
1354         gimple-pretty-print.h.
1355         * ipa-cp.c: Include tree-pretty-print.h.
1356         * ipa-inline.c: Include gimple-pretty-print.h.
1357         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1358         * ipa-pure-const.c: Include gimple-pretty-print.h.
1359         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1360         gimple-pretty-print.h.
1361         * ipa-type-escape.c: Include tree-pretty-print.h.
1362         * print-rtl.c: Include tree-pretty-print.h.
1363         * print-tree.c: Include gimple-pretty-print.h.
1364         * sese.c: Include tree-pretty-print.h.
1365         * tree-affine.c: Include tree-pretty-print.h.
1366         * tree-browser.c: Include tree-pretty-print.h.
1367         * tree-call-cdce.c: Include gimple-pretty-print.h.
1368         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1369         * tree-chrec.c: Include tree-pretty-print.h.
1370         * tree-data-ref.c: Include tree-pretty-print.h and
1371         gimple-pretty-print.h.
1372         * tree-dfa.c: Include tree-pretty-print.h.
1373         * tree-if-conv.c: Include tree-pretty-print.h and
1374         gimple-pretty-print.h.
1375         * tree-inline.c: Include tree-pretty-print.h.
1376         * tree-into-ssa.c: Include tree-pretty-print.h and
1377         gimple-pretty-print.h.
1378         * tree-nrv.c: Include tree-pretty-print.h.
1379         * tree-object-size.c: Include tree-pretty-print.h and
1380         gimple-pretty-print.h.
1381         * tree-outof-ssa.c: Include tree-pretty-print.h and
1382         gimple-pretty-print.h.
1383         * tree-parloops.c: Include tree-pretty-print.h and
1384         gimple-pretty-print.h.
1385         * tree-predcom.c: Include tree-pretty-print.h and
1386         gimple-pretty-print.h.
1387         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1388         gimple-pretty-print.h.
1389         * tree-sra.c: Include tree-pretty-print.h.
1390         * tree-ssa-address.c: Include tree-pretty-print.h.
1391         * tree-ssa-alias.c: Include tree-pretty-print.h.
1392         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1393         gimple-pretty-print.h.
1394         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1395         * tree-ssa-copy.c: Include tree-pretty-print.h and
1396         gimple-pretty-print.h.
1397         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1398         * tree-ssa-dce.c: Include tree-pretty-print.h and
1399         gimple-pretty-print.h.
1400         * tree-ssa-dom.c: Include tree-pretty-print.h and
1401         gimple-pretty-print.h.
1402         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1403         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1404         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1405         * tree-ssa-live.c: Include tree-pretty-print.h and
1406         gimple-pretty-print.h.
1407         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1408         gimple-pretty-print.h.
1409         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1410         gimple-pretty-print.h.
1411         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1412         gimple-pretty-print.h.
1413         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1414         gimple-pretty-print.h.
1415         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1416         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1417         * tree-ssa-operands.c: Include tree-pretty-print.h and
1418         gimple-pretty-print.h.
1419         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1420         gimple-pretty-print.h.
1421         * tree-ssa-pre.c: Include tree-pretty-print.h and
1422         gimple-pretty-print.h.
1423         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1424         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1425         gimple-pretty-print.h.
1426         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1427         gimple-pretty-print.h.
1428         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1429         * tree-ssa-ter.c: Include tree-pretty-print.h and
1430         gimple-pretty-print.h.
1431         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1432         * tree-ssa.c: Include tree-pretty-print.h and
1433         gimple-pretty-print.h.
1434         * tree-stdarg.c: Include gimple-pretty-print.h.
1435         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1436         * tree-tailcall.c: Include tree-pretty-print.h and
1437         gimple-pretty-print.h.
1438         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1439         gimple-pretty-print.h.
1440         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1441         gimple-pretty-print.h.
1442         * tree-vect-loop.c: Include tree-pretty-print.h and
1443         gimple-pretty-print.h.
1444         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1445         * tree-vect-slp.c: Include tree-pretty-print.h and
1446         gimple-pretty-print.h.
1447         * tree-vect-stmts.c: Include tree-pretty-print.h and
1448         gimple-pretty-print.h.
1449         * tree-vectorizer.c: Include tree-pretty-print.h.
1450         * tree-vrp.c: Include tree-pretty-print.h and
1451         gimple-pretty-print.h.
1452         * value-prof.c: Include tree-pretty-print.h and
1453         gimple-pretty-print.h.
1454         * var-tracking.c: Include tree-pretty-print.h.
1455         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1456         (tree-diagnostic.o): New dependencies.
1457         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1458         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1459         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1460         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1461         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1462         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1463         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1464         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1465         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1466         tree-ssa-address.o, tree-ssa-loop-niter.o,
1467         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1468         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1469         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1470         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1471         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1472         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1473         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1474         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1475         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1476         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1477         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1478         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1479         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1480         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1481         cfgexpand.o, pretty-print.o): Update dependencies.
1482
1483 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1484
1485         * tree-ssa-structalias.c: Remove tm_p.h from include.
1486
1487 2010-05-21  Jeff Law  <law@redhat.com>
1488
1489         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1490
1491 2010-05-21  Jason Merrill  <jason@redhat.com>
1492
1493         * tree-eh.c (cleanup_is_dead_in): New.
1494         (lower_try_finally): Don't generate a dead cleanup region.
1495         (lower_cleanup): Likewise.
1496
1497 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1498
1499         PR debug/44223
1500         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1501         unchain each use from the cyclic next_regno_use chain first.
1502
1503 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1504
1505         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1506         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1507         (real_value_negate, real_value_abs): New prototypes.
1508         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1509         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1510         new include file for interface between MPFR and REAL_VALUE_TYPE.
1511         * real.c: Include realmpfr.h.
1512         (real_arithmetic2): Remove legacy function.
1513         (real_value_negate): New.
1514         (real_value_abs): New.
1515         (mfpr_from_real, real_from_mpfr): Move from here...
1516         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1517         * builtins.c: Include realmpfr.h.
1518         * fold-const.c: Include realmpfr.h.
1519         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1520         (fold_negate_const): Likewise.
1521         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1522         * toplev.c: Include realmpfr.h.
1523         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1524         and real_value_negate.
1525         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1526         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1527         (vfp3_const_double_index): Likewise.
1528         (arm_print_operand): Likewise.
1529         * Makefile.in: Update dependencies.
1530
1531 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1532
1533         * config/s390/s390.c (override_options): Increase the default
1534         of max-completely-peel-times.
1535
1536 2010-05-21  Julian Brown  <julian@codesourcery.com>
1537             Mark Mitchell  <mark@codesourcery.com>
1538
1539         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1540         sibling calls for Thumb-1.
1541         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1542         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1543         Thumb-2.
1544         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1545         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1546         for Thumb-2.
1547         (return): New expander.
1548         (*arm_return): New name for ARM return insn.
1549         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1550
1551 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1552
1553         * config.gcc (sparc64-*-rtems*): New target.
1554
1555 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1556
1557         * tree.c (build_function_decl_skip_args): Fix grammar.
1558         (build_function_type_list_1): Fix typos, adjust formatting.
1559
1560 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1561
1562         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1563         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1564         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1565         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1566         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1567         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1568         tree-pretty-print.c, tree-loop-distribution.c,
1569         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1570         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1571         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1572         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1573         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1574         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1575         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1576         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1577         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1578         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1579         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1580         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1581         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1582         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1583         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1584         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1585         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1586         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1587         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1588         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1589         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1590         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1591         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1592         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1593         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1594         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1595         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1596         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1597         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1598         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1599         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1600         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1601         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1602         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1603         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1604         config/bfin/bfin.c: Clean up redundant includes.
1605         * Makefile.in: Update accordingly.
1606
1607 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1608
1609         PR middle-end/44204
1610         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1611         statement has no arguments.
1612
1613 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1614
1615         PR/44139
1616         * varasm.c (emutls_decl): Merge attributes to new decl.
1617
1618 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1619
1620         PR middle-end/44101
1621         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1622         around the uniquized constructor if its type requires a conversion.
1623
1624 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1625
1626         PR debug/44205
1627         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1628         at -O0 goto_locus of any of the incoming edges differs from
1629         goto_locus of outgoing edge, or gimple_location of any of the
1630         labels differs.
1631
1632 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1633
1634         * ira.c (ira_non_ordered_class_hard_regs): Define.
1635         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1636         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1637         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1638         cost of unaligned hard regs when allocating multi-reg pseudos.
1639
1640 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1641
1642         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1643         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1644         for TARGET_NO_FLOAT.
1645         * config/mips/mips.c (mips_file_start): Expand conditional expression
1646         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1647         (mips_override_options): Move -mno-float override -msoft-float and
1648         -mhard-float.
1649         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1650         Condition(TARGET_SUPPORTS_NO_FLOAT).
1651         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1652         __mips_no_float here.
1653         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1654         (TARGET_SUPPORTS_NO_FLOAT): Define.
1655         * config/mips/sdemtk.opt: Delete.
1656
1657 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1658
1659         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1660
1661 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1662
1663         PR target/43733
1664         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1665         * configure: Regenerate.
1666         * config.in: Regenerate.
1667         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1668         instead of sahf only for 64bit targets.
1669
1670 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1671
1672         PR debug/44178
1673         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1674         setup_ref_regs for DEBUG_INSNs.
1675
1676 2010-05-20  Jan Hubicka  <jh@suse.cz>
1677
1678         PR middle-end/44197
1679         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1680
1681 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1682
1683         PR bootstrap/43870
1684         * df-scan.c (df_ref_compare): Stabilize sort.
1685
1686 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1687
1688         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1689         argument.  Don't use DW_OP_piece if offset is non-zero,
1690         put offset into second DW_OP_bit_piece argument.
1691         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1692         compute offset.
1693
1694 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1695
1696         PR target/44202
1697         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1698         settings for 16-bit-constant "addo" alternative.
1699
1700 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1701
1702         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1703         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1704
1705         PR target/43764
1706         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1707         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1708         Use it.
1709
1710 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1711
1712         * diagnostic.c (FLOAT, FFS): Don't undefine.
1713         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1714         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1715         include ordering.
1716
1717 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1718
1719         * combine.c (propagate_for_debug): Call make_compound_operation
1720         on the source value.
1721         (try_combine): When implementing a split chosen by find_split_point,
1722         either copy i2src or set it to null.  Assert that i2src is not null
1723         before substituting into CALL_INSN_FUNCTION_USAGE.
1724
1725 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1726
1727         * double-int.h (double_int_ior): New function.
1728         * tree.h (build_int_cst_wide_type): Remove.
1729         * tree.c (build_int_cst_wide_type): Remove.
1730         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1731         of build_int_cst_wide_type.
1732         * stor-layout.c (set_sizetype): (Ditto.).
1733         * dojump.c (do_jump): Use build_int_cstu instead of
1734         build_int_cst_wide_type.
1735
1736 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1737
1738         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1739         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1740         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1741         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1742         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1743         propagate the 'data' argument to copy_tree_r.
1744         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1745         Propagate 'data' argument to walk_tree.
1746         (copy_if_shared): New function.
1747         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1748         (unmark_visited): New function.
1749         (unshare_body): Call copy_if_shared instead of doing it manually.
1750         (unvisit_body): Call unmark_visited instead of doing it manually.
1751
1752 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1753
1754         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1755         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1756         * hooks.c: Likewise.
1757         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1758         hook_tree_tree_int_treep_bool_null.
1759         * target.h (struct gcc_target): Update signature of fold_builtin
1760         field.
1761         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1762         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1763         instead of the call expression.
1764         (fold_builtin_call_array): Pass n and argarray directly.
1765         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1766         consing a list.
1767         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1768         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1769         `i' and use it in place of `arity'.
1770         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1771         Dereference `args' directly.
1772         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1773
1774 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1775
1776         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1777         3dnow, sse3, sse2.
1778         (Directives): Document optional dg-require-effective-target
1779         selector.
1780
1781 2010-05-19  Richard Guenther  <rguenther@suse.de>
1782
1783         PR lto/44196
1784         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1785
1786 2010-05-19  Richard Guenther  <rguenther@suse.de>
1787
1788         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1789         * common.opt (fwhopr=): New.
1790         * opts.c (common_handle_option): Handle OPT_fwhopr.
1791         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1792         * collect2.c (main): Match -fwhopr*.
1793         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1794         Execute ltrans stage in parallel when jobs is bigger than 1.
1795
1796 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1797
1798         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1799         pentiumpro on Solaris 8/x86 with Sun as.
1800         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1801         hidden alias bug.
1802         (gcc_cv_as_ix86_quad): Check for .quad directive.
1803         * configure: Regenerate.
1804         * config.in: Regenerate.
1805         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1806
1807 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1808
1809         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1810         also for indirect edges.  Actual printing moved...
1811         (ipa_print_node_jump_functions_for_edge): ...here.
1812         (ipa_compute_jump_functions): Renamed to
1813         ipa_compute_jump_functions_for_edge and made static.
1814         (ipa_compute_jump_functions): New function.
1815         (make_edge_direct_to_target): Check if the number of arguments on
1816         the newly direct edge is the same as the number of parametrs of
1817         the callee.
1818         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1819         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1820         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1821         analysis functions unconditionally, call the new
1822         ipa_analyze_params_uses on the node instead of every edge.
1823
1824 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1825
1826         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1827         to tree.
1828         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1829         also checks for a constant int vs.  non-constant but
1830         loop-invariant steps.
1831         (find_or_create_group): Change the sort algorithm to only consider
1832         steps that are constant ints.
1833         (idx_analyze_ref): Adopt code to handle a tree instead of a
1834         HOST_WIDE_INT for step.
1835         (gather_memory_references_ref): Handle tree instead of int and be
1836         prepared to see a NULL_TREE.
1837         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1838         prefetches if the step cannot be calculated at compile time.
1839         (issue_prefetch_ref): Issue prefetches for non-constant but
1840         loop-invariant steps.
1841
1842 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1843
1844         Revert:
1845         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1846
1847         * tree.h (build_call_list): Remove.
1848         * tree.c (build_call_list): Remove.
1849
1850 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1851
1852         * tree.h (build_call_list): Remove.
1853         * tree.c (build_call_list): Remove.
1854
1855 2010-05-18  Jan Hubicka  <jh@suse.cz>
1856
1857         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1858
1859 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1860
1861         PR rtl-optimization/43332
1862         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1863
1864 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1865
1866         * tree.h (build_int_cstu): Implement as static inline.
1867         * tree.c (build_int_cstu): Remove function.
1868         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1869         sign extended.
1870
1871 2010-05-18  Richard Guenther  <rguenther@suse.de>
1872
1873         PR lto/44143
1874         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1875         (debug): Initialize from -save-temps.
1876         (collect_execute): Print command-line when verbose.
1877         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1878         for ltrans invocation.  Produce -dumpbase flag again.
1879         (process_args): Remove.
1880         (main): Simplify.
1881         * collect2.c (maybe_run_lto_and_relink): Only pass object
1882         files to lto-wrapper.
1883         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1884
1885 2010-05-18  Jan Hubicka  <jh@suse.cz>
1886
1887         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1888         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1889
1890 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1891
1892         PR lto/44184
1893         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1894         in a GIMPLE_ASM.
1895         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1896         in a GIMPLE_ASM.
1897
1898 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1899
1900         PR debug/41371
1901         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1902         rtx_equal_p inline.
1903
1904 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1905
1906         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1907         lto-macho as lto_binary_reader.
1908
1909         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1910         after .section directive; just print it before the directive instead.
1911
1912 2010-05-17  Jan Hubicka  <jh@suse.cz>
1913
1914         * cgraph.c (cgraph_create_virtual_clone): Only check
1915         versionable_function_p when not in wpa and checking is enabled.
1916         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1917         there are no more functions to materialize.
1918
1919 2010-05-17  Jan Hubicka  <jh@suse.cz>
1920
1921         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1922         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1923         New functions.
1924         (output_cgraph): Call output_cgraph_opt_summary.
1925         (input_cgrpah): Call input_cgraph_opt_summary.
1926         (output_cgraph_opt_summary_p, output_node_opt_summary,
1927         input_node_opt_summary, input_cgraph_opt_section): New functions.
1928         * lto-section-in.c (lto_section_name): Add cgraphopt.
1929         * tree-inline.c (tree_function_versioning): Handle parm_num.
1930         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1931         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1932
1933 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1934
1935         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1936         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1937         the insn to prefetch ratio heuristic to loops with known trip count.
1938
1939 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1940
1941         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1942         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1943         is far from what is required by the prefetch.
1944
1945 2010-05-17  Jan Hubicka  <jh@suse.cz>
1946
1947         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1948         (ipcp_estimate_growth): Likewise.
1949         (ipcp_const_param_count): Likewise.
1950         (ipcp_insert_stage): Likewise.
1951         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1952         (visit_store_addr_for_mod_analysis): Set used flag.
1953         (ipa_detect_param_modifications): Set used flag for SSE params;
1954         update use of walk_stmt_load_store_addr_ops.
1955         (ipa_print_node_params): Print used flag.
1956         (ipa_write_node_info): Stream used flag.
1957         (ipa_read_node_info): Likewise.
1958         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1959         (ipa_is_param_used): New function.
1960         (lto_ipa_fixup_call_notes): Remove unused declaration.
1961
1962 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1963
1964         PR target/44074
1965         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1966         * configure: Regenerate.
1967         * config.in: Regenerate.
1968         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1969         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1970         Don't emit whitespace.
1971         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1972         (*rep_movsi): Likewise.
1973         (*rep_movsi_rex64): Likewise.
1974         (*rep_movqi): Likewise.
1975         (*rep_movqi_rex64): Likewise.
1976         (*rep_stosdi_rex64): Likewise.
1977         (*rep_stossi): Likewise.
1978         (*rep_stossi_rex64): Likewise.
1979         (*rep_stosqi): Likewise.
1980         (*rep_stosqi_rex64): Likewise.
1981         (*cmpstrnqi_nz_1): Use {%;} after repz.
1982         (*cmpstrnqi_nz_rex_1): Likewise.
1983         (*cmpstrnqi_1): Likewise.
1984         (*cmpstrnqi_rex_1): Likewise.
1985         (*strlenqi_1): Use {%;} after repnz.
1986         (*strlenqi_rex_1): Likewise.
1987         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1988         (*sync_compare_and_swap<mode>): Likewise.
1989         (sync_double_compare_and_swap<mode>): Likewise.
1990         (*sync_double_compare_and_swapdi_pic): Likewise.
1991         (sync_old_add<mode>): Likewise.
1992         (sync_add<mode>): Likewise.
1993         (sync_sub<mode>): Likewise.
1994         (sync_<code><mode>): Likewise.
1995
1996 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1997
1998         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1999         otr_token and polymorphic.
2000         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
2001         (cgraph_clone_edge): Copy the above fields.
2002         * tree.c (get_binfo_at_offset): New function.
2003         * tree.h (get_binfo_at_offset): Declare.
2004         * ipa-prop.h (enum jump_func_type): Added known_type jump function
2005         type, reordered items, updated comments.
2006         (union jump_func_value): Added base_type field, reordered fields.
2007         (enum ipa_lattice_type): Moved down in the file.
2008         (struct ipa_param_descriptor): New field polymorphic.
2009         (ipa_is_param_polymorphic): New function.
2010         * ipa-prop.c: Include gimple.h and gimple-fold.h.
2011         (ipa_print_node_jump_functions): Print known type jump functions.
2012         (compute_complex_pass_through): Renamed to...
2013         (compute_complex_assign_jump_func): this.
2014         (compute_complex_ancestor_jump_func): New function.
2015         (compute_known_type_jump_func): Likewise.
2016         (compute_scalar_jump_functions): Create known type and complex ancestor
2017         jump functions.
2018         (ipa_note_param_call): New parameter polymorphic, set the corresponding
2019         flag in the call note accordingly.
2020         (ipa_analyze_call_uses): Renamed to...
2021         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
2022         variable var only in the block where it is used.
2023         (ipa_analyze_virtual_call_uses): New function.
2024         (ipa_analyze_call_uses): Likewise.
2025         (combine_known_type_and_ancestor_jfs): Likewise.
2026         (update_jump_functions_after_inlining): Implemented handling of a
2027         number of new jump function types combination.
2028         (print_edge_addition_message): Removed.
2029         (make_edge_direct_to_target): New function.
2030         (try_make_edge_direct_simple_call): Likewise.
2031         (try_make_edge_direct_virtual_call): Likewise.
2032         (update_call_notes_after_inlining): Renamed to...
2033         (update_indirect_edges_after_inlining): this.  Moved edge creation for
2034         indirect calls to try_make_edge_direct_simple_call, also calls
2035         try_make_edge_direct_virtual_call for virtual calls.
2036         (ipa_print_node_params): Changed the header message.
2037         (ipa_write_jump_function): Stream also known type jump functions.
2038         (ipa_read_jump_function): Likewise.
2039         (ipa_write_indirect_edge_info): Stream new fields in
2040         cgraph_indirect_call_info.
2041         (ipa_read_indirect_edge_info): Likewise.
2042         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
2043         GIMPLE_FOLD_H.
2044
2045 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2046
2047         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
2048
2049 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2050
2051         * tree.h (CALL_EXPR_ARGS): Delete.
2052         (call_expr_arglist): Delete.
2053         * tree.c (call_expr_arglist): Delete.
2054         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
2055         targetm.fold_builtin.
2056         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
2057         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
2058         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
2059         arglist parameter.  Use CALL_EXPR_ARG.
2060         (picochip_expand_builtin_3op): Likewise.
2061         (picochip_expand_builtin_2opvoid): Likewise.
2062         (picochip_expand_array_get): Likewise.
2063         (picochip_expand_array_put): Likewise.
2064         (picochip_expand_array_testport): Likewise.
2065         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
2066         rather than arglist.
2067         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
2068         CALL_EXPR_ARGS.
2069         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
2070         than TREE_VALUE and TREE_CHAIN.
2071         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
2072         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
2073         the arglist.
2074
2075 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2076
2077         PR bootstrap/42347
2078         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
2079         to have no fallthru edge.
2080
2081         PR middle-end/44102
2082         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
2083         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
2084         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
2085         add BARRIER after previous bb if needed.
2086
2087 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2088
2089         * tree.c (build_function_type_list_1): Remove bogus assert condition.
2090
2091 2010-05-17  Alan Modra  <amodra@gmail.com>
2092
2093         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
2094         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
2095         with copy_reg rtx param.
2096         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
2097         Correct cases where code for ABI_V4 did not initialise the reg
2098         used to access frame.  Also leave frame_reg_rtx as sp for large
2099         frames that save no regs.
2100
2101 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2102
2103         PR middle-end/44133
2104         * tree-sra.c (create_access_replacement): New parameter rename, mark
2105         the replaement for renaming only when it is true.
2106         (get_access_replacement): Pass true in the rename parameter of
2107         create_access_replacement.
2108         (get_unrenamed_access_replacement): New function.
2109         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
2110         replacement declaration from it.
2111
2112 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
2113
2114         * function.c (try_fit_stack_local, add_frame_space): New static
2115         functions.
2116         (assign_stack_local_1): Use them.  Look for opportunities to use
2117         space previously wasted on alignment.
2118         * function.h (struct frame_space): New.
2119         (struct rtl_data): Add FRAME_SPACE_LIST member.
2120         * reload1.c (something_was_spilled): New static variable.
2121         (alter_reg): Set it.
2122         (reload): Test it in addition to testing if the frame size changed.
2123
2124 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
2125
2126         * config/s390/s390.c: Define sane prefetch settings and activate
2127         flag_prefetch_loop_arrays on -O3.
2128         * config/s390/s390.h: Declare that read can use write prefetch.
2129
2130 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2131
2132         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
2133         build.
2134
2135 2010-05-16  Jan Hubicka  <jh@suse.cz>
2136
2137         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2138         function body; do not check stdarg field of struct function.
2139
2140 2010-05-16  Jan Hubicka  <jh@suse.cz>
2141
2142         * cgraph.c (dump_cgraph_node): Dump versionable flag.
2143         * cgraph.h (cgraph_local_info): Add versionable flag.
2144         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2145         (ipcp_versionable_function_p): Use it.
2146         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2147         versionable flag.
2148
2149 2010-05-16  Jan Hubicka  <jh@suse.cz>
2150
2151         * cgraph.c (cgraph_clone_node): Take decl argument and insert
2152         clone into hash when it is different from orig.
2153         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2154         * cgraph.h (cgraph_clone_node): Update prototype.
2155         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2156         (lto_cgraph_encoder_delete): Delete body map.
2157         (lto_cgraph_encoder_size): Move to header.
2158         (lto_cgraph_encoder_encode_body_p,
2159         lto_set_cgraph_encoder_encode_body): New.
2160         (lto_output_node): Do not take written_decls argument; output clone_of
2161         pointer.
2162         (add_node_to): Add include_body_argument; call
2163         lto_set_cgraph_encoder_encode_body on master of the clone.
2164         (add_references): Update use of add_node_to.
2165         (compute_ltrans_boundary): Likewise.
2166         (output_cgraph): Do not create written_decls bitmap.
2167         (input_node): Take nodes argument; stream in clone_of correctly.
2168         (input_cgraph_1): Update use of input_node.
2169         * lto-streamer-out.c (lto_output): Use encoder info to decide
2170         what bodies to output.
2171         * ipa-inline.c (cgraph_clone_inlined_nodes,
2172         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2173         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2174         (lto_cgraph_encoder_size): Define here.
2175         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2176         Declare.
2177
2178 2010-05-16  Richard Guenther  <rguenther@suse.de>
2179
2180         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2181         -fipa-type-escape.
2182         * ipa-type-escape.c (gate_type_escape_vars): Run when
2183         -fipa-struct-reorg runs.
2184         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2185         * common.opt (fipa-type-escape): Remove.
2186
2187 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2188
2189         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2190         (decode_options): Likewise.
2191         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2192
2193 2010-05-16  Jan Hubicka  <jh@suse.cz>
2194
2195         * ipa.c (function_and_variable_visibility): Also bring local all
2196         aliases.
2197
2198 2010-05-16  Richard Guenther  <rguenther@suse.de>
2199
2200         * alias.c (nonoverlapping_memrefs_p): Remove use of
2201         IPA type-escape information.
2202
2203 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2204
2205         * c-common.c (c_common_reswords): Add _Static_assert for C.
2206         * c-parser.c (c_token_starts_declaration,
2207         c_parser_next_token_starts_declaration,
2208         c_parser_static_assert_declaration_no_semi,
2209         c_parser_static_assert_declaration): New.
2210         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2211         Handle static assertions if static_assert_ok.
2212         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2213         c_parser_compound_statement_nostart, c_parser_label,
2214         c_parser_for_statement, c_parser_objc_methodprotolist,
2215         c_parser_omp_for_loop): All callers of
2216         c_parser_declaration_or_fndef changed.
2217         (c_parser_struct_declaration): Handle static assertions.
2218         (c_parser_compound_statement_nostart): Use
2219         c_parser_next_token_starts_declaration and
2220         c_token_starts_declaration to detect start of declarations.
2221         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2222         Likewise.
2223
2224 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2225
2226         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2227         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2228         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2229         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2230         (mmix_function_outgoing_value): Rename to...
2231         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2232         (mmix_function_value_regno_p): Make static.
2233         (mmix_libcall_value): New function.
2234         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2235         mmix_function_value_regno_p): Remove declaration.
2236
2237 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2238
2239         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2240         BUILT_IN_ALLOCA if stack checking is enabled.
2241
2242 2010-05-16  Richard Guenther  <rguenther@suse.de>
2243
2244         * var-tracking.c (vars_copy_1): Inline ...
2245         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2246         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2247         (variable_merge_over_cur): Adjust.  Merge asserts.
2248         (variable_merge_over_src): Likewise.
2249         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2250         (variable_post_merge_new_vals): Merge asserts.
2251         (variable_post_merge_perm_vals): Likewise.
2252         (find_mem_expr_in_1pdv): Likewise.
2253         (dataflow_set_different_value): Remove.
2254         (onepart_variable_different_p): Merge asserts.
2255         (variable_different_p): Likewise.
2256         (dataflow_set_different_1): Inline ...
2257         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2258         (emit_notes_for_differences_1): Merge asserts.
2259
2260 2010-05-16  Richard Guenther  <rguenther@suse.de>
2261
2262         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2263         * optabs.c (libfunc_decl_hash): Likewise.
2264         * varasm.c (emutls_decl): Likewise.
2265
2266 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2267
2268         * c-decl.c: Don't include gimple.h.
2269         (merge_decls): Do not copy gimple_body.
2270
2271 2010-05-15  Jason Merrill  <jason@redhat.com>
2272
2273         * c.opt: Add -fnothrow-opt.
2274
2275 2010-05-15  Jan Hubicka  <jh@suse.cz>
2276
2277         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2278         analyzed.
2279         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2280
2281 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2282
2283         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2284         * Makefile.in: Add it.
2285         Fix all other Makefile dependencies for changes below.
2286         * tree.h: Include it instead of defining VEC primitives here.
2287         * gimple.h: Likewise.
2288         * rtl.h: Likewise.
2289         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2290         * except.h: Include vecir.h, break dependence on tree.h.
2291
2292         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2293         Move from here...
2294         * tree-iterator.c: ...to here.
2295         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2296
2297         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2298         tm_p.h.
2299         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2300         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2301         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2302         tree-mudflap.h, and target.h.
2303         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2304         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2305         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2306         Add FIXME for why gimple.h is still included (should be unnecessary
2307         since GCC 4.5 gimplification unit-at-a-time).
2308         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2309         * c-pragma.c: Add FIXME for why function.h needs to be included just
2310         for cfun, at front-end level.
2311         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2312         Do not include ggc.h, but include vecprim.h for VEC(char).
2313         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2314         Explain why target.h is included.
2315         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2316         Explain why gimple.h is included.
2317         * c-ppoutput.c: Do not include tm.h.
2318         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2319         * c-parses.c: Explain why rtl.h is included, and that this (and only
2320         this) is also why tm.h must be included.
2321         Do not include except.h.
2322         * c-lang.c: Do not include ggc.h.
2323
2324 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2325
2326         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2327
2328 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2329
2330         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2331         unions by default if those structs and unions have no tags.  Do
2332         not condition anonymous struct and unions handling on flag_iso.
2333         Allow anonymous structs and unions for C1X.
2334         (finish_struct): Do not diagnose lack of named fields when
2335         anonymous structs and unions present for C1X.  Accept flexible
2336         array members in structure with anonymous structs or unions but no
2337         directly named fields.
2338         * doc/extend.texi (Unnamed Fields): Update.
2339
2340 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2341
2342         * gimple.h (compare_field_offset): Rename into...
2343         (gimple_compare_field_offset): ...this.
2344         * gimple.c (compare_field_offset): Rename into...
2345         (gimple_compare_field_offset): ...this.  Compare the full access if
2346         the offset is self-referential.
2347         (gimple_types_compatible_p): Adjust for above renaming.
2348         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2349         DECL_NONADDRESSABLE_P flag of fields before merging them.
2350
2351 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2352
2353         * tree.h (ctor_to_list): Delete.
2354         * tree.c (ctor_to_list): Delete.
2355
2356 2010-05-15  Jan Hubicka  <jh@suse.cz>
2357
2358         * ipa-reference.c: Include toplev.h
2359         (is_proper_for_analysis): Only add to all_module_statics
2360         if it is allocated.
2361         (write_node_summary_p, stream_out_bitmap,
2362         ipa_reference_write_optimization_summary,
2363         ipa_reference_read_optimization_summary): New.
2364         (struct ipa_opt_pass_d pass_ipa_reference): Add
2365         optimization summary streaming.
2366         * lto-cgraph.c (referenced_from_this_partition_p,
2367         reachable_from_this_partition_p): New functions.
2368         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2369         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2370         * opts.c (decode_options): Enable ipa_reference.
2371         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2372         * lto-streamer.h (referenced_from_this_partition_p,
2373         reachable_from_this_partition_p): Declare.
2374
2375 2010-05-15  Richard Guenther  <rguenther@suse.de>
2376
2377         PR tree-optimization/44038
2378         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2379         taking the address of a V_C_E of a constant.
2380
2381 2010-05-14  Jan Hubicka  <jh@suse.cz>
2382
2383         * tree.h (memory_identifier_string): Remove.
2384         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2385         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2386         statics_not_written.
2387         (ipa_reference_optimization_summary_d): New structure.
2388         (ipa_reference_optimization_summary_t): New type and vector.
2389         (ipa_reference_vars_info_d): Embedd structures instead of using
2390         pointers.
2391         (reference_vars_to_consider): Remove out of GGC space.
2392         (module_statics_escape): Remove.
2393         (global_info_obstack): Rename to ...
2394         (optimization_summary_obstack): ... this one.
2395         (initialization_status_t): Remove.
2396         (memory_identifier_string): Remove.
2397         (get_reference_vars_info): Fix indenting.
2398         (set_reference_vars_info): Likewise.
2399         (get_reference_optimization_summary): New.
2400         (set_reference_optimization_summary): New.
2401         (get_global_reference_vars_info): Remove.
2402         (ipa_reference_get_read_global): Remove.
2403         (ipa_reference_get_written_global): Remove.
2404         (ipa_reference_get_not_read_global): Update.
2405         (ipa_reference_get_not_written_global): Update.
2406         (is_proper_for_analysis): Outlaw addressable.
2407         (propagate_bits): Update for new datastructures.
2408         (analyze_variable): Remove.
2409         (init_function_info): Update for new datastructures.
2410         (clean_function_local_data): Remove.
2411         (clean_function): Remove.
2412         (copy_global_bitmap): Use optimizations_summary_obstack.
2413         (duplicate_node_data): Duplicate optimization summary only.
2414         (remove_node_data): Remove optimization summary only.
2415         (generate_summary): Do not analyze variables; do not compute
2416         module_statics_escape; do not prune solutions by it.
2417         (read_write_all_from_decl): Fix typos in comments.
2418         (propagate): Doscover readonly and nonaddressable first;
2419         update for new datastructures; share global bitmaps.
2420         * ipa-reference.h (ipa_reference_get_read_global,
2421         ipa_reference_get_written_global): Remove.
2422         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2423         * Makefile.in: Remove ipa-refereference from GT files.
2424
2425 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2426
2427         PR debug/44112
2428         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2429         for all SYMBOL_REF_DECLs.
2430
2431 2010-05-14  Jan Hubicka  <jh@suse.cz>
2432
2433         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2434         (varpool_all_refs_explicit_p): New inline function.
2435         * ipa-reference.c: Update comment.
2436         (module_statics_written): Remove.
2437         (get_static_decl): Remove.
2438         (ipa_init): Do not initialize module_statics_written.
2439         (analyze_function): Likewise.
2440         (generate_summary): Likewise; do not compute module_statics_readonly
2441         and do not update variable flags.
2442         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2443         * ipa.c: Inlucde flags.h
2444         (cgraph_local_node_p): New.
2445         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2446         promote functions to local.
2447         (ipa_discover_readonly_nonaddressable_vars): New function.
2448         (function_and_variable_visibility): Use cgraph_local_node_p.
2449         * varpool.c (varpool_finalize_decl): Set force_output for
2450         DECL_PRESERVE_P vars.
2451
2452 2010-05-14  Jan Hubicka  <jh@suse.cz>
2453
2454         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2455
2456 2010-05-14  Richard Guenther  <rguenther@suse.de>
2457
2458         PR tree-optimization/44119
2459         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2460         a PHI node necessary.
2461
2462 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2463
2464         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2465
2466 2010-05-14  Jason Merrill  <jason@redhat.com>
2467
2468         PR c++/44127
2469         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2470         (gimple_call_set_nothrow): New.
2471         * gimple.c (gimple_build_call_from_tree): Call it.
2472         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2473
2474         PR c++/44127
2475         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2476         * gimple.h: Declare it.
2477         * gimple.c (gimple_build_eh_filter): No ops.
2478
2479 2010-05-14  Jan Hubicka  <jh@suse.cz>
2480
2481         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2482         nodes already in queue.
2483         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2484         re-enqueueing node.
2485
2486 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2487
2488         PR debug/44136
2489         * cfgexpand.c (expand_debug_expr): If non-memory op0
2490         has BLKmode, return NULL.
2491
2492 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2493
2494         * config.gcc: Add support for --with-cpu option for bdver1.
2495         * config/i386/i386.h (TARGET_BDVER1): New macro.
2496         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2497         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2498         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2499         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2500         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2501         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2502         (processor_type): Add PROCESSOR_BDVER1.
2503         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2504         processor_type in config/i386/i386.h.
2505         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2506         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2507         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2508         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2509         to emit packed xor instead of packed double/packed integer
2510         xor for SSE and AVX when moving a zero value.
2511         * config/i386/sse.md: Add check for
2512         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2513         movapd/movdqa for SSE and AVX.
2514         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2515         single logical operations i.e and, or and xor instead of packed double
2516         logical operations for SSE and AVX.
2517         * config/i386/i386-c.c (ix86_target_macros_internal):
2518         Add PROCESSOR_BDVER1.
2519         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2520         (has_fma4, has_xop): New.
2521         * config/i386/i386.c (bdver1_cost): New variable.
2522         (m_BDVER1): New macro.
2523         (m_AMD_MULTIPLE): Add m_BDVER1.
2524         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2525         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2526         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2527         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2528         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2529         x86_tune_sse_partial_reg_dependency,
2530         x86_tune_sse_unaligned_load_optimal,
2531         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2532         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2533         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2534         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2535         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2536         Enable/disable for bdver1.
2537         (processor_target_table): Add bdver1_cost.
2538         (cpu_names): Add bdver1.
2539         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2540          processor_alias_table.
2541         (ix86_expand_vector_move_misalign): Change.
2542         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2543         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2544         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2545         of movupd/movdqu for SSE and AVX.
2546         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2547         (ix86_tune_adjust_cost): Add code for bdver1.
2548         (standard_sse_constant_opcode): Add check for
2549         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2550         of packed double xor for SSE and AVX.
2551
2552 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2553
2554         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2555         result to unsigned.
2556
2557 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2558
2559         * toplev.c (default_debug_hooks): Remove this variable.
2560         (process_options): Remove assignments to default_debug_hooks.
2561
2562 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2563
2564         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2565         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2566         * langhooks.h (struct lang_hooks_for_decls): Removed field
2567         fold_obj_type_ref.
2568         * tree.c (free_lang_data): Remove assignment to
2569         lang_hooks.fold_obj_type_ref.
2570         * tree.def (OBJ_TYPE_REF): Update comment.
2571
2572 2010-05-14  Richard Guenther  <rguenther@suse.de>
2573
2574         PR tree-optimization/44124
2575         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2576
2577 2010-05-14  Alan Modra  <amodra@gmail.com>
2578
2579         PR target/44075
2580         * config/rs6000/rs6000.c (struct machine_function): Reorder
2581         fields for better packing.  Add lr_save_state.
2582         (rs6000_ra_ever_killed): Return lr_save_state if set.
2583         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2584
2585 2010-05-13  Jan Hubicka  <jh@suse.cz>
2586
2587         * varpool.c (decide_is_variable_needed): Drop code checking
2588         TREE_SYMBOL_REFERENCED.
2589
2590 2010-05-13  Jan Hubicka  <jh@suse.cz>
2591
2592         * final.c (output_addr_const): Do not call mark_decl_referenced.
2593         * cgraphunit.c (process_function_and_variable_attributes): Use
2594         mark_needed_node dirrectly.
2595         (assemble_thunk): Do not call mark_decl_referenced.
2596
2597 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2598
2599         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2600
2601 2010-05-13  Jeff Law  <law@redhat.com>
2602
2603         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2604         from...
2605         (print_conflicts): Call print_allocno_conflicts.
2606
2607 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2608
2609         PR debug/44104
2610         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2611         if it is NULL.
2612
2613 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2614
2615         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2616         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2617         * config/i386/t-mingw-w32: New.
2618         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2619
2620 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2621
2622         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2623         gimple-fold.c).
2624         * gimple-fold.c (get_base_binfo_for_type): New function.
2625         (gimple_get_relevant_ref_binfo): Likewise.
2626         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2627         (gimple_fold_obj_type_ref): Likewise.
2628         (fold_gimple_call): Simplify condition for folding virtual calls
2629         and call gimple_fold_obj_type_ref.
2630         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2631         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2632
2633 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2634
2635         * config/rs6000/rs6000-protos.h
2636         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2637         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2638         (rs6000_debug_mode_dependent_address)
2639         (rs6000_mode_dependent_address_ptr): Likewise.
2640
2641 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2642
2643         PR debug/43983
2644         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2645         by SRA.
2646         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2647         * tree-sra.c (create_access_replacement): Call unshare_expr before
2648         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2649         * dwarf2out.c: Include tree-flow.h.
2650         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2651         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2652         Handle DW_OP_bit_piece.
2653         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2654         construct_piece_list, adjust_piece_list): New functions.
2655         (add_var_loc_to_decl): Handle SRA optimized variables.
2656         Adjust for var_loc_note to loc field renaming.
2657         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2658         in VAR_LOCATION note.
2659         (new_loc_descr_op_bit_piece): New function.
2660         (dw_sra_loc_expr): New function.
2661         (dw_loc_list): Use it.  Don't handle the last range after the
2662         loop, handle it inside of the loop.  Adjust for var_loc_note
2663         to loc field renaming.
2664         (add_location_or_const_value_attribute): Only special case
2665         single entry loc lists if loc is NOTE_P.  Adjust for
2666         var_loc_note to loc field renaming.
2667         (dwarf2out_var_location): Don't set newloc->var_loc_note
2668         and newloc->next here.
2669
2670 2010-05-12  Jan Hubicka  <jh@suse.cz>
2671
2672         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2673         flag.
2674         * cgraph.h (cgraph_only_called_directly_p,
2675         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2676         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2677         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2678         (assemble
2679         * ipa.c (cgraph_remove_unreachable_nodes): Use
2680         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2681         flags.
2682         * tree-inline.c (copy_bb): Check address_taken flag.
2683         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2684         externally_visible flag.
2685
2686 2010-05-12  Jason Merrill  <jason@redhat.com>
2687
2688         PR bootstrap/44048
2689         PR target/44099
2690         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2691         * sdbout.c (plain_type_1): Likewise.
2692         * dwarf2out.c (is_base_type): Likewise.
2693         (gen_type_die_with_usage): Likewise.  Generate
2694         DW_TAG_unspecified_type for any LANG_TYPE.
2695
2696 2010-05-12  Jan Hubicka  <jh@suse.cz>
2697
2698         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2699         indrect edges too.
2700         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2701         (cgraph_clone_edge): Update.
2702         (cgraph_node_remove_callees): Remove indirect calls too.
2703         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2704         (cgraph_create_indirect_edge): Update prototype.
2705         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2706         is_proper_for_analysis.
2707         (add_new_function, visited_nodes, function_insertion_hook_holder,
2708         get_local_reference_vars_info, mark_address_taken, mark_address,
2709         mark_load, mark_store, check_asm_memory_clobber, check_call,
2710         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2711         (ipa_init): Do not initialize visited_nodes;
2712         function_insertion_hook_holder.
2713         (analyze_variable): Rewrite.
2714         (analyze_function): Rewrite.
2715         (copy_local_bitmap): Remove.
2716         (duplicate_node_dat): Do not duplicate local info.
2717         (generate_summary): Simplify to only walk cgraph.
2718         (write_node_summary_p, ipa_reference_write_summary,
2719         ipa_reference_read_summary): Remove.
2720         (propagate): Do not remove function insertion;
2721         generate summary.
2722         (pass_ipa_reference): NULLify summary handling fields.
2723         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2724         (input_edge): Input ecf_flags.
2725         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2726         (update_indirect_edges_after_inlining): Ignore edges with unknown
2727         param.
2728
2729 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2730
2731         * implicit-zee.c: New file.
2732         * tree-pass.h (pass_implicit_zee): Declare.
2733         * passes.c (init_optimization_passes): Add zee pass.
2734         * common.opt (fzee): New flag.
2735         * timevar.def (TV_ZEE): Define.
2736         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2737         and beyond.
2738         * Makefile.in (implicit-zee.o): Add new build file.
2739
2740 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2741             Nathan Froyd  <froydnj@codesourcery.com>
2742
2743         * c-common.c (sync_resolve_params): Remove write-only variable.
2744
2745 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2746
2747         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2748         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2749         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2750         * targhooks.c (default_mode_dependent_address_p): New function.
2751         * targhooks.h (default_mode_dependent_address_p): Declare function.
2752         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2753         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2754         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2755         target hook. Change return type to bool.
2756         * recog.h (mode_dependent_address_p): Change return type to bool.
2757
2758 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2759             Nathan Froyd  <froydnj@codesourcery.com>
2760
2761         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2762         build_function_type_2, build_function_type_3): Remove.
2763         (mudflap_init): Use build_function_type_list.
2764
2765 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2766             Nathan Froyd  <froydnj@codesourcery.com>
2767
2768         * coverage.c (build_fn_info_value): Call build_constructor instead of
2769         build_constructor_from_list.
2770         (build_ctr_info_value): Likewise.
2771         (build_gcov_info): Likewise.
2772
2773 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2774
2775         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2776         resultant constructor.
2777         (build_constructor_single): Don't set TREE_CONSTANT.
2778         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2779
2780 2010-05-12  Jan Hubicka  <jh@suse.cz>
2781
2782         * cgraph.h (struct varpool_node): Add aux.
2783         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2784         * varpool.c (varpool_remove_node): Do not remove initializer.
2785         (varpool_reset_queue): Export.
2786         (varpool_finalize_decl): Volatile vars are forced to be output.
2787         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2788         replaced decl.
2789         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2790         process_references, varpool_can_remove_if_no_refs): New functions.
2791         (cgraph_remove_unreachable_nodes): Handle variables too.
2792
2793 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2794
2795         PR target/44088
2796         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2797
2798 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2799
2800         PR middle-end/44085
2801         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2802         change value of ORT_TASK.
2803         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2804         (omp_notice_threadprivate_variable): New function.
2805         (omp_notice_variable): Call it for threadprivate variables.
2806         If enclosing ctx is a task, print enclosing task rather than
2807         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2808         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2809         if task has untied clause.
2810
2811         PR debug/42278
2812         * dwarf2out.c (base_type_die): Don't add name attribute here.
2813         (modified_type_die): Instead of sizetype use
2814         its underlying original type.  If a DW_TAG_base_type doesn't
2815         have name added, add __unknown__.
2816         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2817         always call force_type_die instead.
2818
2819 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2820
2821         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2822         for __stack_chk_guard.
2823
2824 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2825
2826         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2827         don't call start_source_file debug hook here...
2828         (finish_options): ... but here, after outputting predefined and
2829         command line defines and undefs.
2830
2831         PR middle-end/44071
2832         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2833         no fallthru edge.
2834         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2835         optimizing away empty bb with no successors, move over its
2836         footer chain to fallthru predecessor.
2837         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2838         (rtl_split_edge): For asm goto call patch_jump_insn even if
2839         splitting fallthru edge.
2840
2841         PR c++/44059
2842         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2843         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2844         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2845         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2846         on DW.ref.* decls.
2847
2848         PR c++/44062
2849         * c-parser.c (c_parser_expression): Mark LHS of a comma
2850         expression as read if it is a decl, handled component or
2851         COMPOUND_EXPR with that on the RHS.
2852         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2853         if it is a decl or handled component.
2854
2855 2010-05-11  Jan Hubicka  <jh@suse.cz>
2856
2857         * lto-symtab.c (lto_symtab_free): New function.
2858         * lto-streamer.h (lto_symtab_free): Declare.
2859
2860 2010-05-11  Jan Hubicka  <jh@suse.cz>
2861
2862         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2863         that if function is needed it is reachable.
2864         (lto_output_node): See if it the function is reachable or referenced.
2865         (output_cgraph): Update call of lto_output_node.
2866         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2867
2868 2010-05-11  Jan Hubicka  <jh@suse.cz>
2869
2870         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2871         Mark as used.
2872
2873 2010-05-11  Jan Hubicka  <jh@suse.cz>
2874
2875         PR tree-optimize/44063
2876         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2877         queue.
2878         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2879         limits.
2880         (estimate_function_body_sizes): Compute sizes even when disregarding.
2881
2882 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2883
2884         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2885
2886 2010-05-11  Jan Hubicka  <jh@suse.cz>
2887
2888         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2889         into every boundary.
2890
2891 2010-05-11  Jan Hubicka  <jh@suse.cz>
2892
2893         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2894
2895 2010-05-11  Jan Hubicka  <jh@suse.cz>
2896
2897         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2898         lto_streamer_cache_delete): Put nodes into heap.
2899         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2900         heap.
2901
2902 2010-05-11  Jan Hubicka  <jh@suse.cz>
2903
2904         * cgraphbuild.c (cgraph_rebuild_references): New.
2905         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2906         out extern inlines.
2907         * cgraph.h (cgraph_rebuild_references): Declare.
2908         * tree-inline.c (tree_function_versioning): Use it.
2909         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2910
2911 2010-05-11  Jan Hubicka  <jh@suse.cz>
2912
2913         * cgraph.c: Include ipa-utils.h
2914         (cgraph_create_virtual_clone): Update references.
2915         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2916
2917 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2918
2919         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2920         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2921         cache size.
2922
2923 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2924
2925         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2926
2927 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2928
2929         * gcc.c (execute): For -### don't quote arguments that
2930         contain just alphanumerics and _/-. characters.
2931         * doc/invoke.texi: Document that change for -###.
2932
2933         PR debug/44023
2934         * df-problems.c (struct dead_debug): Add to_rescan field.
2935         (dead_debug_init): Clear to_rescan field.
2936         (dead_debug_finish): Rescan all debug insns in to_rescan
2937         bitmap and free the bitmap.
2938         (dead_debug_insert_before): Instead of rescanning debug insns
2939         immediately queue their rescanning until dead_debug_finish.
2940         (df_note_bb_compute): After dead_debug_add do continue instead
2941         of break.
2942
2943 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2944
2945         PR debug/44028
2946         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2947         clear also INSN_REG_USE_LIST.
2948
2949 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2950
2951         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2952
2953 2010-05-10  Jan Hubicka  <jh@suse.cz>
2954
2955         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2956         commited change.
2957
2958 2010-05-10  Jan Hubicka  <jh@suse.cz>
2959
2960         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2961         Allocate encoders.
2962         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2963         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2964         (lto_streamer_cache_create): Init alloc pool.
2965         (lto_streamer_cache_delete): Free alloc pool.
2966         * lto-streamer.h: Include alloc pool.
2967         (lto_streamer_cache_d): Use alloc pool.
2968         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2969
2970 2010-05-10  Jan Hubicka  <jh@suse.cz>
2971
2972         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2973         * cgraphbuild.c: Include except.h
2974         (record_type_list, record_eh_tables): New function.
2975         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2976
2977 2010-05-10  Jan Hubicka  <jh@suse.cz>
2978
2979         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2980         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2981         rather than unused.
2982
2983 2010-05-10  Michael Matz  <matz@suse.de>
2984
2985         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2986         (can_reassociate_p): Use FLOAT_TYPE_P.
2987         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2988         (vect_force_simple_reduction): ... this.
2989         * tree-parloops.c (gather_scalar_reductions): Use
2990         vect_force_simple_reduction.
2991         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2992         vect_is_simple_reduction, add modify argument, if true rewrite
2993         "a-b" into "a+(-b)".
2994         (vect_is_simple_reduction, vect_force_simple_reduction): New
2995         functions.
2996         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2997
2998 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2999             Vladimir Makarov  <vmakarov@redhat.com>
3000
3001         PR rtl-optimization/44012
3002         * ira-build.c (remove_unnecessary_allocnos): Nullify
3003         regno_allocno_map of the removed allocno.
3004
3005 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3006
3007         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
3008         to /dev/null.
3009         * configure: Regenerate.
3010
3011 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3012
3013         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
3014         unused.
3015         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
3016         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
3017         support in Sun ld.
3018         * configure: Regenerate.
3019
3020 2010-05-10  Richard Guenther  <rguenther@suse.de>
3021
3022         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
3023         marked if the entry identifier is marked.
3024
3025 2010-05-10  Richard Guenther  <rguenther@suse.de>
3026
3027         * c-common.c (struct c_common_attributes): Add fnspec attribute.
3028         (handle_fnspec_attribute): New function.
3029         * gimple.h (gimple_call_return_flags): Declare.
3030         (gimple_call_arg_flags): Likewise.
3031         * gimple.c (gimple_call_arg_flags): New function.
3032         (gimple_call_return_flags): Likewise.
3033         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
3034         New argument flags.
3035         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
3036         return value flags.
3037         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
3038         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
3039         main work to ...
3040         (make_heapvar_for): ... this new function.
3041         (handle_rhs_call): Handle fnspec attribute argument specifiers.
3042         (handle_lhs_call): Likewise.
3043         (find_func_aliases): Adjust.
3044
3045 2010-05-10  Richard Guenther  <rguenther@suse.de>
3046
3047         PR tree-optimization/44050
3048         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3049
3050 2010-05-10  Wei Guozhi  <carrot@google.com>
3051
3052         PR target/42879
3053         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
3054
3055 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3056
3057         PR c/10676
3058         * c-typeck.c (lookup_field): Take a type directly.  Update
3059         recursive calls.
3060         (build_component_ref): Update call to lookup_field.
3061         (set_init_label): Use lookup_field to find initialized field.
3062         Handle returned list of fields like a sequence of designators.
3063
3064 2010-05-09  Richard Guenther  <rguenther@suse.de>
3065
3066         PR middle-end/44024
3067         * fold-const.c (tree_single_nonzero_warnv_p): Properly
3068         handle &FUNCTION_DECL.
3069
3070 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3071
3072         PR c/4784
3073         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
3074         structures and unions recursively.
3075         (detect_field_duplicates): Move duplicate detection with a hash to
3076         detect_field_duplicates_hash.  Always use a hash if anonymous
3077         structures or unions are present.
3078         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
3079         give errors.
3080
3081 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3082
3083         PR target/44046
3084         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
3085         detect Atom, Core 2 and Core i7.
3086
3087 2010-05-09  Richard Guenther  <rguenther@suse.de>
3088
3089         * gcc.c (store_arg): Handle temporary file deletion for
3090         joined arguments.
3091
3092 2010-05-09  Richard Guenther  <rguenther@suse.de>
3093
3094         PR middle-end/44043
3095         * ipa-inline.c (estimate_function_body_sizes): Return after
3096         disregarding inline limits.
3097
3098 2010-05-09  Richard Guenther  <rguenther@suse.de>
3099
3100         * gcc.c (store_arg): Revert last change.
3101
3102 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
3103
3104         PR middle-end/28685
3105         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
3106         (optimize_ops_list): Call it.
3107
3108 2010-05-08  Richard Guenther  <rguenther@suse.de>
3109
3110         PR tree-optimization/44030
3111         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
3112         NECESSARY flag if we propagate from a inserted expression.
3113
3114 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3115
3116         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
3117         domain types as equal if they are both PLACEHOLDER_EXPRs.
3118
3119 2010-05-08  Richard Guenther  <rguenther@suse.de>
3120
3121         * lto-wrapper.c (run_gcc): Remove linker output from
3122         command line for LTRANS invocation.
3123
3124 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3125
3126         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3127         lto-macho as lto_binary_reader.
3128         * target.h (struct gcc_target): New hooks lto_start and lto_end.
3129         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
3130         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
3131         in lto_start and lto_end calls.
3132         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
3133         magic numbers.
3134         (scan_prog_file): Update is_elf_or_coff call.
3135         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3136
3137         * collect2.c (main): Fix enum comparison.
3138
3139         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3140         Add prototypes.
3141         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3142         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
3143         and TARGET_ASM_LTO_END.
3144         * darwin.c: Include obstack.h and lto-streamer.h.
3145         (lto_section_names_offset, lto_section_names_obstack,
3146         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
3147         global variables.
3148         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
3149         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
3150         to a temporary file.
3151         (darwin_asm_lto_end): New function.  Restore asm_out_file.
3152         (darwin_asm_named_section): For LTO sections, replace the name with
3153         the offset of the section name in a string table, and build this
3154         table.
3155         (darwin_file_start): Initialize global vars for LTO support.
3156         (darwin_file_end): If output to asm_out_file was redirected, append it
3157         to the proper asm_out_file here.  Add the section names section.
3158
3159 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3160
3161         * c-pragma.c (pending_weak_d, pending_weak): New.
3162         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
3163         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
3164         handle_pragma_weak): Update the uses of pending_weaks.
3165
3166 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3167
3168         PR documentation/44016
3169         * doc/standards.texi (Standards): Link to unversioned
3170         cxx0x_status.html page.
3171
3172 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
3173
3174         PR target/43708
3175         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
3176         in addition to TREE_USED, to avoid "set but unused" warnings.
3177
3178 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3179
3180         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3181         (is_loop_prefetching_profitable): Do not insert prefetches
3182         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3183         times the prefetch ahead distance.
3184
3185 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3186
3187         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3188         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3189         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3190         the unroll_factor.
3191
3192 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3193
3194         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3195         a diagnostic info when the insn-to-mem ratio is too small.
3196
3197 2010-05-07  Richard Guenther <rguenther@suse.de>
3198
3199         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3200         the linker plugin.
3201         (store_arg): Queue temp_filename for deletion instead of
3202         the whole argument.
3203
3204 2010-05-07  Richard Guenther  <rguenther@suse.de>
3205
3206         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3207         (run_gcc): Handle LTRANS phase invocation.
3208         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3209
3210 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
3211
3212         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3213         this is also meaningful on PARM_DECLs and RESULT_DECLs.
3214
3215 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3216
3217         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3218
3219 2010-05-07  Richard Guenther  <rguenther@suse.de>
3220
3221         PR tree-optimization/44020
3222         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3223         code when PRE is not yet initialized.
3224
3225 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3226
3227         * config/mips/dbxmdebug.h: Remove.
3228         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3229
3230 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3231
3232         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3233         with null pointer and also warn about ordered comparison of zero with
3234         pointer if -Wextra.
3235
3236 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3237
3238         * graphite-blocking.c
3239         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3240         * graphite-clast-to-gimple.c
3241         (clast_to_gcc_expression): Same.
3242         (precision_for_value): Same.
3243         (precision_for_interval): Same.
3244         (gcc_type_for_interval): Same.
3245         (graphite_create_new_guard): Same.
3246         (compute_bounds_for_level): Same.
3247         (graphite_create_new_loop_guard): Same.
3248         * graphite-interchange.c
3249         (build_linearized_memory_access): Same.
3250         (pdr_stride_in_loop): Same.
3251         (memory_strides_in_loop_1): Same.
3252         (memory_strides_in_loop): Same.
3253         (extend_scattering): Same.
3254         (psct_scattering_dim_for_loop_depth): Same.
3255         (pbb_number_of_iterations): Same.
3256         * graphite-poly.h
3257         (debug_iteration_domains): Same.
3258         * graphite-ppl.c
3259         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3260         (ppl_set_inhomogeneous_gmp): Same.
3261         (ppl_strip_loop): Same.
3262         (ppl_lexico_compare_linear_expressions): Same.
3263         (ppl_read_polyhedron_matrix): Same.
3264         (ppl_max_for_le_pointset): Same.
3265         * graphite-ppl.h
3266         (ppl_read_polyhedron_matrix): Same.
3267         (tree_int_to_gmp): Same.
3268         (gmp_cst_to_tree): Same.
3269         (ppl_set_inhomogeneous): Same.
3270         (ppl_set_inhomogeneous_tree): Same.
3271         (ppl_set_coef): Same.
3272         (ppl_set_coef_tree): Same.
3273         * graphite-sese-to-poly.c
3274         (build_pbb_scattering_polyhedrons): Same.
3275         (build_scop_scattering): Same.
3276         (scan_tree_for_params_right_scev): Same.
3277         (scan_tree_for_params): Same.
3278         (find_params_in_bb): Same.
3279         (find_scop_parameters): Same.
3280         (add_upper_bounds_from_estimated_nit): Same.
3281         (build_loop_iteration_domains): Same.
3282         (add_condition_to_domain): Same.
3283         (pdr_add_memory_accesses): Same.
3284
3285 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3286
3287         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3288         CLooG's value_* macros to their respective mpz_* counterparts.
3289         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3290         (graphite_create_new_loop_guard): Same.
3291         * graphite-interchange.c (build_linearized_memory_access): Same.
3292         (pdr_stride_in_loop): Same.
3293         (memory_strides_in_loop_1): Same.
3294         (1st_interchange_profitable_p): Same.
3295         * graphite-poly.c (extend_scattering): Same.
3296         (psct_scattering_dim_for_loop_depth): Same.
3297         (pbb_number_of_iterations): Same.
3298         (pbb_number_of_iterations_at_time): Same.
3299         * graphite-poly.h (new_1st_loop): Same.
3300         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3301         (oppose_constraint): Same.
3302         (insert_constraint_into_matrix): Same.
3303         (ppl_set_inhomogeneous_gmp): Same.
3304         (ppl_set_coef_gmp): Same.
3305         (ppl_strip_loop): Same.
3306         (ppl_lexico_compare_linear_expressions): Same.
3307         (ppl_max_for_le_pointset): Same.
3308         (ppl_min_for_le_pointset): Same.
3309         (ppl_build_realtion): Same.
3310         * graphite-ppl.h (gmp_cst_to_tree): Same.
3311         (ppl_set_inhomogeneous): Same.
3312         (ppl_set_inhomogeneous_tree): Same.
3313         (ppl_set_coef): Same.
3314         (ppl_set_coef_tree): Same.
3315         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3316         (build_scop_scattering): Same.
3317         (add_value_to_dim): Same.
3318         (scan_tree_for_params_right_scev): Same.
3319         (scan_tree_for_params_int): Same.
3320         (scan_tree_for_params): Same.
3321         (find_params_in_bb): Same.
3322         (find_scop_parameters): Same.
3323         (add_upper_bounds_from_estimated_nit): Same.
3324         (build_loop_iteration_domains): Same.
3325         (create_linear_expr_from_tree): Same.
3326         (add_condition_to_domain): Same.
3327         (pdr_add_memory_accesses): Same.
3328
3329 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3330             Jason Merrill  <jason@redhat.com>
3331
3332         * c-common.c (c_common_reswords): Add nullptr.
3333         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3334         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3335         (gen_type_die_with_usage): Likewise.
3336         * dbxout.c (dbxout_type): Likewise.
3337         * sdbout.c (plain_type_1): Likewise.
3338
3339 2010-05-06  Jason Merrill  <jason@redhat.com>
3340
3341         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3342         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3343         ret appropriately.
3344         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3345
3346         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3347         stripping WITH_SIZE_EXPR.
3348         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3349         change.
3350
3351 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3352
3353         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3354         list of obsolete configurations.
3355         Disabled check for obsolete configurations.
3356         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3357         Removed support for previous versions.
3358         * config/mips/iris.h: Removed.
3359         * config/mips/iris5.h: Removed.
3360         * config/mips/iris6.h: Merged old iris.h contents.
3361         (TARGET_IRIX): Removed.
3362         (DRIVER_SELF_SPECS): Removed mabi=32.
3363         (IDENT_ASM_OP): Removed undef.
3364         (STARTFILE_SPEC): Removed mabi=32.
3365         (ENDFILE_SPEC): Likewise.
3366         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3367         (MACHINE_TYPE): Update for IRIX 6.5.
3368         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3369         TARGET_IRIX by TARGET_IRIX6.
3370         (mips_file_start): Likewise.
3371         (mips_output_external): Remove IRIX 5/6 O32 support.
3372         (mips_output_function_prologue): Likewise.
3373         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3374         TARGET_IRIX6.
3375         (TARGET_CPU_CPP_BUILTINS): Likewise.
3376         (TARGET_IRIX): Removed.
3377         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3378         (MULTILIB_DIRNAMES): Removed 32.
3379         (MULTILIB_OSDIRNAMES): Removed ../lib.
3380         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3381         (Specific, mips-sgi-irix5): Document removal.
3382         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3383         Remove references to older IRIX 6 releases and the O32 ABI.
3384
3385 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3386
3387         PR bootstrap/43994
3388         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3389         instead of DF_REF_REAL_REG.
3390
3391 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3392
3393         PR target/43888
3394         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3395         handling to still return true for x64 targets.
3396
3397 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3398
3399         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3400
3401 2010-05-06  Jan Hubicka  <jh@suse.cz>
3402
3403         PR tree-optimization/43791
3404         * ipa-inline.c (update_caller_keys): Remove bogus
3405         disregard_inline_limits check.
3406
3407 2010-05-06  Michael Matz  <matz@suse.de>
3408
3409         PR tree-optimization/43984
3410         * tree-ssa-pre.c (inserted_phi_names): Remove.
3411         (inserted_exprs): Change to bitmap.
3412         (create_expression_by_pieces): Set bits, don't append to vector.
3413         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3414         (eliminate): Don't look at inserted_phi_names, remove deleted
3415         insns from inserted_exprs.
3416         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3417         (init_pre, fini_pre): Allocate and free bitmaps.
3418         (execute_pre): Insert insns on edges before elimination.
3419
3420 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3421
3422         * tree.c (initializer_zerop): Handle STRING_CST.
3423
3424 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3425
3426         PR 40989
3427         * doc/invoke.texi (Wimplicit): Document as C only.
3428         * opts.c (common_handle_option): Add argument kind.
3429         (handle_option): Rename as read_cmdline_option. Factor out code to...
3430         (handle_option): ... here. New.
3431         (handle_options): Rename as read_cmdline_options.
3432         (decode_options): Update call.
3433         (set_option): Use option index instead of option pointer. Classify
3434         diagnostics correctly.
3435         (enable_warning_as_error): Call handle_option.
3436         * opts.h (set_option): Update declaration.
3437         (handle_option): Declare.
3438         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3439         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3440         * c-opts.c (set_Wimplicit): Delete.
3441         (c_family_lang_mask): New static constant.
3442         (c_common_handle_option): Add argument kind. Use handle_option
3443         instead of set_Wimplicit.
3444         (c_common_post_options): warn_implicit and warn_implicit_int
3445         are disabled by default.
3446         * c-common.c (warn_implicit): Do not define here.
3447         * c-common.h (warn_implicit): Do not declare here.
3448         (c_common_handle_option): Update declaration.
3449         * lto-opts.c (lto_reissue_options): Update call to set_option.
3450
3451 2010-05-06  Richard Guenther  <rguenther@suse.de>
3452
3453         PR tree-optimization/43571
3454         * domwalk.c (walk_dominator_tree): Walk the dominator
3455         sons in more optimal order.
3456
3457 2010-05-06  Richard Guenther  <rguenther@suse.de>
3458
3459         PR tree-optimization/43934
3460         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3461         (stmt_cost): Likewise.
3462         (extract_true_false_args_from_phi): New helper.
3463         (determine_max_movement): For PHI nodes verify we can hoist them
3464         and compute their cost.
3465         (determine_invariantness_stmt): Handle PHI nodes.
3466         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3467         if-converted form using COND_EXPRs.
3468         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3469         (tree_ssa_lim): Likewise.
3470         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3471         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3472
3473 2010-05-06  Richard Guenther  <rguenther@suse.de>
3474
3475         PR tree-optimization/43987
3476         * tree-ssa-structalias.c (could_have_pointers): For possibly
3477         address-taken variables force pointers to be recorded.
3478         (create_variable_info_for_1): Likewise.
3479         (push_fields_onto_fieldstack): Pass in wheter all fields
3480         must have pointers.
3481         (find_func_aliases): Query types instead of vars whether
3482         they contain pointers where appropriate.
3483
3484 2010-05-06  Jan Hubicka  <jh@suse.cz>
3485
3486         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3487         (record_reference, mark_address, mark_load, mark_store): Record
3488         references.
3489         (record_references_in_initializer): Update call of record_references.
3490         (rebuild_cgraph_edges): Remove all references before rebuiding.
3491         * cgraph.c (cgraph_create_node): Clear ref list.
3492         (cgraph_remove_node): Remove references.
3493         (dump_cgraph_node): Dump references.
3494         (cgraph_clone_node): Clone references.
3495         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3496         (struct cgraph_node, varpool_node): Add ref_lst.
3497         * ipa-ref.c: New file.
3498         * ipa-ref.h: New file.
3499         * ipa-ref-inline.h: New file.
3500         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3501         (referenced_from_other_partition_p): New function.
3502         (lto_output_varpool_node): Take set arugment; call
3503         referenced_from_other_partition.
3504         (lto_output_ref): New.
3505         (add_references): New.
3506         (output_refs): New.
3507         (output_cgraph): Compute boundary based on references; output refs.
3508         (output_varpool): Accept cgraph_node_set argument.
3509         (input_ref): New.
3510         (input_refs): New.
3511         (input_cgraph): Call input_refs.
3512         * lto-section-in.c (lto_section_name): Add refs.
3513         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3514         (ipa-ref.o): New file.
3515         * varpool.c (varpool_node): Clear ipa ref list.
3516         (varpool_remove_node): Remove references.
3517         (dump_varpool_node): Dump references.
3518         (varpool_assemble_decl): Only compile finalized ones.
3519         (varpool_extra_name_alias): Initialize ref list.
3520         * lto-streamer.c (lto-get_section_name): Add .refs section.
3521         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3522         (referenced_from_other_partition_p): Declared.
3523
3524 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3525
3526         PR tree-optimization/43901
3527         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3528         type is not NULL if it's transformation phase, and return
3529         FALSE if it's analysis.
3530         (vectorizable_conversion, vectorizable_operation,
3531         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3532
3533 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3534
3535         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3536         Delete.
3537         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3538         New define.
3539         * config/mips/mips-protos.h
3540         (mips_small_register_classes_for_mode_p): Delete prototype.
3541
3542 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3543
3544         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3545         * config/arm/arm.c (multiple_operation_profitable_p,
3546         compute_offset_order): New static functions.
3547         (load_multiple_sequence, store_multiple_sequence): Use them.
3548         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3549         memory offsets, not register numbers.
3550         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3551
3552 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3553
3554         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3555         (get_pending_sizes, put_pending_size, put_pending_sizes):
3556         Update the uses of pending_sizes.
3557         * c-decl.c (store_parm_decls): Likewise.
3558         * c-tree.h (struct c_arg_info): Likewise.
3559         * tree.h: Update the prototype for get_pending_sizes and
3560         put_pending_sizes.
3561
3562 2010-05-05  Jason Merrill  <jason@redhat.com>
3563
3564         PR debug/43370
3565         * c-common.c (handle_aligned_attribute): Respect
3566         ATTR_FLAG_TYPE_IN_PLACE.
3567
3568         PR testsuite/43758
3569         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3570         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3571         (TARGET_INITIALIZER): Use it.
3572         * c-common.c (attribute_takes_identifier_p): Call it.
3573         * c-common.h: Update prototype.
3574         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3575         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3576
3577 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3578
3579         PR debug/43950
3580         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3581         DW_ID_down_case for Fortran compilation units.
3582
3583 2010-05-05  Jan Hubicka  <jh@suse.cz>
3584
3585         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3586         handle aliases.
3587
3588 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3589
3590         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3591         a variable-sized RESULT_DECL.
3592
3593 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3594
3595         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3596
3597 2010-05-05  Jason Merrill  <jason@redhat.com>
3598
3599         PR c++/43787
3600         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3601         returns GS_OK.
3602         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3603
3604 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3605             Jakub Jelinek  <jakub@redhat.com>
3606
3607         PR debug/43478
3608         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3609         (dead_debug_init, dead_debug_finish): New functions.
3610         (dead_debug_add, dead_debug_insert_before): Likewise.
3611         (df_note_bb_compute): Initialize a dead_debug object, add dead
3612         debug uses to it, insert debug bind insns before death insns,
3613         reset debug insns that refer to pending uses at the end.
3614         * rtl.h (make_debug_expr_from_rtl): New prototype.
3615         * varasm.c (make_debug_expr_from_rtl): New function.
3616
3617 2010-05-05  Jan Hubicka  <jh@suse.cz>
3618
3619         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3620         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3621         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3622         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3623         lto_varpool_encoder_encode_initializer_p,
3624         lto_set_varpool_encoder_encode_initializer): New functions.
3625         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3626         call output_varpool.
3627         (input_varpool_node): Do not always set analyzed.
3628         (input_cgraph_1): Return vector of cgraph nodes.
3629         (input_varpool_1): Return vector of varpools.
3630         (input_cgraph): Free the vectors.
3631         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3632         output only initializers needed.
3633         (lto_output): Only call output_cgraph.
3634         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3635         * lto-section-out.c (lto_new_out_decl_state): Initialize
3636         state->varpool_node_encoder.
3637         * lto-streamer.h (lto_varpool_encoder_d): New.
3638         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3639         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3640         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3641         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3642         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3643         Declare.
3644         (output_varpool, input_varpool): Remove declarations.
3645
3646 2010-05-05  Jan Hubicka  <jh@suse.cz>
3647
3648         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3649         with body can prevail.
3650
3651 2010-05-05  Jan Hubicka  <jh@suse.cz>
3652
3653         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3654         size.
3655
3656 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3657
3658         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3659
3660         * gengtype.h (erro_at_line): Constify pos argument.
3661
3662         * gengtype.c: Include hashtab.h.
3663         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3664         (error_at_line): Constify pos argument.
3665         (do_typedef): Initialize p->opt field.
3666         (get_file_gtfilename): Fix comment typo.
3667         (struct walk_type_data): Constify line field.
3668         (get_output_file_for_structure): New function.
3669         (write_local_func_for_structure): Constify orig_s argument.
3670         Use get_output_file_for_structure.
3671         (write_func_for_structure): Use get_output_file_for_structure.
3672         (INDENT): New define.
3673         (dump_pair, dump_type, dump_type_list, dump_typekind)
3674         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3675         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3676         functions.
3677         (seen_types): New variable.
3678         (main): New variable do_dump.  Process "-d" command line option.
3679         Call dump_everything if dump requested.
3680
3681 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3682
3683         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3684         in a temporary instead of invoking the macro multiple times.
3685         (track_expr_p): Likewise.
3686
3687 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3688
3689         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3690         per new semantics.
3691         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3692         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3693         conditions for printing notes.
3694         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3695         true, update documentation.
3696         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3697
3698 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3699
3700         PR c/43981
3701         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3702         on dimen.
3703
3704 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3705
3706         PR target/43799
3707         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3708         (*sse_prologue_save_insn1): Likewise.
3709         (SSE prologue save splitter): Likewise.
3710
3711 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3712
3713         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3714         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3715         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3716         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3717         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3718         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3719         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3720
3721 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3722
3723         * tree-sra.c (build_access_from_expr_1): The first parameter type
3724         changed to simple tree.
3725         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3726         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3727         renamed as well.
3728         (build_accesses_from_assign): Removed all parameters except for a
3729         simple gimple statement.  Now returns a simple bool.
3730         (scan_function): All non-analysis parts moved to separate functions
3731         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3732         parameters and updated both callers.
3733         (sra_modify_expr): Removed parameter data.
3734         (sra_modify_function_body): New function.
3735         (perform_intra_sra): Call sra_modify_function_body to modify the
3736         function body.
3737         (replace_removed_params_ssa_names): Parameter data changed into
3738         adjustments vector.
3739         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3740         changed the parameter dont_convert to convert with the opposite
3741         meaning.
3742         (sra_ipa_modify_assign): Parameter data changed into adjustments
3743         vector, return value changed to bool.
3744         (ipa_sra_modify_function_body): New function.
3745         (sra_ipa_reset_debug_stmts): Updated a comment.
3746         (modify_function): Use ipa_sra_modify_function_body to modify function
3747         body.
3748
3749 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3750
3751         PR middle-end/43671
3752         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3753         (canon_true_dependence): Likewise.
3754         (write_dependence_p): Likewise.
3755
3756 2010-05-04  Jan Hubicka  <jh@suse.cz>
3757
3758         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3759         * cgraphbuild.c: Include ipa-utils.h
3760         (record_reference_ctx): New struct.
3761         (record_reference): Simplify to work on initializers; not statements.
3762         (mark_address, mark_load, mark_store): New.
3763         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3764         walk PHI nodes too.
3765         (record_references_in_initializer): Update use of record_reference.
3766         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3767         walk PHI nodes too.
3768
3769 2010-05-04  Jan Hubicka  <jh@suse.cz>
3770
3771         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3772         node will be removed anyway.
3773         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3774         relink aliases of node into prevailing node.
3775         * varpool.c (varpool_remove_node): Remove aliases properly;
3776         when removing node, remove all its aliases too; remove DECL_INITIAL
3777         of removed node; ggc_free the varpool node.
3778
3779 2010-05-04  Richard Guenther  <rguenther@suse.de>
3780
3781         PR tree-optimization/43879
3782         * tree-ssa-structalias.c (alias_get_name): Use
3783         DECL_ASSEMBLER_NAME if available.
3784         (create_function_info_for): Return the varinfo node.
3785         (ipa_pta_execute): Associate same-body aliases and extra names
3786         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3787
3788 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3789
3790         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3791
3792 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3793
3794         PR bootstrap/43964
3795         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3796         only if HONOR_REG_ALLOC_ORDER is not defined.
3797
3798 2010-05-04  Richard Guenther  <rguenther@suse.de>
3799
3800         PR tree-optimization/43949
3801         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3802         TRUNC_MOD_EXPR.
3803
3804 2010-04-26  Jason Merrill  <jason@redhat.com>
3805
3806         * c.opt (-fstrict-enums): New.
3807         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3808
3809 2010-05-03  David Ung <davidu@mips.com>
3810             James E. Wilson  <wilson@codesourcery.com>
3811
3812         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3813         emit the trap instruction before the divide for TUNE_74K.
3814
3815 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3816
3817         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3818         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3819         based on the above, for new target hook.
3820
3821         * hooks.c (hook_bool_mode_true): New generic hook.
3822         * hooks.h (hook_bool_mode_true): Add prototype.
3823
3824         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3825         target hook.
3826         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3827         target hook, set to hook_bool_mode_false.
3828         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3829         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3830         with targetm.small_register_classes_for_mode_p.
3831         (find_reusable_reload): Likewise.
3832         (combine_reloads): Likewise.
3833         * reload1.c (reload_as_needed): Likewise.
3834         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3835         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3836         dead_or_predicable): Likewise.
3837         * regmove.c (optimize_reg_copy_1): Likewise.
3838         * calls.c (prepare_call_address): Likewise.
3839         (precompute_register_parameters): Likewise.
3840
3841         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3842         hook definition.
3843         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3844         implementation of the hook that considers all register classes
3845         small except for SH64.
3846         (sh_override_options): Use the new hook.
3847         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3848         Add prototype.
3849
3850         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3851         hook definition.
3852         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3853         implementation of the hook that considers all register classes
3854         small for THUMB1.
3855         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3856         Add prototype.
3857
3858         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3859         hook definition.
3860         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3861         implementation of the hook that considers all register classes
3862         small for MIPS16.
3863         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3864         Add prototype.
3865
3866         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3867         hook definition.
3868         * config/m32c/m32c.h: Likewise.
3869         * config/pdp11/pdp11.h: Likewise.
3870         * config/avr/avr.h: Likewise.
3871         * config/xtensa/xtensa.h: Likewise.
3872         * config/m68hc11/m68hc11.h: Likewise.
3873         * config/mn10300/mn10300.h: Likewise.
3874         * config/mcore/mcore.h: Likewise.
3875         * config/h8300/h8300.h: Likewise.
3876         * config/bfin/bfin.h: Likewise.
3877
3878         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3879         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3880
3881 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3882
3883         * double-int.h (tree_to_double_int): Remove macro.
3884         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3885         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3886         (tree_to_double_int): New function.
3887         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3888         Move ...
3889         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3890
3891 2010-05-03  Richard Guenther  <rguenther@suse.de>
3892
3893         PR tree-optimization/43971
3894         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3895         constraints in the !flag_delete_null_pointer_checks case.
3896
3897 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3898
3899         PR debug/43972
3900         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3901         result mode matches original rtl mode.
3902
3903 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3904
3905         PR target/43888
3906         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3907
3908 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3909
3910         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3911         when processing flag options.
3912
3913 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3914
3915         * gcov-iov.c (main): Change format string placeholder
3916         from %#08x to 0x%08x.
3917         * genchecksum.c (dosum): Change format string placeholder
3918         from %#02x to 0x%02x.
3919
3920 2010-05-02  Richard Guenther  <rguenther@suse.de>
3921
3922         PR tree-optimization/43879
3923         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3924
3925 2010-05-02  Bruno Haible  <bruno@clisp.org>
3926
3927         * doc/extend.texi (Function Attributes): Fix a typo.
3928
3929 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3930
3931         Revert:
3932         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3933         placeholder from 0x%x to %#x.
3934         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3935         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3936         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3937         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3938         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3939         * config/i386/i386.c (ix86_target_string): Ditto.
3940         * config/i386/i386.c (output_pic_addr_const): Ditto.
3941         (print_operand): Ditto.
3942
3943 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3944
3945         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3946         placeholder from 0x%x to %#x.
3947         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3948         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3949         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3950         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3951         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3952         * optc-gen.awk: Ditto.
3953         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3954         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3955         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3956         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3957
3958 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3959
3960         * target.h (struct calls): Add function_value_regno_p field.
3961         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3962         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3963         * targhooks.c (default_function_value_regno_p): New function.
3964         * targhooks.h (default_function_value_regno_p): Declare function.
3965         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3966         * builtins.c. (apply_result_size): (Ditto.).
3967         * combine.c. (likely_spilled_retval_p): (Ditto.).
3968         * mode-switching.c. Include 'target.h'.
3969         (create_pre_exit): Use function_value_regno_p hook.
3970         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3971         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3972         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3973
3974         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3975         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3976         (ix86_function_value_regno_p): Declare as static, change argument
3977         type to const unsigned int.
3978         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3979
3980 2010-05-01  Richard Guenther  <rguenther@suse.de>
3981
3982         PR tree-optimization/43949
3983         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3984         types.
3985         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3986
3987 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3988
3989         * rtl.h (CONST_DOUBLE_P): Define.
3990         (rtx_to_double_int): Declare.
3991         * emit-rtl.c (rtx_to_double_int): New function.
3992         * dwarf2out.c (insert_double): New function.
3993         (loc_descriptor, add_const_value_attribute): Clean up, use
3994         rtx_to_double_int and insert_double functions.
3995
3996 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3997
3998         * doc/extend.texi (Inline): Add missing return keyword to examples.
3999         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
4000         "command-line".
4001
4002 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4003
4004         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
4005         the variable part of the offset as well.  Use highest_pow2_factor for
4006         all alignment checks.
4007
4008 2010-04-30  Richard Guenther  <rguenther@suse.de>
4009
4010         PR tree-optimization/43879
4011         * tree-ssa-structalias.c (type_could_have_pointers): Functions
4012         can have pointers.
4013
4014 2010-04-30  Jan Hubicka  <jh@suse.cz>
4015
4016         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
4017         varpool.
4018         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
4019
4020 2010-04-30  Jan Hubicka  <jh@suse.cz>
4021
4022         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
4023         New.
4024         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
4025         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
4026         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
4027         cgraph_node_set_needs_ltrans_p): Remove.
4028
4029 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4030
4031         * sdbout.c: Include vec.h, do not include varray.h.
4032         (deferred_global_decls, sdbout_global_decl,
4033         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
4034         * toplev.c: Do not include varray.h.
4035         (dump_memory_report): Do not dump VARRAY statistics.
4036         * gengtype.c (open_base_file): Ignore varray.h.
4037         * Makefile.in: Update for abovementioned changes.
4038         Remove all traces of varray.c and varray.h.
4039         * varray.c: Remove file.
4040         * varray.h: Remove file.
4041
4042 2010-04-30  Jan Hubicka  <jh@suse.cz>
4043
4044         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
4045         references.
4046
4047 2010-04-30  Jan Hubicka  <jh@suse.cz>
4048
4049         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
4050         needed.
4051
4052 2010-04-30  Richard Guenther  <rguenther@suse.de>
4053
4054         * tree-ssa-structalias.c (get_constraint_for_1): Generate
4055         constraints for CONSTRUCTOR.
4056
4057 2010-04-30  Richard Guenther  <rguenther@suse.de>
4058
4059         PR lto/43946
4060         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
4061         first after all lowering passes.
4062
4063 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4064
4065         * toplev.c: Include varray.h for statistics dumping.
4066         * tree.h: Do not declare varray_head_tag.
4067         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
4068         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
4069         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
4070         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
4071         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
4072         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
4073         c-common.c, c-common.h, reg-stack.c, basic-block.h,
4074         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
4075         include varray.h.
4076         * Makefile.in: Update for abovementioned changes.
4077
4078 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
4079
4080         PR debug/43942
4081         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
4082
4083 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
4084
4085         * config/picochip/picochip.c (picochip_legitimize_address): Define.
4086         Use this function to do machine-specific conversion.
4087         (picochip_legitimize_reload_address): Likewise.
4088         (picochip_legitimate_address_p): Check valid base register only if
4089         strict.
4090         (picochip_check_conditional_copy): Check for modw only if opnd is
4091         register.
4092         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
4093         to call the function in c.
4094         * config/picochip/picochip-protos.h
4095         (picochip_legitimize_reload_address): Define.
4096         * config/picochip/picochip.md (supported_compare1): Define.
4097
4098 2010-04-30  Jan Hubicka  <jh@suse.cz>
4099
4100         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
4101         (cgraph_global_info): Remove inlined.
4102         (LTO_cgraph_tag_names): Remove.
4103         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
4104         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
4105         simplify cgraph tags and document.
4106         (lto_output_node): Use only LTO_cgraph_unavail_node and
4107         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
4108         for_functions_valid, global info, process and output flags.
4109         (input_overwrite_node): Initialize estimated stack size and
4110         estimated growth.  Do not read flags we no longer store.
4111         (input_node): Likewise do not read info no longer stored.
4112         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
4113         flag.
4114
4115 2010-04-30  Richard Guenther  <rguenther@suse.de>
4116
4117         PR tree-optimization/43879
4118         * tree-ssa-structalias.c (get_constraint_for_1): Properly
4119         handle non-zero initializers.
4120
4121 2010-04-30  Richard Guenther  <rguenther@suse.de>
4122
4123         * builtins.c (fold_builtin_1): Delete free (0).
4124
4125 2010-04-29  Jan Hubicka  <jh@suse.cz>
4126
4127         * gengtype.c (open_base_files): Add lto-streamer.h
4128         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
4129         (pass_ipa_cp): GGC collect.
4130         * toplev. (compile_file): Do not output symbols.
4131         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
4132         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
4133         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
4134         * lto-section-in.c: Include ggc.h
4135         (lto_new_in_decl_state): Alloc in GGC.
4136         (lto_delete_in_decl_state): Likewise.
4137         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
4138         Collect.
4139
4140 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4141
4142         PR target/42895
4143         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
4144         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
4145         (HONOR_REG_ALLOC_ORDER): Describe new macro.
4146         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
4147         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
4148         account only if HONOR_REG_ALLOC_ORDER is not defined.
4149         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
4150         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
4151
4152 2010-04-29  Jon Grant  <04@jguk.org>
4153
4154         * collect2.c (vflag): Change type from int to bool.
4155         (debug): Likewise.
4156         (helpflag): New global bool.
4157         (main): Set vflag and debug with boolean, not integer truth values.
4158         Accept new "--help" option and output usage text if found.
4159         * collect2.h (vflag): Update prototype.
4160         (debug): Likewise.
4161
4162 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4163
4164         PR bootstrap/43936
4165         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
4166
4167 2010-04-29  Richard Guenther  <rguenther@suse.de>
4168
4169         PR bootstrap/43935
4170         * plugin.h (invoke_plugin_callbacks): Annotate arguments
4171         with ATTRIBUTE_UNUSED.
4172
4173 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4174
4175         PR target/43921
4176         * config/i386/i386.c (get_some_local_dynamic_name): Replace
4177         INSN_P with NONDEBUG_INSN_P.
4178         (distance_non_agu_define): Likewise.
4179         (distance_agu_use): Likewise.
4180
4181 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4182
4183         From Dominique d'Humieres <dominiq@lps.ens.fr>
4184         PR bootstrap/43858
4185         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
4186         test_set.
4187
4188 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
4189
4190         * plugin.h (invoke_plugin_callbacks): New inline function.
4191         * plugin.c (flag_plugin_added): New global flag.
4192         (add_new_plugin): Initialize above flag.
4193         (invoke_plugin_callbacks): Rename to ...
4194         (invoke_plugin_callbacks_full): ... this.
4195
4196 2010-04-28  Jan Hubicka  <jh@suse.cz>
4197
4198         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
4199         (lto_varpool_replace_node): New.
4200         (lto_symtab_resolve_symbols): Resolve varpool nodes.
4201         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
4202         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
4203         * cgraph.h (varpool_node_ptr): New type.
4204         (varpool_node_ptr): New vector.
4205         (varpool_node_set_def): New structure.
4206         (varpool_node_set): New type.
4207         (varpool_node_set): New vector.
4208         (varpool_node_set_element_def): New structure.
4209         (varpool_node_set_element, const_varpool_node_set_element): New types.
4210         (varpool_node_set_iterator): New type.
4211         (varpool_node): Add prev pointers, add used_from_other_partition,
4212         in_other_partition.
4213         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
4214         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
4215         varpool_get_node, varpool_remove_node): Declare.
4216         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
4217         varpool_node_set_size): New inlines.
4218         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
4219         * tree-pass.h (varpool_node_set_def): Forward declare.
4220         (ipa_opt_pass_d): Summary writting takes vnode sets too.
4221         (ipa_write_optimization_summaries): Update prototype.
4222         * ipa-cp.c (ipcp_write_summary): Update.
4223         * ipa-reference.c (ipa_reference_write_summary): Update.
4224         * lto-cgraph.c (lto_output_varpool_node): New static function.
4225         (output_varpool): New function.
4226         (input_varpool_node): New static function.
4227         (input_varpool_1): New function.
4228         (input_cgraph): Input varpool.
4229         * ipa-pure-const.c (pure_const_write_summary): Update.
4230         * lto-streamer-out.c (lto_output): Update, output varpool too.
4231         (write_global_stream): Kill WPA hack.
4232         (produce_asm_for_decls): Update.
4233         (output_alias_pair_p): Handle variables.
4234         (output_unreferenced_globals): Output only needed partition of varpool.
4235         * ipa-inline.c (inline_write_summary): Update.
4236         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
4237         cgraph.
4238         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
4239         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
4240         varpool_node_set_new, varpool_node_set_add,
4241         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
4242         debug_varpool_node_set): New functions.
4243         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4244         (execute_one_pass): Process new decls too.
4245         (ipa_write_summaries_2): Pass around vsets.
4246         (ipa_write_summaries_1): Likewise.
4247         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4248         to add.
4249         (ipa_write_optimization_summaries_1): Pass around vsets.
4250         (ipa_write_optimization_summaries): Likewise.
4251         * varpool.c (varpool_get_node): New.
4252         (varpool_node): Update doubly linked lists.
4253         (varpool_remove_node): New.
4254         (dump_varpool_node): More dumping.
4255         (varpool_enqueue_needed_node): Update doubly linked lists.
4256         (decide_is_variable_needed): Kill ltrans hack.
4257         (varpool_finalize_decl): Kill lto hack.
4258         (varpool_assemble_decl): Skip decls in other partitions.
4259         (varpool_assemble_pending_decls): Update doubly linkes lists.
4260         (varpool_empty_needed_queue): Likewise.
4261         (varpool_extra_name_alias): Likewise.
4262         * lto-streamer.c (lto_get_section_name): Add vars section.
4263         * lto-streamer.h (lto_section_type): Update.
4264         (output_varpool, input_varpool): Declare.
4265
4266 2010-04-28  Mike Stump  <mikestump@comcast.net>
4267
4268         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4269
4270 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4271
4272         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4273         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4274         (lto_input_ts_type_tree_pointers): Likewise.
4275         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4276         (lto_output_ts_type_tree_pointers): Likewise.
4277
4278 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4279
4280         Uniquization of constants at the Tree level
4281         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4282         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4283         bit to the end.
4284         (tree_output_constant_def): Declare.
4285         * gimplify.c (gimplify_init_constructor): When using block copy, first
4286         uniquize the constant constructor on the RHS.
4287         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4288         DECL_IN_CONSTANT_POOL flag.
4289         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4290         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4291         constant pool.
4292         (assemble_variable): Deal with symbols belonging to the tree constant
4293         pool.
4294         (get_constant_section): Add ALIGN parameter and simplify.
4295         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4296         (assemble_constant_contents): Use the expression of the VAR_DECL.
4297         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4298         (tree_output_constant_def): New global function.
4299         (mark_constant): Use the expression of the VAR_DECL.
4300         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4301         its expression.
4302         (output_object_block): Likewise and assemble the expression.
4303
4304 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4305
4306         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4307         hash_tree, eq_tree): New tree hash table.
4308         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4309         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4310         lto_orig_address_remove): Reimplement.
4311
4312 2010-04-28  Xinliang David Li  <davidxl@google.com>
4313
4314         PR c/42643
4315         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4316         (compute_uninit_opnds_pos): New function.
4317         (is_non_loop_exit_postdominating): New function.
4318         (compute_control_dep_chain): New function.
4319         (find_pdom): New function.
4320         (convert_control_dep_chain_into_preds): New function.
4321         (find_predicates): New function.
4322         (find_control_equiv_block): New function.
4323         (collect_phi_def_edges): New function.
4324         (find_def_preds): New function.
4325         (find_dom): New function.
4326         (dump_predicates): New function.
4327         (get_cmp_code): New function.
4328         (is_value_included_in): New function.
4329         (find_matching_predicate_in_rest_chains): New function.
4330         (use_pred_not_overlap_with_undef_path_pred): New function.
4331         (is_use_properly_guarded): New function.
4332         (normalize_cond_1): New function.
4333         (is_and_or_or): New function.
4334         (normalize_cond): New function.
4335         (is_gcond_subset_of): New function.
4336         (is_subset_of_any): New function.
4337         (is_or_set_subset_of): New function.
4338         (is_and_set_subset_of): New function.
4339         (is_norm_cond_subset_of): New function.
4340         (is_pred_expr_subset_of): New function.
4341         (is_pred_chain_subset_of): New function.
4342         (is_included_in): New function.
4343         (is_superset_of): New function.
4344         (find_uninit_use): New function.
4345         (warn_uninitialized_phi): New function.
4346         (compute_possibly_undefined_names): New function.
4347         (ssa_undefined_value_p): New function.
4348         (execute_late_warn_uninitialized): New function.
4349         * tree-ssa.c (ssa_undefined_value_p): Removed.
4350         (warn_uninit): Changed to extern.
4351         (warn_uninitialized_phi): Removed.
4352         (warn_uninitialized_vars): Changed to extern.
4353         (execute_late_warn_uninitialized): Removed
4354         * tree-flow.h: Add new prototypes.
4355         * timevar.def: Add new time variable.
4356         * Makefile.in: Add new build file.
4357
4358 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4359
4360         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4361         type if available.
4362
4363 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4364
4365         PR target/22224
4366         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4367
4368 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4369
4370         * cgraph.h (struct cgraph_node): New field indirect_calls.
4371         (struct cgraph_indirect_call_info): New type.
4372         (struct cgraph_edge): Removed field indirect_call. New fields
4373         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4374         (cgraph_create_indirect_edge): Declare.
4375         (cgraph_make_edge_direct): Likewise.
4376         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4377         * ipa-prop.h (struct ipa_param_call_note): Removed.
4378         (struct ipa_node_params): Removed field param_calls.
4379         (ipa_create_all_structures_for_iinln): Declare.
4380         * cgraph.c: Described indirect edges and uids in initial comment.
4381         (cgraph_add_edge_to_call_site_hash): New function.
4382         (cgraph_edge): Search also among the indirect edges, use
4383         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4384         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4385         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4386         site hash.
4387         (initialize_inline_failed): Assign a reason to indirect edges.
4388         (cgraph_create_edge_1): New function.
4389         (cgraph_create_edge): Moved some functionality to
4390         cgraph_create_edge_1.
4391         (cgraph_create_indirect_edge): New function.
4392         (cgraph_edge_remove_callee): Add an assert checking for
4393         non-indirectness.
4394         (cgraph_edge_remove_caller): Special-case indirect edges.
4395         (cgraph_remove_edge): Likewise.
4396         (cgraph_set_edge_callee): New function.
4397         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4398         (cgraph_make_edge_direct): New function.
4399         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4400         the declaration of the call statement matches.
4401         (cgraph_node_remove_callees): Special-case indirect edges.
4402         (cgraph_clone_edge): Likewise.
4403         (cgraph_clone_node): Clone also the indirect edges.
4404         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4405         indirect_call, dump count of indirect_calls edges.
4406         * ipa-prop.c (iinlining_processed_edges): New variable.
4407         (ipa_note_param_call): Create indirect edges instead of
4408         creating notes.  New parameter node.
4409         (ipa_analyze_call_uses): New parameter node, pass it on to
4410         ipa_note_param_call.
4411         (ipa_analyze_stmt_uses): Likewise.
4412         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4413         (print_edge_addition_message): Work on edges rather than on notes.
4414         (update_call_notes_after_inlining): Likewise, renamed to
4415         update_indirect_edges_after_inlining.
4416         (ipa_create_all_structures_for_iinln): New function.
4417         (ipa_free_node_params_substructures): Do not free notes.
4418         (ipa_edge_duplication_hook): Propagate bits within
4419         iinlining_processed_edges bitmap.
4420         (ipa_node_duplication_hook): Do not duplicate notes.
4421         (free_all_ipa_structures_after_ipa_cp): Renamed to
4422         ipa_free_all_structures_after_ipa_cp.
4423         (free_all_ipa_structures_after_iinln): Renamed to
4424         ipa_free_all_structures_after_iinln.
4425         (ipa_write_param_call_note): Removed.
4426         (ipa_read_param_call_note): Removed.
4427         (ipa_write_indirect_edge_info): New function.
4428         (ipa_read_indirect_edge_info): Likewise.
4429         (ipa_write_node_info): Do not stream notes, do stream information
4430         in indirect edges.
4431         (ipa_read_node_info): Likewise.
4432         (lto_ipa_fixup_call_notes): Removed.
4433         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4434         * ipa-inline.c (pass_ipa_inline): Likewise.
4435         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4436         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4437         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4438         is_gimple_call.
4439         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4440         edges.
4441         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4442         (output_cgraph): Stream also indirect edges.
4443         (lto_output_edge): Added capability to stream indirect edges.
4444         (input_edge): Likewise.
4445         (input_cgraph_1): Likewise.
4446         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4447         of indirect edges.
4448
4449 2010-04-28  Richard Guenther  <rguenther@suse.de>
4450
4451         PR tree-optimization/43879
4452         PR tree-optimization/43909
4453         * tree-ssa-structalias.c (struct variable_info): Add
4454         only_restrict_pointers flag.
4455         (new_var_info): Initialize it.  Increment stats.total_vars here.
4456         (create_function_info_for): Do not increment stats.total_vars here.
4457         (get_function_part_constraint): Fix build with C++.
4458         (insert_into_field_list): Remove.
4459         (push_fields_onto_fieldstack): Properly merge fields.
4460         (create_variable_info_for): Split and simplify.
4461         (create_variable_info_for_1): New piece.
4462         (intra_create_variable_infos): Properly make restrict constraints
4463         from parameters.
4464
4465 2010-04-28  Richard Guenther  <rguenther@suse.de>
4466
4467         PR c++/43880
4468         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4469
4470 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4471             Jan Hubicka <hubicka@ucw.cz>
4472
4473         * doc/invoke.texi (-Wsuggest-attribute=const,
4474         -Wsuggest-attribute=pure): Document.
4475         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4476         (function_always_visible_to_compiler_p,
4477         suggest_attribute, warn_function_pure, warn_function_const):
4478         New functions.
4479         (check_call): Improve debug info.
4480         (analyze_function): Do not check availability.
4481         (add_new_function): Check availability.
4482         (propagate): Output warnings.
4483         (skip_function_for_local_pure_const): New function.
4484         (local_pure_const): Use it; output warnings.
4485         * common.opt (Wsuggest-attribute=const,
4486         Wsuggest-attribute=pure): New.
4487
4488 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4489
4490         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4491         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4492         or DW_CFA_def_cfa_offset{,_sf}.
4493
4494 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4495
4496         * tree.h: Fix truncated long macros.
4497
4498 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4499
4500         * collect2.c (TARGET_64BIT): Redefine to target's default.
4501         * tlink.c: Likewise.
4502         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4503         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4504         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4505         for underscoring __USER_LABEL_PREFIX__.
4506         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4507         (SUB_LINK_ENTRY32): New.
4508         (SUB_LINK_ENTRY64): New.
4509         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4510         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4511         (SUB_LINK_ENTRY64): New.
4512         (SUB_LINK_ENTRY): New.
4513         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4514         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4515         x64 target is choosen.
4516         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4517         * configure: Regenerated.
4518         * configure.ac (leading-mingw64-underscores): Option added.
4519
4520 2010-04-27  Jan Hubicka  <jh@suse.cz>
4521
4522         * doc/invoke.texi (-fipa-profile): Document.
4523         * opts.c (decode_options): Enable ipa-profile at -O1.
4524         * timevar.def (TV_IPA_PROFILE): Define.
4525         * common.opt (fipa-profile): Add.
4526         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4527         flag for clones.
4528         (cgraph_propagate_frequency): Handle only local ones.
4529         * tree-pass.h (pass_ipa_profile): Declare.
4530         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4531         (pass_ipa_profile): Use TV_IPA_PROFILE.
4532         * ipa.c (ipa_profile): New function.
4533         (gate_ipa_profile): Likewise.
4534         (pass_ipa_profile): New global variable.
4535         * passes.c (pass_ipa_profile): New.
4536
4537 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4538
4539         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4540
4541 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4542
4543         PR middle-end/43812
4544         * ipa.c (dissolve_same_comdat_group_list): New function.
4545         (function_and_variable_visibility): Call
4546         dissolve_same_comdat_group_list when comdat group contains external or
4547         newly local nodes.
4548         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4549         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4550
4551 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4552
4553         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4554         (const_hash_1) <VECTOR_CST>: New case.
4555         (compare_constant) <VECTOR_CST>: Likewise.
4556         <ADDR_EXPR>: Deal with LABEL_REFs.
4557         (copy_constant) <VECTOR_CST>: New case.
4558
4559 2010-04-27  Jan Hubicka  <jh@suse.cz>
4560
4561         * cgraph.c (cgraph_propagate_frequency): New function.
4562         * cgraph.h (cgraph_propagate_frequency): Declare.
4563         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4564         cgraph_propagate_frequency.
4565
4566 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4567
4568         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4569
4570 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4571
4572         PR target/40657
4573         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4574         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4575         here to determine which regs to push and how much stack to reserve.
4576
4577 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4578
4579         * doc/gimple.texi (gimple_statement_with_ops): Remove
4580         addresses_taken field.
4581         (gimple_statement_with_memory_ops): Likewise.
4582
4583 2010-04-27  Jan Hubicka  <jh@suse.cz>
4584
4585         * tree-inline.c (eni_inlining_weights): Remove.
4586         (estimate_num_insns): Special case more builtins.
4587
4588 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4589
4590         PR c/32207
4591         * c-typeck.c (build_binary_op): Move forward check for comparison
4592         pointer with null pointer constant and adjust the diagnostic message.
4593
4594 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4595
4596         PR lto/42776
4597         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4598         binutils supports extended .section directive needed by LTO, or
4599         warn if older binutils found.
4600         (LTO_BINARY_READER): New AC_SUBST'd variable.
4601         (LTO_USE_LIBELF): Likewise.
4602         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4603         variable.
4604         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4605         (LTO_USE_LIBELF): Likewise.
4606         * configure: Regenerate.
4607
4608         * collect2.c (is_elf): Rename from this ...
4609         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4610          object files in addition to ELF-formatted ones.
4611         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4612         symbol to be prefixed or not by an extra underscore.
4613
4614         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4615         * config/i386/winnt.c: Also #include lto-streamer.h
4616         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4617         LTO named sections.
4618         (i386_pe_asm_output_aligned_decl_common): Add comment.
4619         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4620
4621 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4622
4623         PR target/43889
4624         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4625         Add missing earlyclobber for second alternative.
4626
4627 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4628
4629         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4630         bits for artificial defs at the top of the block.
4631         * fwprop.c (single_def_use_enter_block): Don't call it.
4632
4633 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4634
4635         PR 43715
4636         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4637         instead of "$gcc_cv_objdump -T".
4638         Use "-undefined dynamic_lookup" on darwin.
4639         * gcc/configure: Regenerate.
4640
4641 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4642
4643         PR c/43893
4644         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4645
4646 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4647
4648         * c-parser.c (struct c_token): Move location field up.
4649         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4650         (struct c_declspecs): Convert typespec_word, storage_class, and
4651         default_int_p into bitfields.
4652         (struct c_declarator): Move loc field up.
4653
4654 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4655
4656         * cfgloop.h (struct loop): Move can_be_parallel field up.
4657         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4658         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4659         down.
4660         (struct iv_cand): Convert pos field into a bitfield.
4661         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4662         field up.
4663         (struct _stmt_vec_info): Shuffle fields for better packing.
4664
4665 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4666
4667         * varasm.c (IN_NAMED_SECTION): Remove guard.
4668         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4669         (IN_NAMED_SECTION_P): ...this.
4670         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4671         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4672
4673 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4674
4675         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4676         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4677         of shadowing it.  Fix comments.
4678
4679 2010-04-26  Jan Hubicka  <jh@suse.cz>
4680
4681         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4682         (cgraph_clone_node): Copy function frequency.
4683         * cgraph.h (node_frequency): New enum
4684         (struct cgraph_node): Add.
4685         * final.c (rest_of_clean_state): Update.
4686         * lto-cgraph.c (lto_output_node): Output node frequency.
4687         (input_overwrite_node): Input node frequency.
4688         * tre-ssa-loop-ivopts (computation_cost): Update.
4689         * lto-streamer-out.c (output_function): Do not output function
4690         frequency.
4691         * predict.c (maybe_hot_frequency_p): Update and handle functions
4692         executed once.
4693         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4694         attribute lookup.
4695         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4696         (compute_function_frequency): Set noreturn functions to be executed
4697         once.
4698         (choose_function_section): Update.
4699         * lto-streamer-in.c (input_function): Do not input function frequency.
4700         * function.c (allocate_struct_function): Do not initialize function
4701         frequency.
4702         * function.h (function_frequency): Remove.
4703         (struct function): Remove function frequency.
4704         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4705         (try_update): Update.
4706         * tree-inline.c (initialize_cfun): Do not update function frequency.
4707         * passes.c (pass_init_dump_file): Update.
4708         * i386.c (ix86_compute_frame_layout): Update.
4709         (ix86_pad_returns): Update.
4710
4711 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4712
4713         PR tree-optimization/43833
4714         * tree-vrp.c (range_int_cst_p): New.
4715         (range_int_cst_singleton_p): New.
4716         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4717         when both operands are constants.  Use range_int_cst_p in
4718         BIT_IOR_EXPR case.
4719
4720 2010-04-26  Jan Hubicka  <jh@suse.cz>
4721
4722         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4723
4724 2010-04-26  Richard Guenther  <rguenther@suse.de>
4725
4726         PR lto/43080
4727         * gimple.c (gimple_decl_printable_name): Deal gracefully
4728         with a NULL DECL_NAME.
4729
4730 2010-04-26  Richard Guenther  <rguenther@suse.de>
4731
4732         PR lto/42425
4733         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4734         if emitting debug information and it is either a function
4735         or a namespace decl.
4736
4737 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4738
4739         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4740         determine if the statement is vectorizable, and a macro to access it.
4741         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4742         Skip statements that can't be vectorized. If the analysis fails,
4743         mark the statement as unvectorizable if vectorizing basic block.
4744         (vect_compute_data_refs_alignment): Likewise.
4745         (vect_verify_datarefs_alignment): Skip statements marked as
4746         unvectorizable. Add print.
4747         (vect_analyze_group_access): Skip statements that can't be
4748         vectorized. If the analysis fails, mark the statement as
4749         unvectorizable if vectorizing basic block.
4750         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4751         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4752         generated stmts for SLP.
4753         (new_stmt_vec_info): Initialize the new field.
4754         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4755         statements marked as unvectorizable.
4756
4757 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4758
4759         * c-common.c (flag_isoc1x): New.
4760         (flag_isoc99): Update comment.
4761         * c-common.h (flag_isoc1x): New.
4762         (flag_isoc99): Update comment.
4763         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4764         __<type>_DECIMAL_DIG__.
4765         * c-opts.c (set_std_c1x): New.
4766         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4767         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4768         * c.opt (-std=c1x, -std=gnu1x): New options.
4769         * doc/cpp.texi: Mention -std=c1x.
4770         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4771         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4772         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4773         * doc/standards.texi: Mention C1X.
4774         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4775         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4776         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4777         Define for C1X.
4778
4779 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4780
4781         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4782         placeholder from 0x%x to %#x.
4783         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4784         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4785         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4786         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4787         * config/i386/i386.c (ix86_target_string): Ditto.
4788         (output_pic_addr_const): Ditto.
4789         (print_operand): Ditto.
4790
4791 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4792
4793         * combine.c (find_split_point): Add third argument.  Use it
4794         to find nested multiply-accumulate instructions.  Adjust calls.
4795         (try_combine): Adjust call to find_split_point.
4796
4797 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4798
4799         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4800
4801 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4802
4803         PR tree-optimization/41442
4804         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4805         (fold_binary_loc): Call it.
4806
4807 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4808
4809         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4810         * opts.c (common_handle_option): Allow disabling it.
4811         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4812
4813 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4814
4815         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4816         between modes if both types are integral.
4817
4818 2010-04-23  Richard Guenther  <rguenther@suse.de>
4819
4820         PR tree-optimization/43572
4821         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4822
4823 2010-04-23  Richard Guenther  <rguenther@suse.de>
4824
4825         PR lto/43455
4826         * tree-inline.c (tree_can_inline_p): Also check compatibility
4827         of return types.
4828
4829 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4830
4831         PR tree-optimization/43846
4832         * tree-sra.c (struct access): New flag grp_assignment_read.
4833         (build_accesses_from_assign): Set grp_assignment_read.
4834         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4835         (enum mark_read_status): New type.
4836         (analyze_access_subtree): Propagate grp_assignment_read, create
4837         accesses also if both direct_read and root->grp_assignment_read.
4838
4839 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4840
4841         PR middle-end/43835
4842         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4843         function does not have type attributes.
4844
4845 2010-04-23  Richard Guenther  <rguenther@suse.de>
4846
4847         PR lto/42653
4848         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4849         of FUNCTION_DECLs.
4850
4851 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4852
4853         * sese.h (create_if_region_on_edge): Remove.
4854
4855         * sese.c (create_if_region_on_edge): Make static.
4856
4857         * tree-inline.c: Do not include ggc.h.
4858
4859         * expr.c: Do not include ggc.h.
4860
4861         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4862         dependencies.
4863
4864 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4865
4866         PR target/43744
4867         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4868         in the middle of insns for casesi_worker_2.
4869
4870 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4871
4872         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4873
4874 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4875
4876         PR tree-optimization/43842
4877         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4878         loop unrolling in update of exit phis. Fix comment.
4879         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4880         least two reduction statements in the loop before starting SLP
4881         analysis.
4882
4883 2010-04-22  Nick Clifton  <nickc@redhat.com>
4884
4885         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4886
4887 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4888
4889         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4890         to simplify a + ~a.
4891
4892 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4893
4894         * tree-parloops.c (loop_parallel_p): New argument
4895         parloop_obstack.  Pass it down.
4896         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4897         pass it down, free it.
4898
4899         * tree-loop-linear.c (linear_transform_loops): Pass down
4900         lambda_obstack.
4901
4902         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4903         of type struct obstack *.
4904
4905         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4906         scratch_obstack.  Initialize it, pass down, free it.
4907
4908         * lambda.h (lambda_loop_new): Remove.
4909         (lambda_matrix_new, lambda_matrix_inverse)
4910         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4911         argument of type struct obstack *.
4912
4913         * lambda-trans.c (lambda_trans_matrix_new): New argument
4914         lambda_obstack.  Pass it down, use obstack allocation for ret.
4915         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4916         it down.
4917
4918         * lambda-mat.c (lambda_matrix_get_column)
4919         (lambda_matrix_project_to_null): Remove.
4920         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4921         allocation for mat.
4922         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4923         lambda_obstack.
4924
4925         * lambda-code.c (lambda_loop_new): New function.
4926         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4927         (lambda_compute_auxillary_space, lambda_compute_target_space)
4928         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4929         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4930         (build_access_matrix): New argument lambda_obstack.  Use obstack
4931         allocation for am.
4932         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4933         argument lambda_obstack.  Pass it down.
4934
4935 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4936
4937         * optabs.h (expand_widening_mult): Declare.
4938
4939 2010-04-22  Richard Guenther  <rguenther@suse.de>
4940
4941         PR tree-optimization/43845
4942         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4943         lookup the CALL_EXPR function and arguments.
4944
4945 2010-04-22  Nick Clifton  <nickc@redhat.com>
4946
4947         * config/stormy16/stormy16.c
4948         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4949         * config/stormy16/stormy16.h: Tidy up formatting.
4950         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4951         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4952         (ineqbranchsi): Delete pattern.
4953         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4954         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4955         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4956         stormy16-lib2-ucmpsi2.c.
4957
4958 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4959
4960         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4961         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4962         extra set merge_set_noclobber, and use it to relax the final test
4963         slightly.
4964         * df.h (df_simulate_find_noclobber_defs): Declare.
4965         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4966         conditional defs.
4967         (df_simulate_find_noclobber_defs): New function.
4968
4969 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4970
4971         * config/i386/i386.md: Use {} around multi-line preparation statements.
4972
4973 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4974
4975         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4976         (process_init_element): New argument of type struct obstack *.
4977
4978         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4979         (set_init_index, set_init_label, set_nonincremental_init)
4980         (set_nonincremental_init_from_string, find_init_member)
4981         (output_init_element, output_pending_init_elements)
4982         (process_init_element): New argument braced_init_obstack.  Pass it
4983         down.
4984         (push_range_stack, add_pending_init): New argument
4985         braced_init_obstack.  Use obstack allocation.
4986
4987         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4988         braced_init_obstack.  Pass it down.
4989         (c_parser_braced_init): New variables ret, braced_init_obstack.
4990         Initialize obstack, pass it down and finally free it.
4991
4992 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4993
4994         PR middle-end/29274
4995         * tree-pass.h (pass_optimize_widening_mul): Declare.
4996         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4997         gate_optimize_widening_mul): New static functions.
4998         (pass_optimize_widening_mul): New.
4999         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
5000         <case MULT_EXPR>: Remove support for widening multiplies.
5001         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
5002         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
5003         simplify_gen_unary rather than directly building extensions.
5004         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
5005         WIDEN_MULT_EXPR.
5006         * expmed.c (expand_widening_mult): New function.
5007         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
5008
5009 2010-04-21  Jan Hubicka  <jh@suse.cz>
5010
5011         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
5012         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
5013         * lto-wpa-fixup.c: Remove.
5014         * Makefile.in (lto-wpa-fixup.o): Remove.
5015         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
5016         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
5017         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
5018
5019 2010-04-21  Jan Hubicka  <jh@suse.cz>
5020
5021         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
5022         add write_optimization_summary, read_optimization_summary.
5023         (ipa_write_summaries_of_cgraph_node_set): Remove.
5024         (ipa_write_optimization_summaries): Declare.
5025         (ipa_read_optimization_summaries): Declare.
5026         * ipa-cp.c (pass_ipa_cp): Update.
5027         * ipa-reference.c (pass_ipa_reference): Update.
5028         * ipa-pure-const.c (pass_ipa_pure_const): Update.
5029         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
5030         Update.
5031         * ipa-inline.c (pass_ipa_inline): Update.
5032         * ipa.c (pass_ipa_whole_program): Update.
5033         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
5034         * passes.c (ipa_write_summaries_1): Do not test wpa.
5035         (ipa_write_optimization_summaries_1): New.
5036         (ipa_write_optimization_summaries): New.
5037         (ipa_read_summaries): Do not test ltrans.
5038         (ipa_read_optimization_summaries_1): New.
5039         (ipa_read_optimization_summaries): New.
5040
5041 2010-04-21  Jan Hubicka  <jh@suse.cz>
5042
5043         * lto-cgraph.c (lto_output_node): Do not output comdat groups
5044         for boundary nodes.
5045         (output_cgraph): Do not arrange comdat groups for boundary nodes.
5046
5047 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5048
5049         PR debug/40040
5050         * dwarf2out.c (add_name_and_src_coords_attributes): Add
5051         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
5052
5053 2010-04-21  Jan Hubicka  <jh@suse.cz>
5054
5055         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
5056
5057 2010-04-21  Jan Hubicka  <jh@suse.cz>
5058
5059         * varpool.c (decide_is_variable_needed): Variable is always needed
5060         during ltrans.
5061
5062 2010-04-21  Jan Hubicka  <jh@suse.cz>
5063
5064         * opts.c (decode_options): Enable pure-const pass for whopr.
5065
5066 2010-04-21  Jan Hubicka  <jh@suse.cz>
5067
5068         * cgraph.c (dump_cgraph_node): Dump also assembler name.
5069         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
5070         at WPA dumping.
5071         (cgraph_decide_inlining): Do not expect callee to be removed in all
5072         cases.
5073
5074 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
5075
5076         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
5077
5078 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5079
5080         * config/i386/i386.md (x86_shrd): Add athlon_decode and
5081         amdfam10_decode attributes.
5082
5083 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5084
5085         PR middle-end/43570
5086         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
5087         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
5088         (lower_copyprivate_clauses): Use private var in outer
5089         context instead of original var.  Make sure the types
5090         are correct for VLAs.
5091
5092 2010-04-21  Richard Guenther  <rguenther@suse.de>
5093
5094         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
5095         to non-pointer objects.
5096
5097 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5098
5099         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
5100         last chain entry if it starts with the still current label.
5101         (add_location_or_const_value_attribute): Check that
5102         loc_list->first->next is NULL instead of comparing ->first with ->last.
5103         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
5104         to add_var_loc_to_decl.
5105
5106         * dwarf2out.c (output_call_frame_info): For dw_cie_version
5107         >= 4 add also address size and segment size fields into CIE header.
5108
5109         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
5110         long as address size is the same as sizeof (void *) and
5111         segment size is 0.
5112         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
5113         address size or segment size is unexpected, return DW_EH_PE_omit.
5114         (classify_object_over_fdes): If get_cie_encoding returned
5115         DW_EH_PE_omit, return -1.
5116         (init_object): If classify_object_over_fdes returned -1,
5117         pretend there were no FDEs at all.
5118
5119 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5120
5121         * config/i386/i386.md (bswap<mode>2): Macroize expander from
5122         bswap{si,di}2 using SWI48 mode iterator.
5123         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
5124         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
5125         set modrm attribute of bswap insn to 0 and remove length attribute.
5126         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
5127         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
5128         set mode attribute to <MODE> and remove length attribute.
5129
5130 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
5131
5132         PR rtl-optimization/43520
5133         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
5134         zero available registers.
5135
5136 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5137
5138         * builtins.c (fold_builtin_cproj): Fold more cases.
5139
5140 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5141
5142         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
5143         (fold_builtin_1): Fold builtin cproj.
5144         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
5145         Use ATTR_CONST_NOTHROW_LIST.
5146
5147 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
5148
5149         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
5150         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
5151         ffsi2_no_cmove for !TARGET_CMOVE.
5152         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
5153         (ffssi2): Remove expander.
5154         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
5155         mode iterator.
5156         (ctz<mode>2): Ditto from ctz{si,di}2.
5157         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
5158         mode iterator.
5159         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
5160         mode iterator.
5161
5162 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5163
5164         * dwarf2out.c (AT_linkage_name): Define.
5165         (clone_as_declaration): Handle DW_AT_linkage_name.
5166         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
5167         of DW_AT_MIPS_linkage_name.
5168         (move_linkage_attr): Likewise.
5169         (dwarf2out_finish): Likewise.
5170
5171 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
5172
5173         PR middle-end/41952
5174         * fold-const.c (fold_comparison): New folding rule.
5175
5176 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
5177
5178         * double-int.h (double_int_setbit): Declare.
5179         * double-int.c (double_int_setbit): New function.
5180         * rtl.h (immed_double_int_const): Declare.
5181         * emit-rtl.c (immed_double_int_const): New function.
5182         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
5183         and immed_double_int_const functions.
5184         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
5185         expand_copysign_bit):  (Ditto.).
5186         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
5187         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
5188         * dojump.c (prefer_and_bit_test): (Ditto.).
5189         * expr.c (convert_modes, reduce_to_bit_field_precision,
5190         const_vector_from_tree): (Ditto.).
5191         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5192
5193 2010-04-20  Jan Hubicka  <jh@suse.cz>
5194
5195         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
5196         (dump_cgraph_node): Dump new flags.
5197         * cgraph.h (struct cgraph_node): Add flags
5198         reachable_from_other_partition and in_other_partition.
5199         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
5200         other partition can not be removed.
5201         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
5202         the other partition must be output; silence sanity checking on
5203         leaking functions bodies from other paritition.
5204         * lto-cgraph.c (reachable_from_other_partition_p): New function.
5205         (lto_output_node): Output new flags; do not sanity check that inline
5206         clones are output; drop lto_forced_extern_inline_p code; do not mock
5207         visibility flags at partition boundaries.
5208         (add_node_to): New function.
5209         (output_cgraph): Use it to sort functions so masters appear before
5210         clones.
5211         (input_overwrite_node): Input new flags.
5212         * passes.c (ipa_write_summaries): Do not call
5213         lto_new_extern_inline_states.
5214         * lto-section-out.c (forced_extern_inline,
5215         lto_new_extern_inline_states lto_delete_extern_inline_states,
5216         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
5217         * lto-streamer.h (lto_new_extern_inline_states,
5218         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
5219         lto_forced_extern_inline_p): Kill.
5220
5221 2010-04-20  Richard Guenther  <rguenther@suse.de>
5222
5223         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
5224         from vars that can have pointers.
5225         (process_constraint): Dump useless constraints.
5226
5227 2010-04-20  Richard Guenther  <rguenther@suse.de>
5228
5229         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
5230         (dump_sa_points_to_info): Remove asserts.
5231         (init_base_vars): nothing_id isn't an escape point nor does it
5232         have pointers.
5233
5234 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5235
5236         * tree.h (TYPE_REF_IS_RVALUE): Define.
5237         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
5238         should_move_die_to_comdat, prune_unused_types_walk): Handle
5239         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
5240         (modified_type_die, gen_reference_type_die): Emit
5241         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
5242         if TYPE_REF_IS_RVALUE and -gdwarf-4.
5243
5244 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5245
5246         PR target/43635
5247         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5248         calls for -fpic -m31 if they have been sibcall optimized.
5249
5250 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5251
5252         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5253         ar.lc fixed and call-used.
5254
5255         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5256
5257 2010-04-19  Jan Hubicka  <jh@suse.cz>
5258
5259         * opts.c (decode_options): Disable whpr incompatible passes.
5260         * lto/lto.c (lto_1_to_1_map): Skip clones.
5261         (read_cgraph_and_symbols): Do not mark everything as needed.
5262         (do_whole_program_analysis): Do map only after optimizing;
5263         set proper cgraph_state; use passmanager.
5264
5265 2010-04-19  DJ Delorie  <dj@redhat.com>
5266
5267         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5268         POINTER_PLUS_EXPR and fix them.
5269
5270 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5271
5272         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5273         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5274         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5275         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5276         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5277         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5278         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5279         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5280         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5281         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5282         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5283
5284 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5285
5286         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5287         (check_cond_move_block): Likewise.
5288         (cond_move_process_if_block): Likewise.
5289         (noce_find_if_block): Improve formatting.
5290         (find_if_header): Pass 0 to memset and tweak conditions.
5291         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5292
5293 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5294
5295         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5296         for -gdwarf-4.
5297
5298         PR middle-end/43337
5299         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5300         with non-local decl doesn't need chain.
5301
5302 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5303
5304         * ira-color.c (allocno_reload_assign): Avoid accumulating
5305         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5306
5307 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5308
5309         * gimple.h (create_tmp_reg): Declare.
5310         * gimplify.c (create_tmp_reg): New function.
5311         (gimplify_return_expr): Use create_tmp_reg.
5312         (gimplify_omp_atomic): Likewise.
5313         (gimple_regimplify_operands): Likewise.
5314         * tree-dfa.c (make_rename_temp): Likewise.
5315         * tree-predcom.c (predcom_tmp_var): Likewise.
5316         (reassociate_to_the_same_stmt): Likewise.
5317         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5318         (get_replaced_param_substitute): Likewise.
5319         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5320         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5321         * tree-ssa-pre.c (get_representative_for): Likewise.
5322         (create_expression_by_pieces): Likewise.
5323         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5324         (create_tailcall_accumulator): Likewise.
5325
5326 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5327
5328         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5329         new_stmt.
5330         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5331
5332 2010-04-19  Richard Guenther  <rguenther@suse.de>
5333
5334         PR tree-optimization/43796
5335         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5336         from SCEV in the lattice.
5337         (vrp_visit_phi_node): Dump change.
5338
5339 2010-04-19  Richard Guenther  <rguenther@suse.de>
5340
5341         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5342         * configure: Re-generated.
5343
5344 2010-04-19  Richard Guenther  <rguenther@suse.de>
5345
5346         PR tree-optimization/43783
5347         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5348         constant ARRAY_REF operands two and three if possible.
5349
5350 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5351
5352         PR target/43766
5353         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5354
5355 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5356
5357         PR target/43662
5358         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5359
5360 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5361
5362         PR tree-optimization/37027
5363         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5364         and macro to access it.
5365         (vectorizable_reduction): Add argument.
5366         (vect_get_slp_defs): Likewise.
5367         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5368         statements for possible use in SLP.
5369         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5370         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5371         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5372         add new argument.
5373         (vectorizable_reduction): Likewise.
5374         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5375         vect_get_slp_defs.
5376         (vectorizable_type_demotion, vectorizable_type_promotion,
5377         vectorizable_store): Likewise.
5378         (vect_analyze_stmt): Update call to vectorizable_reduction.
5379         (vect_transform_stmt): Likewise.
5380         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5381         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5382         from different interleaving chains in same node.
5383         (vect_slp_rearrange_stmts): New function.
5384         (vect_supported_load_permutation_p): Allow load permutations for
5385         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5386         inside SLP nodes if necessary.
5387         (vect_analyze_slp_instance): Handle reductions.
5388         (vect_analyze_slp): Try to build SLP instances originating from groups
5389         of reductions.
5390         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5391         (vect_get_constant_vectors): Create initial vectors for reductions
5392         according to reduction code. Add new argument.
5393         (vect_get_slp_defs): Add new argument, pass it to
5394         vect_get_constant_vectors.
5395         (vect_schedule_slp_instance): Remove SLP tree root statements.
5396
5397 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5398
5399         * tree.h (ENUM_IS_SCOPED): Define.
5400         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5401         for ENUM_IS_SCOPED enums.
5402
5403 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5404
5405         * fold-const.c (fold_comparison): Use ssizetype.
5406         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5407         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5408         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5409         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5410
5411         * tree.h (initialize_sizetypes): Remove parameter.
5412         (build_common_tree_nodes): Remove second parameter.
5413         * stor-layout.c (initialize_sizetypes): Remove parameter.
5414         Always create an unsigned type.
5415         (set_sizetype): Assert that the passed type is unsigned and simplify.
5416         * tree.c (build_common_tree_nodes): Remove second parameter.
5417         Adjust call to initialize_sizetypes.
5418         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5419         build_common_tree_nodes.
5420
5421 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5422
5423         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5424
5425 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5426
5427         PR tree-optimization/43771
5428         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5429         load permutation doesn't have gaps.
5430
5431 2010-04-18  Jan Hubicka  <jh@suse.cz>
5432
5433         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5434         (sse_prologue_save_insn expander): Use new pattern.
5435         (sse_prologue_save_insn1): New pattern and splitter.
5436         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5437         blocks.
5438         * i386.c (setup_incoming_varargs_64): Do not compute jump
5439         destination here.
5440         (ix86_gimplify_va_arg): Update alignment needed.
5441         (ix86_local_alignment): Do not align all local arrays to 128bit.
5442
5443 2010-04-17  Jan Hubicka  <jh@suse.cz>
5444
5445         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5446
5447 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5448
5449         * arm.md (negdi2): Remove redundant code to force values into a
5450         register.
5451
5452 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5453
5454         * arm/bpabi.S: Add EABI alignment attributes to objects.
5455         * arm/bpabi-v6m.S: Likewise.
5456         * arm/crti.asm: Likewise.
5457         * arm/crtn.asm: Likewise.
5458         * arm/lib1funcs.asm: Likewise.
5459         * arm/libunwind.S: Likewise.
5460
5461 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5462
5463         * arm-protos.h (tune_params): New structure.
5464         * arm.c (current_tune): New variable.
5465         (arm_constant_limit): Delete.
5466         (struct processors): Add pointer to the tune parameters.
5467         (arm_slowmul_tune): New tuning option.
5468         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5469         (all_cores): Adjust to pick up the tuning model.
5470         (arm_constant_limit): New function.
5471         (arm_override_options): Select the appropriate tuning model.  Delete
5472         initialization of arm_const_limit.
5473         (arm_split_constant): Use the new constant-limit model.
5474         (arm_rtx_costs): Pick up the current tuning model.
5475         * arm.md (is_strongarm, is_xscale): Delete.
5476         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5477         for Xscale variant architectures.
5478         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5479
5480 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5481
5482         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5483         can_shift.
5484         (arm_rtx_costs_1): Remove unused variable extra_cost.
5485         (arm_unwind_emit_set): Use variable offset.
5486         (thumb1_output_casesi): Remove unused variable flags.
5487
5488 2010-04-16  Jeff Law  <law@redhat.com>
5489
5490         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5491         needing assignment rather than doing a two-phase assignment.  Remove
5492         unused variable 'm'.
5493
5494 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5495
5496         PR bootstrap/43767
5497         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5498
5499 2010-04-16  Doug Kwan  <dougkwan@google.com>
5500
5501         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5502         (next_operand_entry_id): New static variable.
5503         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5504         (add_to_ops_vec): Assigned unique ID to operand entry.
5505         (struct oecount_s): New field ID.
5506         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5507         (undistribute_ops_list): Assign unique IDs to oecounts.
5508         (init_reassoc): reset next_operand_entry_id.
5509
5510 2010-04-16  Doug Kwan  <dougkwan@google.com>
5511
5512         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5513         missing left parenthesis.
5514
5515 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5516
5517         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5518         *btdi_rex64 using SWI48 mode iterator.
5519         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5520         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5521         *jcc_btdi_mask_rex64.
5522
5523 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5524
5525         * double-int.h (tree_to_double_int): Convert to macro.
5526         * double-int.c (tree_to_double_int): Remove.
5527
5528 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5529
5530         PR debug/43762
5531         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5532         with want_address 2 and in case a single element list might be
5533         possible, call it again with want_address 0.
5534
5535 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5536
5537         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5538         case 'W' print operands for HI mode.
5539         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5540         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5541         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5542         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5543
5544         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5545
5546         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5547         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5548         #xx:3 and #xx:4 mode.
5549
5550         * config/h8300/h8300.md (inverted load with HImode dest): Add
5551         support for H8300SX.
5552
5553         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5554         satisfy 'U' constraint.
5555
5556 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5557
5558         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5559         * configure: Regenerate.
5560         * config.in: Regenerate.
5561         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5562         works.
5563
5564 2010-04-16  Richard Guenther  <rguenther@suse.de>
5565
5566         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5567         (struct tree_decl_common): ... here.
5568         (DECL_PT_UID): Adjust.
5569         (SET_DECL_PT_UID): Likewise.
5570         (DECL_PT_UID_SET_P): Likewise.
5571
5572 2010-04-16  Richard Guenther  <rguenther@suse.de>
5573
5574         PR tree-optimization/43572
5575         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5576         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5577         * tree-flow.h (is_call_clobbered): Remove.
5578         * tree-flow-inline.h (is_call_clobbered): Likewise.
5579         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5580         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5581         (execute_return_slot_opt): Adjust.
5582         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5583         check for call clobbered vars here.
5584         (find_tail_calls): Move tailcall verification to the
5585         proper place.
5586
5587 2010-04-16  Diego Novillo  <dnovillo@google.com>
5588
5589         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5590
5591 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5592
5593         PR target/40603
5594         * config/arm/arm.md (cbranchqi4): New pattern.
5595         * config/arm/predicates.md (const0_operand,
5596         cbranchqi4_comparison_operator): New predicates.
5597
5598 2010-04-16  Richard Guenther  <rguenther@suse.de>
5599
5600         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5601         (dump_gimple_stmt): Likewise.
5602
5603 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5604
5605         * recog.h (struct recog_data): New field is_operator.
5606         (struct insn_operand_data): New field is_operator.
5607         * recog.c (extract_insn): Set recog_data.is_operator.
5608         * genoutput.c (output_operand_data): Emit code to set the
5609         is_operator field.
5610         * reload.c (find_reloads): Use it rather than testing for an
5611         empty constraint string.
5612
5613         PR target/41514
5614         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5615         If the previous insn is a cbranchsi4_insn with the same arguments,
5616         omit the compare instruction.
5617
5618         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5619         register, inputs must be low registers and we need a low register
5620         scratch.  Handle alternative 2 like alternative 3.
5621
5622 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5623
5624         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5625         don't call get_addr on both.  If one expression is a VALUE and
5626         the other a REG, check VALUE's locs if the REG isn't among them.
5627
5628 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5629
5630         * config/sh/sh.h (sh_frame_pointer_required): New function.
5631         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5632         (flag_omit_frame_pointer) Set.
5633         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5634         (rounded_frame_size): Adjust size with outgoing_args_size.
5635         (sh_set_return_address): Must return from stack pointer.
5636         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5637         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5638         (ACCUMULATE_OUTGOING_ARGS): Define.
5639         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5640         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5641
5642 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5643
5644         PR target/43471
5645         * config/sh/sh.c (sh_legitimize_reload_address): Use
5646         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5647         Remove a unneeded check for offset_base.
5648
5649 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5650
5651         * configure: Regenerated.
5652
5653 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5654
5655         * config/s390/s390.c (s390_call_save_register_used): Switch back
5656         to HARD_REGNO_NREGS.
5657
5658 2010-04-15  Richard Guenther  <rguenther@suse.de>
5659
5660         * alias.c (alias_set_subset_of): Handle alias-set zero
5661         child properly.
5662
5663 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5664             Julian Brown  <julian@codesourcery.com>
5665
5666         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5667         alternatives according to use of high and low regs.
5668         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5669         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5670         optimizing for size on Thumb-2.
5671
5672 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5673
5674         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5675
5676 2010-04-15  Richard Guenther  <rguenther@suse.de>
5677
5678         * tree-ssa-structalias.c (struct variable_info): Add
5679         is_fn_info flag.
5680         (new_var_info): Initialize it.
5681         (dump_constraints): Support printing last added constraints.
5682         (debug_constraints): Adjust.
5683         (dump_constraint_graph): Likewise.
5684         (make_heapvar_for): Check for NULL cfun.
5685         (get_function_part_constraint): New function.
5686         (get_fi_for_callee): Likewise.
5687         (find_func_aliases): Properly implement IPA PTA constraints.
5688         (process_ipa_clobber): New function.
5689         (find_func_clobbers): Likewise.
5690         (insert_into_field_list_sorted): Remove.
5691         (create_function_info_for): Properly allocate vars for IPA mode.
5692         Do not use insert_into_field_list_sorted.
5693         (create_variable_info_for): Properly generate constraints for
5694         global vars in IPA mode.
5695         (dump_solution_for_var): Always dump the solution.
5696         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5697         (find_what_var_points_to): Adjust.
5698         (pt_solution_set): Change.
5699         (pt_solution_ior_into): New function.
5700         (pt_solution_empty_p): Export.
5701         (pt_solution_includes_global): Adjust.
5702         (pt_solution_includes_1): Likewise.
5703         (pt_solutions_intersect_1): Likewise.
5704         (dump_sa_points_to_info): Check some invariants.
5705         (solve_constraints): Move constraint dumping ...
5706         (compute_points_to_sets): ... here.
5707         (ipa_pta_execute): ... and here.
5708         (compute_may_aliases): Do not re-compute points-to info
5709         locally if IPA info is available.
5710         (ipa_escaped_pt): New global var.
5711         (ipa_pta_execute): Properly implement IPA PTA.
5712         * tree-into-ssa.c (dump_decl_set): Support dumping
5713         decls not in referenced-vars.
5714         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5715         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5716         (dump_points_to_solution): Likewise.
5717         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5718         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5719         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5720         (copy_decl_to_var): Copy DECL_PT_UID.
5721         (copy_result_decl_to_var): Likewise.
5722         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5723         (copy_node_stat): Copy it.
5724         * tree.h (DECL_PT_UID): New macro.
5725         (SET_DECL_PT_UID): Likewise.
5726         (DECL_PT_UID_SET_P): Likewise.
5727         (struct tree_decl_minimal): Add pt_uid member.
5728         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5729         (pt_solution_empty_p): Declare.
5730         (pt_solution_set): Adjust.
5731         (ipa_escaped_pt): Declare.
5732         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5733         * gimple-pretty-print.c (pp_points_to_solution): New function.
5734         (dump_gimple_call): Dump call clobber/use information.
5735         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5736         * tree-pass.h (TDF_ALIAS): New dump option.
5737         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5738         * doc/invoke.texi (-fipa-pta): Update documentation.
5739
5740 2010-04-15  Richard Guenther  <rguenther@suse.de>
5741
5742         * Makefile.in (OBJS-common): Add gimple-fold.o.
5743         (gimple-fold.o): New rule.
5744         * tree.h (maybe_fold_offset_to_reference,
5745         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5746         prototypes ...
5747         * gimple.h: ... here.
5748         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5749         may_propagate_address_into_dereference): Move prototypes ...
5750         * gimple.h: ... here.
5751         * tree-ssa-ccp.c (get_symbol_constant_value,
5752         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5753         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5754         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5755         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5756         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5757         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5758         gimplify_and_update_call_from_tree): Move ...
5759         * gimple-fold.c: ... here.  New file.
5760         (ccp_fold_builtin): Rename to ...
5761         (gimple_fold_builtin): ... this.
5762         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5763
5764 2010-04-15  Richard Guenther  <rguenther@suse.de>
5765
5766         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5767         fit_double_type, force_fit_type_double, add_double_with_sign,
5768         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5769         lrotate_double, rrotate_double, div_and_round_double): Move ...
5770         * double-int.c: ... here.
5771         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5772         add_double, neg_double, mul_double_with_sign, mul_double,
5773         lshift_double, rshift_double, lrotate_double, rrotate_double,
5774         div_and_round_double): Move prototypes ...
5775         * double-int.h: ... here.
5776
5777 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5778
5779         PR target/43742
5780         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5781         matching constraints to ensure inputs match the output.
5782
5783 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5784
5785         PR target/43742
5786         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5787         in an input-only operand.
5788
5789 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5790
5791         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5792         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5793         (double_int_negative_p): Convert to static inline function.
5794         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5795         (double_int_negative_p): Remove.
5796         * tree.h (lshift_double, rshift_double):
5797         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5798         * fold-const.c (fold_convert_const_int_from_real,
5799         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5800         (lshift_double): Change type of arith argument to bool.
5801         (rshift_double): Change type of arith argument to bool. Correct
5802         comment.
5803         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5804
5805 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5806
5807         PR target/21803
5808         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5809         at the start and end of the then/else blocks, and omit them from the
5810         conversion.
5811         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5812         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5813         (flow_find_head_matching_sequence): New function.
5814         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5815         * basic-block.h (flow_find_cross_jump,
5816         flow_find_head_matching_sequence): Declare functions.
5817
5818 2010-04-14  Jason Merrill  <jason@redhat.com>
5819
5820         PR c++/36625
5821         * c-common.c (attribute_takes_identifier_p): New fn.
5822         * c-common.h: Declare it.
5823
5824 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5825
5826         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5827         splitter condition.
5828         (*udivmod<mode>4): Ditto.
5829
5830 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5831
5832         * config/i386/i386.md (maxmin_int): Rename code attribute from
5833         maxminiprefix and update all users.
5834         (maxmin_float): Ditto from maxminfprefix.
5835         (logic): Ditto from logicprefix.
5836         (absneg_mnemonic): Ditto from absnegprefix.
5837         * config/i386/mmx.md: Update all users of maxminiprefix,
5838         maxminfprefix and logicprefix for rename.
5839         * config/i386/sse.md: Ditto.
5840         * config/i386/sync.md (sync_<code><mode>): Update for
5841         logicprefix rename.
5842
5843 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5844
5845         PR 42966
5846         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5847         warnings converted to errors.
5848
5849 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5850
5851         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5852         used insn_type variable.
5853         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5854         to avoid set-but-not-used warning.
5855
5856 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5857
5858         * df-core.c (df_ref_debug): Change format string placeholder
5859         from 0x%x to %#x.
5860         * dwarf2asm.c (dw2_asm_output_data_raw,
5861         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5862         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5863         * dwarf2out.c (output_cfi, output_cfi_directive,
5864         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5865         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5866         Ditto.
5867         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5868         * print-rtl.c (print_rtx): Ditto.
5869
5870 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5871
5872         PR middle-end/42694
5873         * builtins.c (expand_builtin_pow_root): New function to expand pow
5874         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5875         series of sqrt and cbrt calls under -ffast-math.
5876         (expand_builtin_pow): Call it.
5877
5878 2010-04-14  Michael Matz  <matz@suse.de>
5879
5880         PR tree-optimization/42963
5881         * tree-cfg.c (touched_switch_bbs): New static variable.
5882         (group_case_labels_stmt): New function broken out from ...
5883         (group_case_labels): ... here, use the above.
5884         (start_recording_case_labels): Allocate touched_switch_bbs.
5885         (end_recording_case_labels): Deallocate it, call
5886         group_case_labels_stmt.
5887         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5888
5889 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5890
5891         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5892         from insn template.
5893
5894 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5895
5896         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5897
5898 2010-04-13  Jan Hubicka  <jh@suse.cz>
5899
5900         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5901         of optimized out static functions.
5902         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5903         cost computation.  Also sanity check for overflows.
5904         (update_caller_keys): Update cgraph_edge_badness call; properly
5905         update fibheap and sanity check that it is up to date.
5906         (add_new_edges_to_heap): Update cgraph_edge_badness.
5907         (cgraph_decide_inlining_of_small_function): Likewise;
5908         add sanity checking that badness in heap is up to date;
5909         improve dumping of reason; Update badness of calls to the
5910         offline copy of function currently inlined; dump badness
5911         of functions not inlined because of unit growth limits.
5912
5913 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5914
5915         PR middle-end/32628
5916         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5917         because of sign-extension change when converting to sizetype here...
5918         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5919
5920         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5921         the folding to constants.  Remove redundant final conversion.
5922         (fold_binary) <associate>: Do not associate if the re-association of
5923         constants alone overflows.
5924         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5925         to the end of the list.
5926         (multiple_of_p) <COND_EXPR>: New case.
5927
5928 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5929
5930         * opt-functions.awk (opt_sanitized_name): New.
5931         (opt_enum): New.
5932         * optc-gen.awk: Use it
5933         * opth-gen.awk: Use it.
5934
5935 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5936
5937         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5938         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5939         children.  Call replace_uses_with_default_def_ssa_name to handle
5940         SSA_NAES on lhs.
5941
5942 2010-04-13  Michael Matz  <matz@suse.de>
5943
5944         PR middle-end/43730
5945         * builtins.c (expand_builtin_interclass_mathfn): Also create
5946         a register if the predicate doesn't match.
5947
5948 2010-04-13  Diego Novillo  <dnovillo@google.com>
5949
5950         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5951         * c-pch.c: Include timevar.h.
5952         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5953         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5954         * ggc-common.c: Include timevar.h.
5955         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5956         * timevar.def (TV_PCH_SAVE): Define.
5957         (TV_PCH_CPP_SAVE): Define.
5958         (TV_PCH_PTR_REALLOC): Define.
5959         (TV_PCH_PTR_SORT): Define.
5960         (TV_PCH_RESTORE): Define.
5961         (TV_PCH_CPP_RESTORE): Define.
5962
5963 2010-04-13  Michael Matz  <matz@suse.de>
5964
5965         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5966         into MINUS_EXPRs.
5967         (can_reassociate_p): New function.
5968         (break_up_subtract_bb, reassociate_bb): Use it.
5969
5970 2010-04-13  Richard Guenther  <rguenther@suse.de>
5971
5972         PR bootstrap/43737
5973         * builtins.c (c_readstr): Fix assert.
5974
5975 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5976
5977         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5978         when generating cltd insn.
5979
5980         (*ashl<mode>3_1): Remove special handling for register operand 2.
5981         (*ashlsi3_1_zext): Ditto.
5982         (*ashlhi3_1): Ditto.
5983         (*ashlhi3_1_lea): Ditto.
5984         (*ashlqi3_1): Ditto.
5985         (*ashlqi3_1_lea): Ditto.
5986         (*<shiftrt_insn><mode>3_1): Ditto.
5987         (*<shiftrt_insn>si3_1_zext): Ditto.
5988         (*<shiftrt_insn>qi3_1_slp): Ditto.
5989         (*<rotate_insn><mode>3_1): Ditto.
5990         (*<rotate_insn>si3_1_zext): Ditto.
5991         (*<rotate_insn>qi3_1_slp): Ditto.
5992
5993 2010-04-13  Richard Guenther  <rguenther@suse.de>
5994
5995         * tree-ssa-structalias.c (callused_id): Remove.
5996         (call_stmt_vars): New.
5997         (get_call_vi): Likewise.
5998         (lookup_call_use_vi): Likewise.
5999         (lookup_call_clobber_vi): Likewise.
6000         (get_call_use_vi): Likewise.
6001         (get_call_clobber_vi): Likewise.
6002         (make_transitive_closure_constraints): Likewise.
6003         (handle_const_call): Adjust to do per-call call-used handling.
6004         (handle_pure_call): Likewise.
6005         (find_what_var_points_to): Remove general callused handling.
6006         (init_base_vars): Likewise.
6007         (init_alias_vars): Initialize call_stmt_vars.
6008         (compute_points_to_sets): Process call-used and call-clobbered
6009         vars for call statements.
6010         (delete_points_to_sets): Free call_stmt_vars.
6011
6012 2010-04-13  Richard Guenther  <rguenther@suse.de>
6013
6014         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6015         Only add RW dependence for dependence distance zero.
6016         Adjust maximal vectorization factor according to dependences.
6017         Move alignment handling ...
6018         (vect_find_same_alignment_drs): ... here.  New function.
6019         (vect_analyze_data_ref_dependences): Adjust.
6020         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
6021         (vect_analyze_data_refs): Adjust minimal vectorization factor
6022         according to data references.
6023         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
6024         dependences before determining the vectorization factor.
6025         Analyze alignment after determining the vectorization factor.
6026         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
6027         dependences before alignment.
6028         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
6029         Adjust prototype.
6030         (vect_analyze_data_refs): Likewise.
6031         (MAX_VECTORIZATION_FACTOR): New define.
6032
6033 2010-04-13  Duncan Sands  <baldrick@free.fr>
6034
6035         * except.h (lang_eh_type_covers): Remove.
6036         * except.c (lang_eh_type_covers): Likewise.
6037
6038 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6039             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6040
6041         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
6042         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
6043         UNITS_PER_LONG where it is ABI relevant.
6044         (s390_return_addr_rtx): Likewise.
6045         (s390_back_chain_rtx): Likewise.
6046         (s390_frame_area): Likewise.
6047         (s390_frame_info): Likewise.
6048         (s390_initial_elimination_offset): Likewise.
6049         (save_gprs): Likewise.
6050         (s390_emit_prologue): Likewise.
6051         (s390_emit_epilogue): Likewise.
6052         (s390_function_arg_advance): Likewise.
6053         (s390_function_arg): Likewise.
6054         (s390_va_start): Likewise.
6055         (s390_gimplify_va_arg): Likewise.
6056         (s390_function_profiler): Likewise.
6057         (s390_optimize_prologue): Likewise.
6058         (s390_rtx_costs): Likewise.
6059         (s390_secondary_reload): Likewise.
6060         (s390_promote_function_mode): Likewise.
6061         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
6062         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
6063         registers available.
6064         (s390_unwind_word_mode): New function.
6065         (s390_function_value): Split 64 bit values into register pair if
6066         used as return value.
6067         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
6068         function call parameters.  Handle parallels.
6069         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
6070         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
6071         (DWARF_CIE_DATA_ALIGNMENT): New macro.
6072         (s390_expand_setmem): Remove unused variable src_addr.
6073         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
6074         deal with 64 bit registers.
6075         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
6076         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
6077         (UNITS_PER_LONG): New macro.
6078         * libjava/include/s390-signal.h: Define extended ucontext
6079         structure containing the upper halfs of the 64 bit registers.
6080
6081 2010-04-13  Simon Baldwin  <simonb@google.com>
6082
6083         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
6084
6085 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
6086
6087         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
6088         rvalue on the RHS if the LHS is of a non-renamable type.
6089         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
6090
6091 2010-04-13  Matthias Klose  <doko@ubuntu.com>
6092
6093         * gcc.c (cc1_options): Handle -iplugindir before processing
6094         the cc1 spec. Only add -iplugindir once.
6095         (cpp_unique_options): Add -iplugindir option if -fplugin* options
6096         found.
6097         * common.opt (iplugindir): Remove `Separate' property, initialize.
6098         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
6099         option.
6100         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
6101         (distclean): Remove plugin dir.
6102         * doc/invoke.texi: Document -iplugindir.
6103
6104 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
6105
6106         * doc/plugins.texi (Loading Plugins): Document short
6107         -fplugin=foo option.
6108         (Plugin API): Mention default_plugin_dir_name function.
6109
6110         * gcc.c (find_file_spec_function): Add new declaration.
6111         (static_spec_func): Use it for "find-file".
6112         (find_file_spec_function): Add new function.
6113         (cc1_options): Add -iplugindir option if -fplugin* options found.
6114
6115         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
6116
6117         * plugin.c (add_new_plugin): Updated comment, and handle short
6118         plugin name.
6119         (default_plugin_dir_name): Added new function.
6120
6121         * common.opt (iplugindir): New option to set the plugin directory.
6122
6123 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
6124
6125         * config/i386/i386.md (any_rotate): New code iterator.
6126         (rotate_insn): New code attribute.
6127         (rotate): Ditto.
6128         (SWIM124): New mode iterator.
6129         (<rotate_insn>ti3): New expander.
6130         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
6131         any_rotate code iterator.
6132         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
6133         using any_rotate code iterator and SWIM124 mode iterator.
6134         (ix86_rotlti3): New insn_and_split pattern.
6135         (ix86_rotrti3): Ditto.
6136         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
6137         ix86_rotl{di,ti}3 patterns.
6138         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
6139         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
6140         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
6141         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
6142         code iterator and SWI mode iterator.
6143         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
6144         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
6145         code iterator.
6146         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
6147         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
6148         (bswap rotatert splitter): Add splitter.
6149         (bswap splitter): Macroize splitter using any_rotate code iterator.
6150         Add insn predicate to split only for TARGET_USE_XCHGB or when
6151         optimizing function for size.
6152
6153 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6154
6155         * config/pa/pa.c (emit_move_sequence): Remove use of
6156         deleted variable flag_argument_noalias.
6157
6158 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6159
6160         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
6161         configurations.
6162         Add to unsupported targets list.
6163         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
6164         sparc*-sun-solaris2.[567]* from target lists.
6165         * configure: Regenerate.
6166         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
6167         removal.
6168         Remove Solaris 7 patch references.
6169         (Specific, sparc-sun-solaris2.7): Removed.
6170         (sparc-sun-solaris2*): Update Solaris 7 example.
6171         (sparc64-*-solaris2*): Likewise.
6172
6173 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6174
6175         * config.build (alpha*-dec-osf4*): Remove.
6176         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
6177         of obsolete configurations.
6178         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
6179         support.
6180         * config/alpha/t-osf4: Renamed to ...
6181         * config/alpha/t-osf5: ... this.
6182         * config/alpha/osf.h: Renamed to ...
6183         * config/alpha/osf5.h: ... this.
6184         Merged old osf5.h contents.
6185         Update comments.
6186         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
6187         (EXTRA_SPECS): Removed.
6188         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
6189         reflect removal of Tru64 UNIX V4.0/V5.0 support.
6190         Document that.
6191
6192 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6193
6194         * doc/contrib.texi (Contributors, Rainer Orth): Update.
6195
6196 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
6197
6198         PR/43702
6199         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
6200         __thiscall convention.
6201
6202 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6203
6204         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
6205         orig_base.
6206         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
6207
6208 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6209
6210         * function.c (assign_parms_initialize_all): Add unused attribute
6211         to fntype.
6212
6213 2010-04-12  Richard Guenther  <rguenther@suse.de>
6214
6215         * gsstruct.def (GSS_CALL): New.
6216         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
6217         * gimple.h: Include tree-ssa-alias.h.
6218         (struct gimple_statement_call): New.
6219         (union gimple_statement_struct_d): Add gimple_call member.
6220         (gimple_call_reset_alias_info): Declare.
6221         (gimple_call_use_set): New function.
6222         (gimple_call_clobber_set): Likewise.
6223         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
6224         * gimple.c (gimple_call_reset_alias_info): New function.
6225         (gimple_build_call_1): Call it.
6226         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6227         * tree-inline.c (remap_gimple_stmt): Likewise.
6228         (expand_call_inline): Remove callused handling.
6229         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
6230         * tree-dfa.c (dump_variable): Likewise.
6231         * tree-parloops.c (parallelize_loops): Likewise.
6232         * tree-ssa.c (init_tree_ssa): Likewise.
6233         (delete_tree_ssa): Likewise.
6234         * tree-flow-inline.h (is_call_used): Remove.
6235         * tree-flow.h (struct gimple_df): Remove callused member.
6236         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
6237         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
6238         (ref_maybe_used_by_call_p_1): Simplify.
6239         (call_may_clobber_ref_p_1): Likewise.
6240         * tree-ssa-structalias.c (compute_points_to_sets): Set
6241         the call stmt used and clobbered sets.
6242         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
6243         (find_tail_calls): Verify the tail call.
6244
6245 2010-04-12  Richard Guenther  <rguenther@suse.de>
6246
6247         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6248         single-iteration always-inline inlining.
6249         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6250         (cgraph_decide_inlining): Do not handle always-inline specially.
6251         (try_inline): Remove always-inline cycle detection special case.
6252         Do not recurse on always-inlines.
6253         (cgraph_early_inlining): Do not iterate if not optimizing.
6254         (cgraph_gate_early_inlining): remove.
6255         (pass_early_inline): Run unconditionally.
6256         (gate_cgraph_decide_inlining): New function.
6257         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6258         not inlining or optimizing.
6259         (cgraph_decide_inlining_of_small_functions): Also consider
6260         always-inline functions.
6261         (cgraph_default_inline_p): Return true for nodes which should
6262         disregard inline limits.
6263         (estimate_function_body_sizes): Assume zero size and time for
6264         nodes which are marked as disregarding inline limits.
6265         (cgraph_decide_recursive_inlining): Do not perform recursive
6266         inlining on always-inline nodes.
6267
6268 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6269
6270         PR bootstrap/43699
6271         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6272         for exprs satisfying handled_component_p.
6273
6274 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6275
6276         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6277         non-constant aggregate elements.
6278
6279         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6280         is a real initialization.
6281
6282 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6283
6284         PR c/36774
6285         * c-decl.c (start_function): Move forward check for nested function.
6286
6287 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6288
6289         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6290         * config/sh/sh.c: Include reload.h.
6291         (sh_legitimize_reload_address): New.
6292         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6293         sh_legitimize_reload_address.
6294
6295 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6296
6297         * config/sh/sh.md (*movqi_pop): New insn pattern.
6298         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6299
6300 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6301
6302         * config/i386/i386.md (any_shiftrt): New code iterator.
6303         (shiftrt_insn): New code attribute.
6304         (shiftrt): Ditto.
6305         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6306         using any_shiftrt code iterator.
6307         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6308         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6309         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6310         pattern from corresponding peephole2 patterns.
6311         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6312         using any_shiftrt code iterator.
6313         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6314         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6315         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6316         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6317         *{ashr,lshr}<mode>3_cmp_zext.
6318         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6319
6320 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6321
6322         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6323         scratch register.
6324         (*lshr<mode>3_cconly): Ditto.
6325
6326 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6327
6328         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6329         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6330         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6331         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6332         DWI mode iterator.
6333         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6334         from corresponding peephole2 patterns.
6335         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6336         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6337         and *lshrdi3_1_rex64 using SWI mode iterator.
6338         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6339         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6340         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6341         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6342         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6343         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6344         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6345         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6346         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6347         SWI mode iterator.
6348
6349 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6350
6351         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6352         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6353         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6354         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6355         DWI mode iterator.
6356         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6357         from corresponding peephole2 patterns.
6358         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6359         (ashrsi3_cvt): Rename from ashrsi3_31.
6360         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6361         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6362         and x86_64_shift_adj_3 using SWI48 mode iterator.
6363         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6364         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6365         and *ashrdi3_1_rex64 using SWI mode iterator.
6366         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6367         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6368         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6369         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6370         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6371         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6372         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6373         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6374         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6375         SWI mode iterator.
6376         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6377         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6378         x86_shift<mode>_adj_3 expanders.
6379
6380 2010-04-10  Wei Guozhi  <carrot@google.com>
6381
6382         PR target/42601
6383         * config/arm/arm.c (arm_pic_static_addr): New function.
6384         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6385         a static symbol.
6386         (arm_output_addr_const_extra): Output expression for new pattern.
6387         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6388
6389 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6390
6391         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6392         not enabled.
6393
6394         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6395         * web.c: Include "insn-config.h" and "recog.h".
6396         (union_match_dups): New function.
6397         (web_main): Call it.
6398         (union_defs): Don't try to recognize match_dups.
6399
6400         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6401         if doing so would replace the entire pattern.
6402
6403 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6404
6405         PR target/43707
6406         PR target/43709
6407         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6408         and splitter pattern.  Change splitter operand 1 predicate to
6409         nonmemory_operand.
6410
6411 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6412
6413         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6414         lattices are addresses of CONST_DECLs with the same initial value.
6415         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6416         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6417
6418 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6419             Bernd Schmidt  <bernds@codesourcery.com>
6420
6421         * loop-invariant.c (replace_uses): New static function.
6422         (move_invariant_reg): Use it to ensure we can replace the uses.
6423
6424 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6425
6426         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6427         function template.
6428         (picochip_override_options): Enable section anchors only above -O1.
6429         (picochip_reorg): Fixed a couple of build warnings.
6430
6431 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6432
6433         * configure.ac (plugin -rdynamic test): Log result.
6434         * configure: Regenerate.
6435         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6436         (RDYNAMIC_SPEC): Define.
6437         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6438
6439 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6440
6441         * configure.ac: Determine Sun ld version numbers.
6442         (comdat_group): Restrict GNU ld version checks to gld.
6443         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6444         (enable_comdat): Support --enable-comdat.
6445         * configure: Regenerate.
6446         * doc/install.texi (Configuration): Document --enable-comdat.
6447
6448 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6449
6450         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6451         * config/sol2-gld.h: ... here.
6452         * config.gcc (sparc*-*-solaris2*): Reflect this.
6453         (i[34567]86-*-solaris2*): Use it.
6454
6455 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6456
6457         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6458         setup_clocks_p.
6459         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6460
6461 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6462
6463         PR 42965
6464         * diagnostic.c (diagnostic_initialize): Initialize
6465         some_warnings_are_errors.
6466         (diagnostic_finish): New.
6467         (diagnostic_action_after_output): Call it before exiting.
6468         (diagnostic_report_diagnostic): Do not print message here. Set
6469         some_warnings_are_errors.
6470         * diagnostic.h (diagnostic_context): Delete
6471         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6472         (diagnostic_finish): Declare.
6473         * toplev.c (toplev_main): Call it before exit.
6474
6475 2010-04-09  Jason Merrill  <jason@redhat.com>
6476
6477         PR c++/42623
6478         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6479         for incomplete type.
6480
6481         PR c++/41788
6482         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6483         based on a warning flag.
6484
6485 2010-04-09  Richard Guenther  <rguenther@suse.de>
6486
6487         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6488
6489 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6490
6491         PR bootstrap/43684
6492         * varasm.c (default_assemble_visibility): Wrap vars that are
6493         set, but unused, by targets without GAS.
6494         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6495         Remove set, but unused, vars.
6496         (rs6000_legitimize_tls_address): Likewise.
6497         (altivec_expand_dst_builtin): Likewise.
6498         * config/darwin.c (machopic_classify_symbol): Likewise.
6499         (machopic_indirection_name): Likewise.
6500
6501 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6502
6503         * config/i386/i386.md (DWI): New mode iterator.
6504         (S): New mode attribute.
6505         (shift_operand): Ditto.
6506         (shift_immediate_operand): Ditto.
6507         (ashl_input_operand): Ditto.
6508         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6509         using SDWIM mode iterator.
6510         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6511         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6512         DWI mode iterator.
6513         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6514         from corresponding peephole2 patterns.
6515         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6516         and x86_64_shift_adj_1 using SWI48 mode iterator.
6517         (x86_shift<mode>_adj_2): Ditto.
6518         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6519         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6520         using SWI48 mode iterator.
6521         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6522         *ashldi3_cmp_rex64 using SWI mode iterator.
6523         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6524         *ashldi3_cconly_rex64 using SWI mode iterator.
6525         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6526         x86_shift<mode>_adj_{1,2}.
6527         (ix86_split_ashr): Ditto.
6528         (ix86_split_lshr): Ditto.
6529
6530 2010-04-09  Richard Guenther  <rguenther@suse.de>
6531
6532         * target.h (builtin_conversion): Pass in input and output types.
6533         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6534         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6535         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6536         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6537
6538         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6539         Handle AVX modes.
6540         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6541
6542 2010-04-09  Richard Guenther  <rguenther@suse.de>
6543
6544         PR target/43152
6545         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6546
6547 2010-04-09  Richard Guenther  <rguenther@suse.de>
6548
6549         * tree-vectorizer.h (struct _stmt_vec_info): Document
6550         that vectype is the type of the LHS.
6551         (supportable_widening_operation, supportable_narrowing_operation):
6552         Get both input and output vector types as arguments.
6553         (vect_is_simple_use_1): Declare.
6554         (get_same_sized_vectype): Likewise.
6555         * tree-vect-loop.c (vect_determine_vectorization_factor):
6556         Set STMT_VINFO_VECTYPE to the vector type of the def.
6557         (vectorizable_reduction): Adjust.
6558         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6559         Adjust.  Specify the output vector type.
6560         (vect_pattern_recog_1): Adjust.
6561         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6562         (vectorizable_call): Adjust.
6563         (vectorizable_conversion): Likewise.
6564         (vectorizable_operation): Likewise.
6565         (vectorizable_type_demotion): Likewise.
6566         (vectorizable_type_promotion): Likewise.
6567         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6568         the def.
6569         (vect_is_simple_use_1): New function.
6570         (supportable_widening_operation): Get both input and output
6571         vector types.
6572         (supportable_narrowing_operation): Likewise.
6573         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6574
6575 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6576
6577         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6578         __thiscall and _thiscall as predefined macros.
6579         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6580         thiscall attribute handling.
6581         (ix86_comp_type_attributes): Likewise.
6582         (ix86_function_regparm): Likewise.
6583         (ix86_return_pops_args): Likewise.
6584         (init_cumulative_args): Likewise.
6585         (find_drap_reg): Likewise.
6586         (ix86_static_chain): Likewise.
6587         (x86_this_parameter): Likewise.
6588         (x86_output_mi_thunk): Likewise.
6589         (ix86_attribute_table): Add description for thiscall attribute.
6590         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6591         * doc/extend.texi: Add documentation for thiscall.
6592
6593 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6594
6595         PR c++/28584
6596         * c.opt (Wint-to-pointer-cast): Available in C++.
6597         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6598
6599 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6600
6601         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6602         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6603         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6604         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6605         function type instead.  Reorder and simplify checks.
6606
6607         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6608
6609 2010-04-08  Jing Yu  <jingyu@google.com>
6610             Zdenek Dvorak  <ook@ucw.cz>
6611
6612         PR tree-optimization/42720
6613         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6614         loop unswitch conditions here from ...
6615         (tree_unswitch_single_loop): ... here.
6616
6617 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6618
6619         * tree-if-conv.c: Fix comments and simplify logic.
6620
6621 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6622
6623         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6624         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6625         (main_tree_if_conversion): Update call to tree_if_conversion.
6626
6627 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6628
6629         PR 42485
6630         * doc/invoke.texi (-b,-V): Delete.
6631         * doc/tm.texi: Do not mention -b.
6632         * gcc.c (display_help): Delete -b and -V.
6633         (process_command): Delete -b and -V.
6634         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6635
6636 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6637             Wolfgang Gellerich  <gellerich@de.ibm.com>
6638
6639         Implement target hook for loop unrolling
6640         * target.h (loop_unroll_adjust): Add a new target hook function.
6641         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6642         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6643         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6644         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6645         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6646         target hook.
6647         (decide_unroll_stupid): Likewise.
6648
6649 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6650
6651         PR target/43643
6652         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6653
6654 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6655
6656         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6657         (Specific, *-*-solaris2*): Likewise.
6658         Don't prefer Sun as over GNU as.
6659
6660 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6661
6662         * config/s390/s390.c (override_options): Adjust the z10 defaults
6663         for max-unroll-times, max-completely-peeled-insns
6664         and max-completely-peel-times.
6665
6666 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6667
6668         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6669         instructions for z10.
6670         (s390_expand_setmem): Likewise.
6671         (s390_expand_cmpmem): Likewise.
6672
6673 2010-04-08  Richard Guenther  <rguenther@suse.de>
6674
6675         PR tree-optimization/43679
6676         * tree-ssa-pre.c (eliminate): Only propagate copies.
6677
6678 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6679
6680         PR bootstrap/43681
6681         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6682         set but not used variable warning.
6683
6684 2010-04-08  Wei Guozhi  <carrot@google.com>
6685
6686         PR target/41653
6687         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6688         (arm_size_rtx_costs): Call the new function when optimized for size.
6689
6690 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6691
6692         PR debug/43670
6693         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6694         op0 is not a MEM, just return NULL instead of assertion
6695         failure.
6696         (discover_nonconstant_array_refs): Don't walk debug stmts.
6697
6698 2010-04-08  Doug Kwan  <dougkwan@google.com>
6699
6700         * configure.ac: Recognize gold and do not use its version number
6701         to test ld features.
6702         * configure: Regenerate.
6703
6704 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6705
6706         PR middle-end/40815
6707         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6708         (negate_value): Move code to push elements to broken_up_substracts ...
6709         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6710         negative pair to plus_negates.
6711         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6712
6713 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6714
6715         * doc/install.texi (Configuration): Move description of
6716         --enable-lto, --with-libelf*, --enable-gold from Java section to
6717         general section.
6718
6719         * doc/generic.texi (Working with declarations)
6720         (Function Properties, C and C++ Trees): Fix typos.
6721         * doc/sourcebuild.texi (Top Level): Likewise.
6722
6723 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6724
6725         PR c/18624
6726         * tree.h (DECL_READ_P): Define.
6727         (struct tree_decl_common): Add decl_read_flag.
6728         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6729         a set but not used warning.
6730         (merge_decls): Merge DECL_READ_P flag.
6731         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6732         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6733         * c-common.c (handle_used_attribute, handle_unused_attribute):
6734         Likewise.
6735         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6736         New prototypes.
6737         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6738         New functions.
6739         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6740         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6741         c_parser_binary_expression, c_parser_cast_expression,
6742         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6743         Call default_function_array_read_conversion instead of
6744         default_function_array_conversion where needed.
6745         (c_parser_unary_expression, c_parser_conditional_expression,
6746         c_parser_postfix_expression_after_primary, c_parser_initelt):
6747         Likewise.  Call mark_exp_read where needed.
6748         (c_parser_statement_after_labels, c_parser_asm_operands,
6749         c_parser_typeof_specifier, c_parser_sizeof_expression,
6750         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6751         where needed.
6752         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6753         New.
6754         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6755         (warn_unused_but_set_parameter): Default to warn_unused
6756         && extra_warnings.
6757         * doc/invoke.texi: Document -Wunused-but-set-variable and
6758         -Wunused-but-set-parameter.
6759
6760         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6761         used count variable.
6762         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6763         when operandN variables aren't used in the body of the expander
6764         or splitter.
6765         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6766         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6767         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6768         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6769         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6770         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6771         * tree.c (PROCESS_ARG): Likewise.
6772
6773 2010-04-07  Simon Baldwin  <simonb@google.com>
6774
6775         * diagnostic.h (diagnostic_override_option_index): New macro to
6776         set a diagnostic's option_index.
6777         * c-tree.h (c_cpp_error): Add warning reason argument.
6778         * opts.c (_warning_as_error_callback): New.
6779         (register_warning_as_error_callback): Store callback for
6780         warnings enabled via enable_warning_as_error.
6781         (enable_warning_as_error): Call callback, minor code tidy.
6782         * opts.h (register_warning_as_error_callback): Declare.
6783         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6784         response to -Werror=.
6785         (c_common_init_options): Register warning_as_error_callback in opts.c.
6786         * common.opt: Add -Wno-cpp option.
6787         * c-common.c (struct reason_option_codes_t): Map cpp warning
6788         reason codes to gcc option indexes.
6789         * (c_option_controlling_cpp_error): New function, lookup the gcc
6790         option index for a cpp warning reason code.
6791         * (c_cpp_error): Add warning reason argument, call
6792         c_option_controlling_cpp_error for diagnostic_override_option_index.
6793         * doc/invoke.texi: Document -Wno-cpp.
6794
6795 2010-04-07  Richard Guenther  <rguenther@suse.de>
6796
6797         * ipa-reference.c (mark_load): Use get_base_address.
6798         (mark_store): Likewise.
6799
6800         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6801         inserting GIMPLE_NOPs into the IL.
6802         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6803         Explicitly strip handled components and indirect references.
6804
6805         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6806         folding address expressions.
6807         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6808         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6809         operand_equal_p to compare decls.
6810         (ptr_deref_may_alias_decl_p): Likewise.
6811         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6812         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6813         Handle reversed comparison ops.
6814         * tree-sra.c (asm_visit_addr): Use get_base_address.
6815         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6816         * ipa-reference.c (mark_address): Use get_base_address.
6817
6818 2010-04-07  Richard Guenther  <rguenther@suse.de>
6819
6820         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6821         Propagate constants everywhere.
6822
6823 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6824
6825         PR debug/43516
6826         * tree.c (MAX_INT_CACHED_PREC): Define.
6827         (nonstandard_integer_type_cache): New array.
6828         (build_nonstandard_integer_type): Cache results for precision
6829         <= MAX_INT_CACHED_PREC.
6830
6831 2010-04-07  Richard Guenther  <rguenther@suse.de>
6832
6833         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6834         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6835         * common.opt: Likewise.
6836         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6837         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6838         (nonoverlapping_memrefs_p): Likewise.
6839         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6840         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6841         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6842         OPT_fargument_noalias_global for backward compatibility.
6843
6844 2010-04-07  Richard Guenther  <rguenther@suse.de>
6845
6846         PR tree-optimization/43270
6847         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6848         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6849         * tree-ssa-pre.c (phi_translate_1): Adjust.
6850         (fully_constant_expression): Split out vn_reference handling to ...
6851         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6852         Fold reads from constant strings.
6853         (vn_reference_lookup): Handle fully constant references.
6854         (vn_reference_lookup_pieces): Likewise.
6855         * Makefile.in (expmed.o-warn): Add -Wno-error.
6856
6857 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6858
6859         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6860
6861 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6862
6863         PR driver/41594
6864         * gcc.c: Add -static-libstdc++ to list of recognized options.
6865
6866 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6867
6868         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6869
6870 2010-04-07  Richard Guenther  <rguenther@suse.de>
6871
6872         PR middle-end/42617
6873         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6874         bases build simple mem attributes to retain points-to information.
6875
6876 2010-04-07  Richard Guenther  <rguenther@suse.de>
6877
6878         PR middle-end/42617
6879         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6880         preserve points-to related information.
6881
6882 2010-04-07  Richard Guenther  <rguenther@suse.de>
6883
6884         PR middle-end/42617
6885         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6886         discard plain indirect references.
6887         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6888         * tree.c (tree_nop_conversion): Likewise.
6889
6890 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6891
6892         PR debug/43628
6893         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6894
6895 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6896
6897         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6898         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6899
6900 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6901
6902         * tree-if-conv.c: Fix indentation and comments.
6903
6904 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6905
6906         * tree-if-conv.c: Sort static functions in topological order.
6907
6908 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6909
6910         * tree-if-conv.c: Fix indentation and comments.
6911
6912 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6913
6914         PR middle-end/43519
6915         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6916         lang_hooks.types.type_for_size instead of
6917         build_nonstandard_integer_type.
6918         When converting an unsigned type to signed, double its precision.
6919         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6920         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6921         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6922         use lb <= ub.
6923
6924 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6925
6926         PR middle-end/43519
6927         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6928         POINTER_PLUS_EXPR for pointer types.
6929
6930 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6931
6932         PR middle-end/43519
6933         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6934         * graphite-clast-to-gimple.c: Include langhooks.h.
6935         (max_signed_precision_type): New.
6936         (max_precision_type): Takes two types as arguments.
6937         (precision_for_value): New.
6938         (precision_for_interval): New.
6939         (gcc_type_for_interval): New.
6940         (gcc_type_for_value): New.
6941         (gcc_type_for_clast_term): New.
6942         (gcc_type_for_clast_red): New.
6943         (gcc_type_for_clast_bin): New.
6944         (gcc_type_for_clast_expr): Split up into several functions.
6945         (gcc_type_for_clast_eq): Rewritten.
6946         (compute_bounds_for_level): New.
6947         (compute_type_for_level_1): New.
6948         (compute_type_for_level): New.
6949         (gcc_type_for_cloog_iv): Removed.
6950         (gcc_type_for_iv_of_clast_loop): Rewritten.
6951         (graphite_create_new_loop): Compute the lower and upper bound types
6952         with gcc_type_for_clast_expr.
6953         (graphite_create_new_loop_guard): Same.
6954         (find_cloog_iv_in_expr): Removed.
6955         (compute_cloog_iv_types_1): Removed.
6956         (compute_cloog_iv_types): Removed.
6957         (gloog): Do not call compute_cloog_iv_types.
6958         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6959         GBB_CLOOG_IV_TYPES.
6960         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6961         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6962         (GBB_CLOOG_IV_TYPES): Removed.
6963
6964 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6965
6966         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6967         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6968         (detect_commutative_reduction): Same.
6969
6970 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6971
6972         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6973         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6974         argument.
6975         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6976         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6977         (rewrite_commutative_reductions_out_of_ssa): Same.
6978         * passes.c (execute_function_todo): Call verify_ssa for every pass
6979         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6980         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6981         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6982         with an extra argument.
6983         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6984         verify_ssa only when the extra argument is true.
6985         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6986         with an extra argument.
6987         (tree_transform_and_unroll_loop): Same.
6988
6989 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6990
6991         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6992         for all the passes of the LNO having LOOP_CLOSED_SSA.
6993         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6994         * tree-loop-distribution.c (pass_loop_distribution): Same.
6995         * tree-pass.h (TODO_verify_loops): Removed.
6996         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6997         (pass_lim): Same.
6998         (pass_tree_unswitch): Same.
6999         (pass_predcom): Same.
7000         (pass_vectorize): Same.
7001         (pass_linear_transform): Same.
7002         (pass_graphite_transforms): Same.
7003         (pass_iv_canon): Same.
7004         (pass_complete_unroll): Same.
7005         (pass_complete_unrolli): Same.
7006         (pass_parallelize_loops): Same.
7007         (pass_loop_prefetch): Same.
7008         (pass_iv_optimize): Same.
7009
7010 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
7011
7012         PR middle-end/32824
7013         * passes.c (init_optimization_passes): Move pass_lim before
7014         pass_copy_prop and pass_dce_loop.
7015
7016 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7017
7018         PR target/43667
7019         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
7020         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
7021         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
7022         MULTI_* defines for 4 argument vpermil2p* builtins.
7023
7024 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7025
7026         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
7027         * config/i386/i386.c (x86_maybe_negate_const_int): New.
7028         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
7029         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
7030         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
7031         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
7032         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
7033         Use x86_maybe_negate_const_int to output insn mnemonic.
7034         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
7035         check from instruction predicate.  Update comments.
7036         * config/i386/sync.md (sync_add<mode>): Use
7037         x86_maybe_negate_const_int to output insn mnemonic.
7038
7039 2010-04-06  Jan Hubicka  <jh@suse.cz>
7040
7041         PR tree-optimization/42906
7042         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
7043         IGNORE_SELF argument.  Set visited_control_parents for fully
7044         processed BBs.
7045         (find_obviously_necessary_stmts): Update call of
7046         mark_control_dependent_edges_necessary.
7047         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
7048
7049 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7050
7051         * config/i386/i386.md: Remove comment about 'e' and 'E'
7052         operand modifier.
7053
7054 2010-04-06  Richard Guenther  <rguenther@suse.de>
7055
7056         PR tree-optimization/43627
7057         * tree-vrp.c (extract_range_from_unary_expr): Widenings
7058         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
7059         not varying.
7060
7061 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7062
7063         * BASE-VER: Change to 4.6.0.
7064
7065         PR target/43638
7066         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
7067         handling.
7068
7069 2010-04-06  Richard Guenther  <rguenther@suse.de>
7070
7071         PR middle-end/43661
7072         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
7073
7074 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7075
7076         * doc/invoke.texi (Optimize Options): Document that LTO
7077         won't remove object access purely due to incompatible
7078         declarations.
7079
7080 2010-04-04  Matthias Klose  <doko@ubuntu.com>
7081
7082         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
7083         Initialize variable.
7084
7085 2010-04-03  Richard Guenther  <rguenther@suse.de>
7086
7087         PR middle-end/42509
7088         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
7089         require a non-NULL MEM_OFFSET.
7090
7091 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
7092
7093         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
7094         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
7095         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
7096         config/alpha/predicates.md, config/arm/arm.md,
7097         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
7098         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
7099         config/darwin9.h, config/darwin.c, config/darwin.h,
7100         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
7101         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
7102         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
7103         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
7104         config/mips/mips.md, config/mn10300/mn10300.c,
7105         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
7106         config/rs6000/aix.h, config/rs6000/dfp.md,
7107         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
7108         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
7109         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
7110         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
7111         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
7112         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
7113         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
7114         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
7115         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
7116         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
7117         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
7118         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
7119         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
7120         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
7121         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
7122         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
7123         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
7124         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
7125         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
7126         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
7127         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
7128         opt-functions.awk, opth-gen.awk, params.def, passes.c,
7129         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
7130         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
7131         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
7132         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
7133         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
7134         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
7135         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
7136         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
7137         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
7138         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
7139         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
7140         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
7141         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
7142         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
7143
7144 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7145
7146         PR other/43620
7147         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
7148         * aclocal.m4: Regenerate.
7149
7150 2010-04-02  Richard Guenther  <rguenther@suse.de>
7151
7152         PR tree-optimization/43629
7153         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
7154         if we have seen a constant value.
7155
7156 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
7157
7158         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
7159
7160 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
7161
7162         PR target/43469
7163         * arm.c (legitimize_tls_address): Adjust call to
7164         gen_tls_load_dot_plus_four.
7165         (arm_note_pic_base): New function.
7166         (arm_cannot_copy_insn_p): Use it.
7167         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
7168         constraint.
7169
7170 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7171
7172         PR bootstrap/43531
7173
7174         Revert:
7175         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7176
7177         * Makefile.in ($(out_object_file)): Depend on
7178         gt-$(basename $(notdir $(out_file))).h.
7179
7180 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
7181
7182         * config.gcc (lm32-*-rtems*): Add t-lm32.
7183
7184 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
7185
7186         * config.gcc: Add lm32-*-rtems*.
7187         * config/lm32/rtems.h: New file.
7188
7189 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
7190
7191         PR target/42609
7192         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
7193
7194 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
7195
7196         * dwarf2out.c (output_compilation_unit_header): For
7197         -gdwarf-4 use version 4 instead of version 3.
7198         (output_line_info): For version 4 and above emit additional
7199         maximum ops per insn header field.
7200         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
7201
7202         * dwarf2out.c (is_c_family, is_java): Remove.
7203         (lower_bound_default): New function.
7204         (add_bound_info, gen_descr_array_type_die): Use it.
7205
7206 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
7207
7208         PR debug/43325
7209         * dwarf2out.c (gen_variable_die): Allow debug info for variable
7210         re-declaration when it happens in a function.
7211
7212 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
7213
7214         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
7215         (cgraph_remove_function_insertion_hook): Same.
7216         (cgraph_call_function_insertion_hooks): Same.
7217
7218 2010-04-01  Richard Guenther  <rguenther@suse.de>
7219
7220         PR middle-end/43614
7221         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
7222         and TREE_THIS_VOLATILE.
7223         (copy_ref_info): Likewise.
7224         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
7225         * tree.c (build6_stat): Ignore side-effects of all but arg5
7226         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
7227         TARGET_MEM_REF.
7228
7229 2010-04-01  Richard Guenther  <rguenther@suse.de>
7230
7231         PR tree-optimization/43607
7232         * ipa-type-escape.c (check_call): Do not access non-existing
7233         arguments.
7234
7235 2010-04-01  Richard Guenther  <rguenther@suse.de>
7236
7237         PR middle-end/43602
7238         Revert
7239         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7240                     Jack Howarth <howarth@bromo.med.uc.edu>
7241
7242         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7243         variables TLS.
7244
7245 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7246
7247         * doc/install.texi (Prerequisites): Document libelf usability on
7248         IRIX 5/6 and Solaris 2.
7249         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7250         Update GNU as, GNU ld requirements.
7251         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7252         Document Sun Studio compiler download.
7253         Update and simplify as, ld recommendations.
7254         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7255
7256 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7257
7258         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7259         with_tune_32 to pentium4.
7260
7261 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7262
7263         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7264
7265 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7266
7267         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7268         obsoletion, removal.
7269         Update IDO URL.
7270         Document GNU as requirement.
7271         Update configure requirements.
7272         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7273         Recomment IRIX 6.5.18+.
7274         Document IDF/IDL requirement.
7275         Document GNU as requirement.
7276         Document GNU ld bootstrap failure.
7277         Remove freeware.sgi.com reference.
7278
7279 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7280
7281         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7282         UNIX V4.0, V5.0 obsoletion, removal.
7283         Remove --with-gc=simple reference.
7284         Update VM requirements during bootstrap.
7285         Remove -oldas bootstrap description.
7286         Update binutils reference.
7287         Remove comparison failure note.
7288
7289 2010-03-31  Richard Guenther  <rguenther@suse.de>
7290             Zdenek Dvorak  <ook@ucw.cz>
7291             Sebastian Pop  <sebastian.pop@amd.com>
7292
7293         PR middle-end/43464
7294         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7295         with multiple arguments.
7296         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7297
7298 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7299
7300         * graphite-dependences.c (print_pddr): Call print_pdr with an
7301         extra argument.
7302         * graphite-poly.c (debug_pdr): Add an extra argument for the
7303         verbosity level.
7304         (print_pdr): Same.
7305         (print_pbb_domain): Same.
7306         (print_pbb): Same.
7307         (print_scop_context): Same.
7308         (print_scop): Same.
7309         (print_cloog): Same.
7310         (debug_pbb_domain): Same.
7311         (debug_pbb): Same.
7312         (print_pdrs): Same.
7313         (debug_pdrs): Same.
7314         (debug_scop_context): Same.
7315         (debug_scop): Same.
7316         (debug_cloog): Same.
7317         (print_scop_params): Same.
7318         (debug_scop_params): Same.
7319         (print_iteration_domain): Same.
7320         (print_iteration_domains): Same.
7321         (debug_iteration_domain): Same.
7322         (debug_iteration_domains): Same.
7323         (print_scattering_function): Same.
7324         (print_scattering_functions): Same.
7325         (debug_scattering_function): Same.
7326         (debug_scattering_functions): Same.
7327         * graphite-poly.h (debug_pdr): Update declaration.
7328         (print_pdr): Same.
7329         (print_pbb_domain): Same.
7330         (print_pbb): Same.
7331         (print_scop_context): Same.
7332         (print_scop): Same.
7333         (print_cloog): Same.
7334         (debug_pbb_domain): Same.
7335         (debug_pbb): Same.
7336         (print_pdrs): Same.
7337         (debug_pdrs): Same.
7338         (debug_scop_context): Same.
7339         (debug_scop): Same.
7340         (debug_cloog): Same.
7341         (print_scop_params): Same.
7342         (debug_scop_params): Same.
7343         (print_iteration_domain): Same.
7344         (print_iteration_domains): Same.
7345         (debug_iteration_domain): Same.
7346         (debug_iteration_domains): Same.
7347         (print_scattering_function): Same.
7348         (print_scattering_functions): Same.
7349         (debug_scattering_function): Same.
7350         (debug_scattering_functions): Same.
7351
7352 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7353
7354         * graphite-poly.c (print_scattering_function_1): New.
7355         (print_scattering_function): Call it.
7356         (print_scop_params): Remove spaces at the end of lines.
7357         (print_cloog): New.
7358         (debug_cloog): New.
7359         * graphite-poly.h (print_cloog): Declared.
7360         (debug_cloog): Declared.
7361
7362 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7363
7364         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7365         in loop->header.
7366         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7367         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7368         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7369         to switch between adding the IV bump in loop->latch or in loop->header.
7370
7371 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7372
7373         * graphite-poly.c (print_scattering_function): Pretty print following
7374         the scoplib format.
7375         (print_pdr): Same.
7376         (print_pbb_domain): Same.
7377         (dump_gbb_cases): Same.
7378         (dump_gbb_conditions): Same.
7379         (print_pdrs): Same.
7380         (print_pbb): Same.
7381         (print_scop_params): Same.
7382         (print_scop_context): Same.
7383         (print_scop): Same.
7384         (print_pbb_body): New.
7385         (lst_indent_to): New.
7386         (print_lst): Start new lines with a #.
7387         * graphite-poly.h (pbb_bb): New.
7388         (pbb_index): Use pbb_bb.
7389         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7390         disjuncts.
7391         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7392
7393 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7394
7395         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7396         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7397         and 0 instead of 1 for dw_val_class_flag.
7398         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7399         dw_val_class_range_list, dw_val_class_loc_list,
7400         dw_val_class_lineptr and dw_val_class_macptr, use
7401         DW_FORM_flag_present for dw_val_class_flag and
7402         DW_FORM_exprloc for dw_val_class_loc.
7403         (output_die): For -gdwarf-4 print dw_val_class_loc
7404         size as uleb128 instead of 1 or 2 bytes and don't print
7405         anything for dw_val_class_flag.
7406
7407         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7408         instead of cselib_lookup following by tweaking locs->setting_insn.
7409
7410         PR bootstrap/43596
7411         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7412         even before returning from label, setjmp call or volatile asm
7413         handling.
7414
7415 2010-03-31  Richard Guenther  <rguenther@suse.de>
7416
7417         PR middle-end/43600
7418         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7419         temporary data on stack.
7420
7421 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7422
7423         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7424         (PUSHSECTION_ASM_OP): Remove.
7425         (POPSECTION_ASM_OP): Remove.
7426         (PUSHSECTION_FORMAT): Remove.
7427         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7428         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7429         * config/sol2.c (solaris_output_init_fini): Use it.
7430
7431 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7432
7433         PR 43574
7434         * opt-functions.awk (var_type_struct): Use signed char type
7435         for simple variables.
7436
7437 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7438
7439         * config/sol2.c: Include output.h.
7440         (solaris_assemble_visibility): New function.
7441         * config/t-sol2 (sol2.o): Add output.h dependency.
7442         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7443         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7444         Redefine.
7445
7446 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7447
7448         PR target/43580
7449         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7450         V2SImode or XFmode on PRE_DEC.
7451
7452         PR debug/43557
7453         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7454         BLKmode.
7455
7456 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7457
7458         PR 43562
7459         * reload.h (caller_save_initialized_p): Declare.
7460         * toplev.c (backend_init_target): Don't call
7461         init_caller_save but set caller_save_initialized_p to false.
7462         * caller-save.c (caller_save_initialized_p): Define.
7463         (init_caller_save): Check caller_save_initialized_p.
7464         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7465
7466 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7467
7468         PR target/39048
7469         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7470         and soft-fp/t-softfp to tmake_file.
7471         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7472         (LIBGCC2_TF_CEXT): Define.
7473         (TF_SIZE): Define.
7474
7475 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7476
7477         PR debug/42977
7478         * cselib.c (n_useless_values): Document handling of debug locs.
7479         (n_useless_debug_values, n_debug_values): New variables.
7480         (new_elt_loc_list): Don't add to debug values, keep count.
7481         (promote_debug_loc): New.
7482         (cselib_reset_table): Zero new variables.
7483         (entry_and_rtx_equal_p): Promote debug locs.
7484         (discard_useless_locs): Increment n_useless_debug_values for
7485         debug values.
7486         (remove_useless_values): Adjust n_useless_values and n_debug_values
7487         with n_useless_debug_values.
7488         (add_mem_for_addr): Promote debug locs.
7489         (cselib_lookup_mem): Likewise.
7490         (cselib_lookup_addr): Renamed to...
7491         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7492         (cselib_log_lookup): ... this.  Turn into...
7493         (cselib_lookup_addr): ... new wrapper.
7494         (cselib_lookup_from_insn): New.
7495         (cselib_invalidate_regno): Increment n_useless_debug_values for
7496         debug values.
7497         (cselib_invalidate_mem): Likewise.
7498         (cselib_process_insn): Take n_deleted and n_debug_values into
7499         account to guard remove_useless_value call.
7500         (cselib_finish): Zero n_useless_debug_values.
7501         * cselib.h (cselib_lookup_from_insn): Declare.
7502         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7503         (sched_analyze_2): Likewise.
7504
7505 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7506
7507         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7508         functions.
7509         (adjust_mems): Replace narrowing SUBREG of expression containing
7510         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7511         with operations in the narrower mode.
7512
7513         PR debug/43593
7514         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7515         regs_invalidated_by_call instead all call_used_reg_set registers.
7516
7517 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7518
7519         PR middle-end/43430
7520         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7521         pointer comparisons with types_compatible_p.
7522         * tree-vect-stmts.c (vectorizable_call): Same.
7523         (vectorizable_condition): Same.
7524
7525 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7526
7527         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7528         stack check if the mask would be zero.
7529
7530 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7531             Jack Howarth <howarth@bromo.med.uc.edu>
7532
7533         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7534         variables TLS.
7535
7536 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7537
7538         PR other/25232
7539         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7540         and __unordtf2.
7541         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7542         Include ___unordxf2 and ___unordtf2.
7543         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7544         GCC_4.4.0 here.
7545
7546 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7547
7548         * config/lm32/t-lm32: New file.
7549         * config.gcc: Use the above file when targetting lm32.
7550
7551 2010-03-28  Duncan Sands  <baldrick@free.fr>
7552
7553         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7554
7555 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7556
7557         PR middle-end/43431
7558         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7559         Improve vectorization cost model diagnostic.
7560
7561 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7562
7563         PR middle-end/43436
7564         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7565         compute_data_dependences_for_loop returns false, early exit
7566         and output an extra diagnostic for the failed data reference
7567         analysis.
7568
7569 2010-03-29  Richard Guenther  <rguenther@suse.de>
7570
7571         PR tree-optimization/43560
7572         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7573         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7574
7575 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7576
7577         PR 43564
7578         * toplev.c (process_options): Set optimization_default_node
7579         and optimization_current_node.
7580         * opts.c (decode_options): Don't set optimization_default_node
7581         and optimization_current_node.
7582
7583 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7584
7585         * config/rtems.h: Abandon -qrtems_debug.
7586
7587 2010-03-28  Jan Hubicka  <jh@suse.cz>
7588
7589         PR tree-optimization/43505
7590         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7591         map should not be copied.
7592
7593 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7594
7595         PR middle-end/41674
7596         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7597         cdtors, set DECL_PRESERVE_P.
7598         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7599         should be preseved.
7600
7601 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7602
7603         PR tree-optimization/43528
7604         * stor-layout.c (place_field): Check that constant fits into
7605         unsigned HWI when skipping calculation of MS bitfield layout.
7606
7607 2010-03-27  Jan Hubicka  <jh@suse.cz>
7608
7609         PR middle-end/43391
7610         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7611         notice_global_symbol work.
7612
7613 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7614
7615         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7616         instead of dwarf2out_decl.
7617         (struct var_loc_node): Remove section_label field.
7618         (dwarf2out_function_decl): New function.
7619         (dwarf2out_var_location): Don't set section_label field.
7620         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7621
7622 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7623
7624         PR tree-optimization/43544
7625         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7626         First argument for builtin vectorized function hook is now a
7627         tree to be able to distinguish between machine specific and
7628         standard builtins.
7629         * targhooks.c (default_builtin_vectorized_function): Ditto.
7630         * targhooks.h (default_builtin_vectorized_function): Ditto.
7631         * target.h (struct gcc_target): Ditto.
7632         * tree-vect-stmts.c (vectorizable_function): Ditto.
7633         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7634         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7635         Ditto.
7636
7637 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7638
7639         PR c/43381
7640         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7641         nested binding iff it is a FUNCTION_DECL.
7642         (store_parm_decls_newstyle): Pass nested=true to bind for
7643         FUNCTION_DECLs amongst parameters.
7644
7645 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7646
7647         * var-tracking.c (vt_expand_loc_callback): Don't run
7648         cselib_expand_value_rtx_cb in dummy mode if
7649         cselib_dummy_expand_value_rtx_cb returned false.
7650
7651         * var-tracking.c (emit_note_insn_var_location): For one part
7652         notes with offset 0, don't add EXPR_LIST around the location.
7653         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7654         add_location_or_const_value_attribute): Adjust for that change.
7655
7656         PR debug/43540
7657         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7658         into first operand and location into second.
7659         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7660         dw_cfi_oprnd_loc for DW_CFA_expression.
7661         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7662         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7663         assume first argument is regnum and second argument is location.
7664
7665 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7666
7667         PR target/42113
7668         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7669         of scratch register to DImode.  Split to DImode comparison operator.
7670         Use SImode subreg of scratch register in the multiplication.
7671         (*cmp_sadd_sidi): Ditto.
7672         (*cmp_ssub_si): Ditto.
7673         (*cmp_ssub_sidi): Ditto.
7674
7675 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7676
7677         PR target/43524
7678         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7679         Remove invalid assert and wrong comment.
7680
7681 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7682
7683         PR debug/43516
7684         * flags.h (final_insns_dump_p): New extern.
7685         * final.c (final_insns_dump_p): New variable.
7686         (rest_of_clean_state): Set it before -fdump-final-insns=
7687         dumping, clear afterwards.
7688         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7689         MEM_ALIAS_SET on MEMs.
7690
7691 2010-03-26  David S. Miller  <davem@davemloft.net>
7692
7693         * configure.ac: Fix sparc GOTDATA_OP bug check.
7694         * configure: Rebuild.
7695
7696 2010-03-26  Alan Modra  <amodra@gmail.com>
7697
7698         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7699
7700 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7701
7702         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7703         TLS_SECTION_ASM_FLAG.
7704
7705 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7706
7707         PR bootstrap/43511
7708         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7709         Clear first_function_block_is_cold.
7710
7711         PR c/43385
7712         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7713         argument if the argument is truth_value_p.
7714
7715 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7716
7717         * config/rs6000/constraints.md: Update copyright year for my changes.
7718
7719         PR target/43484
7720         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7721         used in reg+reg addressing, swap registers.
7722
7723 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7724
7725         PR debug/43293
7726         * target.h (struct gcc_target): Add code_end hook.
7727         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7728         if not yet defined.
7729         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7730         * toplev.c (compile_file): Call targetm.asm_out.code_end
7731         hook before unwind info/debug info output.
7732         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7733         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7734         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7735         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7736         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7737         * config/i386/i386.c (ix86_file_end): Renamed to...
7738         (ix86_code_end): ... this.  Make static.  Don't call
7739         file_end_indicate_exec_stack.  Emit unwind info using
7740         final_start_function/final_end_function.
7741         (darwin_x86_file_end): Remove.
7742         (TARGET_ASM_CODE_END): Define.
7743         * config/i386/i386.h (TARGET_ASM_FILE_END,
7744         NEED_INDICATE_EXEC_STACK): Don't define.
7745         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7746         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7747         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7748         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7749
7750         PR target/43498
7751         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7752         at the beginning and final_end_function at the end.
7753         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7754
7755 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7756
7757         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7758         and Sun as TLS syntax.
7759         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7760         * configure: Regenerate.
7761         * config.in: Regenerate.
7762         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7763         (default_elf_asm_named_section): Use it.
7764         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7765         (i386_output_dwarf_dtprel): Likewise.
7766         (output_addr_const_extra): Likewise.
7767         (output_pic_addr_const): Lowercase @GOTTPOFF.
7768         (output_addr_const_extra): Likewise.
7769         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7770         (output_addr_const_extra): Likewise.
7771         (output_pic_addr_const): Lowercase @INDNTPOFF.
7772         (output_addr_const_extra): Likewise.
7773         (output_pic_addr_const): Lowercase @NTPOFF.
7774         (output_addr_const_extra): Likewise.
7775         (output_pic_addr_const): Lowercase @TPOFF.
7776         (output_addr_const_extra): Likewise.
7777         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7778         (*tls_global_dynamic_64): Likewise.
7779         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7780         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7781
7782         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7783         (ASM_OUTPUT_TLS_COMMON): Use it.
7784         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7785
7786         PR target/38118
7787         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7788         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7789         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7790         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7791         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7792         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7793
7794 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7795
7796         * config/i386/i386.c (override_options): Don't accept
7797         -mtls-dialect=sun any longer.
7798         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7799         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7800         (*tls_local_dynamic_base_32_sun): Likewise.
7801         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7802
7803 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7804
7805         PR debug/43508
7806         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7807         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7808
7809         PR debug/43479
7810         * ira.c (adjust_cleared_regs): New function.
7811         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7812
7813         PR debug/19192
7814         PR debug/43479
7815         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7816         from gimple_block.
7817         * expr.c (expand_expr_real): Restore previous
7818         curr_insn_source_location and curr_insn_block after
7819         expand_expr_real_1 call.
7820         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7821         instead of expand_expr_real_1.
7822
7823 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7824
7825         PR rtl-optimization/43413
7826         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7827         hard regs too.
7828
7829 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7830
7831         PR target/43348
7832         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7833         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7834
7835 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7836
7837         * config/i386/i386.c (ix86_target_string): Add -mfma.
7838         Fix a typo in comment.
7839
7840 2010-03-22  Mike Stump  <mikestump@comcast.net>
7841
7842         PR target/23071
7843         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7844         Don't overly align based upon packed packed fields.
7845
7846 2010-03-22  Jason Merrill  <jason@redhat.com>
7847
7848         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7849         Use () rather than [], and move before the element type.
7850
7851 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7852
7853         * doc/configfiles.texi (Configuration Files): Removed
7854         fixinc/Makefile*, intl/Makefile.*.
7855         * doc/makefile.texi: Fixed markup. Abstract from version
7856         control system used.
7857         (Makefile): Removed obsolete gcc/java/parse.y example.
7858         * doc/sourcebuild.texi: Likewise.
7859         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7860         libgomp, libssp.  Removed fastjar.
7861         (Miscellaneous Docs): Clarify location.
7862         Added COPYING3, COPYING3.LIB.
7863         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7864
7865 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7866
7867         PR target/38085
7868         * config/i386/i386.c (x86_function_profiler)
7869         [!NO_PROFILE_COUNTERS]: Fix typo.
7870         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7871         instead of callq.
7872
7873 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7874             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7875
7876         * doc/sourcebuild.texi (Test Directives): Split into six
7877         subsections, with most of the current text in new subsections
7878         Directives, Selectors, and Final Actions.
7879         (Directives): Split list of test directives into multiple
7880         subsubsections.
7881         (Selectors): Describe use and syntax of selectors.
7882         (Effective-Target Keywords): Describe all existing keywords.
7883         (Add Options): Describe features for dg-add-options.
7884         (Require Support): Describe variants of dg-require-support.
7885         (Final Actions): Describe commands to use in dg-final.
7886
7887 2010-03-22  Michael Matz  <matz@suse.de>
7888
7889         PR middle-end/43475
7890         * recog.c (validate_replace_rtx_group): Replace also in
7891         REG_EQUAL and REG_EQUIV notes.
7892
7893 2010-03-22  Richard Guenther  <rguenther@suse.de>
7894
7895         PR tree-optimization/43390
7896         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7897         sure vector extracts are type correct.
7898
7899 2010-03-22  Richard Guenther  <rguenther@suse.de>
7900
7901         PR middle-end/40106
7902         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7903         x * sqrt (x) even when optimizing for size if the target
7904         has native support for sqrt.
7905
7906 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7907
7908         * varasm.c (make_decl_rtl_for_debug): Also clear
7909         flag_mudflap for the duration of make_decl_rtl call.
7910
7911         PR debug/43443
7912         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7913         locs from preserved VALUEs.
7914
7915 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7916
7917         PR middle-end/42718
7918         * pa.md (movmemsi): Set align to one if zero.
7919         (movmemdi): Likewise.
7920
7921 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7922
7923         PR target/42321
7924         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7925         with their corresponding prologue pushes.
7926
7927 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7928
7929         PR target/43156
7930         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7931         at the begining or end.
7932         (spu_expand_epilogue): Likewise.
7933
7934 2010-03-20  Richard Guenther  <rguenther@suse.de>
7935
7936         PR rtl-optimization/43438
7937         * combine.c (make_extraction): Properly zero-/sign-extend an
7938         extraction of the low part of a CONST_INT.  Also handle
7939         CONST_DOUBLE.
7940
7941 2010-03-19  Mike Stump  <mikestump@comcast.net>
7942
7943         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7944         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7945         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7946
7947 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7948
7949         PR c/43211
7950         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7951         an error.
7952
7953 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7954
7955         PR rtl-optimization/42258
7956         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7957         use that may match DEF.
7958
7959         PR target/40697
7960         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7961         the cost of loading the constant rather than assuming
7962         COSTS_N_INSNS (1).
7963         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7964         outer code is AND, do the same tests as the andsi3 expander and
7965         return COSTS_N_INSNS (1) if and is cheap.
7966
7967         * optabs.c (avoid_expensive_constant): Fix formatting.
7968
7969 2010-03-19  Michael Matz  <matz@suse.de>
7970
7971         PR c++/43116
7972         * attribs.c (decl_attributes): When rebuilding a function pointer
7973         type use the same qualifiers as the original pointer type.
7974
7975 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7976
7977         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7978         and is_gimple_ip_invariant_address.
7979
7980 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7981
7982         Revert
7983         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7984
7985         * config/arm/arm.c (arm_override_options): Turn off
7986         flag_dwarf2_cfi_asm for AAPCS variants.
7987
7988 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7989
7990         PR target/43399
7991         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7992         Use PRE_MODIFY instead of PRE_DEC.
7993         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7994         (vfp_emit_fstmd): Likewise.
7995
7996 2010-03-19  Michael Matz  <matz@suse.de>
7997
7998         PR target/43305
7999         * builtins.c (expand_builtin_interclass_mathfn,
8000         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
8001         if that fails.
8002
8003 2010-03-19  Richard Guenther  <rguenther@suse.de>
8004
8005         PR tree-optimization/43415
8006         * tree-ssa-pre.c (phi_translate): Split out worker to ...
8007         (phi_translate_1): ... this.
8008         (phi_translate): Move all caching here.  Cache all NARY
8009         and REFERENCE translations.
8010
8011 2010-03-19  David S. Miller  <davem@davemloft.net>
8012
8013         With help from Eric Botcazou.
8014         * config/sparc/sparc.c: Include dwarf2out.h.
8015         (emit_pic_helper): Delete.
8016         (pic_helper_symbol_name): Delete.
8017         (pic_helper_emitted_p): Delete.
8018         (pic_helper_needed): New.
8019         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
8020         (get_pc_thunk_name): New.
8021         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
8022         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
8023         Set pic_helper_needed to true.  Don't call emit_pic_helper.
8024         (sparc_expand_prologue): Update load_pic_register call.
8025         (sparc_output_mi_thunk): Likewise.
8026         (sparc_file_end): Emit a hidden comdat symbol for the PIC
8027         thunk if possible.  Output CFI information as needed.
8028
8029 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8030             Jack Howarth <howarth@bromo.med.uc.edu>
8031
8032         PR target/36399
8033         * config/i386/i386.h: Fix ABI on darwin x86-32.
8034
8035 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
8036
8037         * tree.h: Declare make_decl_rtl_for_debug.
8038         * varasm.c (make_decl_rtl_for_debug): New.
8039         * dwarf2out.c (rtl_for_decl_location): Call it.
8040         * cfgexpand.c (expand_debug_expr): Call it.
8041
8042 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8043
8044         PR bootstrap/43399
8045         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
8046         mem_mode.
8047
8048         PR bootstrap/43403
8049         * var-tracking.c (vt_init_cfa_base): Do nothing if
8050         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
8051
8052 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
8053
8054         PR debug/42873
8055         * var-tracking.c (canonicalize_vars_star): New.
8056         (dataflow_post_merge_adjust): Use it.
8057
8058 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8059
8060         PR debug/43058
8061         * var-tracking.c (non_suitable_const): New function.
8062         (add_uses): For DEBUG_INSNs with constants, don't record any
8063         value, instead just the constant value itself.
8064         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
8065         is not VAR_LOC_UNKNOWN_P, set var to the constant.
8066         (emit_notes_in_bb): Likewise.
8067         (emit_note_insn_var_location): For onepart variables if
8068         cur_loc is a VOIDmode constant, use DECL_MODE.
8069
8070 2010-03-18  Martin Jambor  <mjambor@suse.cz>
8071
8072         PR middle-end/42450
8073         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
8074         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
8075         all non-clones.  Moved call redirection...
8076         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8077         (cgraph_materialize_all_clones): Dispose of all
8078         combined_args_to_skip bitmaps.
8079         (verify_cgraph_node): Do not check for edges pointing to wrong
8080         nodes in inline clones.
8081         * tree-inline.c (copy_bb): Call
8082         cgraph_redirect_edge_call_stmt_to_callee.
8083         * ipa.c (cgraph_remove_unreachable_nodes): Call
8084         cgraph_node_remove_callees even when there are used clones.
8085
8086 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8087
8088         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
8089
8090 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8091
8092         PR target/43383
8093         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
8094         for 32bit.
8095
8096 2010-03-18  Michael Matz  <matz@suse.de>
8097
8098         PR middle-end/43419
8099         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
8100         into sqrt(x) if we need to preserve signed zeros.
8101
8102 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
8103             Eric Botcazou  <ebotcazou@adacore.com>
8104
8105         PR rtl-optimization/43360
8106         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
8107         note if we don't know its invariant status.
8108
8109 2010-03-18  Michael Matz  <matz@suse.de>
8110
8111         PR tree-optimization/43402
8112         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
8113         PHI chains of ssa names registered for update.
8114
8115 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
8116
8117         PR target/42427
8118         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
8119         non-offsettable and pre_modify update addressing.
8120         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
8121         and "2" alternatives "#".
8122         (*movdd_softfloat32): Make all alternatives "#";
8123         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
8124         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
8125         (*movdf_softfloat32): Make all alternatives "#";
8126         (movdi): Use the new DIFD mode iterator to create a common splitter
8127         for movdi, movdf and movdd patterns.
8128
8129 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
8130
8131         * common.opt (dumpdir): Remove redundant tab.
8132
8133 2010-03-17  Martin Jambor  <mjambor@suse.cz>
8134
8135         PR tree-optimization/43347
8136         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
8137         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
8138
8139 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
8140
8141         PR rtl-optimization/42216
8142         * regrename.c (create_new_chain): New function, broken out from...
8143         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
8144         appending a use to an empty chain.
8145         (build_def_use): Remove previous changes that convert OP_INOUT to
8146         OP_OUT operands; instead detect the case where an OP_INOUT operand
8147         uses a previously untracked register and create an empty chain for it.
8148
8149 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8150
8151         * doc/extend.texi (Function Attributes): Rewrite unfinished
8152         sentence in ms_abi documentation.
8153
8154 2010-03-17  Alan Modra  <amodra@gmail.com>
8155
8156         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
8157         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
8158         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
8159         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
8160
8161 2010-03-16  Richard Henderson  <rth@redhat.com>
8162
8163         PR middle-end/43365
8164         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
8165         (lower_try_finally): Save and restore eh_seq around the expansion
8166         of the try-finally.
8167
8168 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8169
8170         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
8171         statements before splitting block.
8172
8173 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8174
8175         * doc/sourcebuild.texi (Testsuites): Fix markup.
8176         Use pathnames relative to gcc/testsuite.
8177         (Test Directives): Move description of how timeout is determined.
8178         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
8179         (C Tests): Correct gcc.misc-tests directory.
8180         Framework tests now live in gcc.test-framework.
8181
8182 2010-03-16  Richard Guenther  <rguenther@suse.de>
8183
8184         PR middle-end/43379
8185         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
8186         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
8187
8188 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8189             Alexandre Oliva  <aoliva@redhat.com>
8190
8191         PR tree-optimization/42917
8192         * lambda-code.c (remove_iv): Skip debug statements.
8193         (lambda_loopnest_to_gcc_loopnest): Likewise.
8194         (not_interesting_stmt): Debug statements are not interesting.
8195
8196 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
8197
8198         PR debug/43051
8199         PR debug/43092
8200         * cselib.c (cselib_preserve_constants,
8201         cfa_base_preserved_val): New static variables.
8202         (preserve_only_constants): New function.
8203         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
8204         clear its REG_VALUES.  If cselib_preserve_constants, don't
8205         empty the whole hash table, but preserve there VALUEs with constants,
8206         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
8207         (cselib_preserve_cfa_base_value): New function.
8208         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
8209         (cselib_init): Change argument to int bitfield.  Set
8210         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
8211         is in it.
8212         (cselib_finish): Clear cselib_preserve_constants and
8213         cfa_base_preserved_val.
8214         * cselib.h (enum cselib_record_what): New enum.
8215         (cselib_init): Change argument to int.
8216         (cselib_preserve_cfa_base_value): New prototype.
8217         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
8218         * dse.c (dse_step1): Likewise.
8219         * cfgcleanup.c (thread_jump): Likewise.
8220         * sched-deps.c (sched_analyze): Likewise.
8221         * gcse.c (local_cprop_pass): Likewise.
8222         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
8223         If FN is non-NULL, call the callback always and whenever it returns
8224         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
8225         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
8226         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
8227         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
8228         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
8229         * var-tracking.c: Include recog.h.
8230         (bb_stack_adjust_offset): Remove.
8231         (vt_stack_adjustments): Don't call it, instead just gather the
8232         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
8233         (adjust_stack_reference): Remove.
8234         (compute_cfa_pointer): New function.
8235         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
8236         (struct adjust_mem_data): New type.
8237         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
8238         functions.
8239         (get_address_mode): New function.
8240         (replace_expr_with_values): Use it.
8241         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
8242         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
8243         (adjust_sets): Remove.
8244         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8245         Use get_address_mode.
8246         (get_adjusted_src): Remove.
8247         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8248         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8249         (add_with_sets): Don't call adjust_sets.
8250         (fp_setter, vt_init_cfa_base): New functions.
8251         (vt_initialize): Change return type to bool.  Move most of pool etc.
8252         initialization to the beginning of the function from end.  Pass
8253         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8254         If !frame_pointer_needed, call vt_stack_adjustment before mos
8255         vector is filled, call vt_init_cfa_base if argp/framep has been
8256         eliminated to sp.  If frame_pointer_needed and argp/framep has
8257         been eliminated to hard frame pointer, set
8258         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8259         encountering fp setter in the prologue.  For MO_ADJUST, call
8260         log_op_type before pusing the op into mos vector, not afterwards.
8261         Call adjust_insn before cselib_process_insn/add_with_sets,
8262         call cancel_changes (0) afterwards.
8263         (variable_tracking_main_1): Adjust for vt_initialize calling
8264         vt_stack_adjustments and returning whether it succeeded or not.
8265
8266 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8267
8268         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8269         debug statements.
8270
8271 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8272
8273         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8274         has been set.
8275         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8276         drap_reg has not been set.
8277
8278 2010-03-15  Michael Matz  <matz@suse.de>
8279
8280         PR middle-end/43300
8281         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8282         use it to expand block copies.
8283         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8284         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8285         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8286
8287 2010-03-15  Richard Guenther  <rguenther@suse.de>
8288
8289         PR tree-optimization/43367
8290         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8291         elimination check.
8292
8293 2010-03-15  Richard Guenther  <rguenther@suse.de>
8294
8295         PR tree-optimization/43317
8296         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8297
8298 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8299
8300         PR tree-optimization/43141
8301         * tree-sra.c (create_abstract_origin): New function.
8302         (modify_function): Call create_abstract_origin.
8303
8304 2010-03-15  Chris Demetriou  <cgd@google.com>
8305
8306         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8307         wasn't copied.
8308
8309 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8310
8311         PR middle-end/43354
8312         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8313         call insert_out_of_ssa_copy for default definitions.
8314
8315 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8316
8317         * graphite-clast-to-gimple.c (my_long_long): Defined.
8318         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8319         * graphite-sese-to-poly.c (my_long_long): Defined.
8320         (scop_ivs_can_be_represented): Use it.
8321
8322 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8323
8324         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8325         graphite-max-bbs-per-function, and loop-block-tile-size.
8326         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8327         with "maximum".
8328         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8329
8330 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8331
8332         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8333         forward declaration.
8334         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8335         (add_upper_bounds_from_estimated_nit): New.
8336         (build_loop_iteration_domains): Use it.
8337
8338 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8339
8340         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8341
8342 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8343
8344         PR middle-end/43306
8345         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8346         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8347
8348 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8349
8350         * graphite.c (graphite_initialize): To bound the number of bbs per
8351         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8352         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8353         * doc/invoke.texi: Document it.
8354
8355 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8356
8357         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8358         * graphite-sese-to-poly.h (build_poly_scop): Same.
8359
8360 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8361
8362         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8363         the number of parameters in the scop.  Use as an upper bound
8364         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8365         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8366         * doc/invoke.texi: Document it.
8367
8368 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8369
8370         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8371         * doc/c-tree.texi: Remove.
8372         * doc/generic.texi: Merge c-tree.texi here.
8373         * doc/gccint.texi (Trees): Remove menu entry.
8374         (c-tree.texi): Remove @include.
8375         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8376         * doc/languages.texi (Reading RTL): Ditto.
8377
8378 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8379
8380         PR target/42869
8381         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8382
8383 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8384
8385         PR middle-end/42431
8386         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8387         code added to work around reload clobbering CONST insns.
8388
8389 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8390
8391         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8392         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8393         (cselib_preserve_only_values): Remove retain argument, don't
8394         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8395         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8396         * var-tracking.c (micro_operation): Move insn field before union.
8397         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8398         (struct variable_tracking_info_def): Remove n_mos field, change
8399         mos into a vector of micro_operations.
8400         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8401         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8402         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8403         changing into a vector.
8404         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8405         come before all other uops generated by add_stores.
8406         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8407         argument removal.
8408         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8409         a vector.  Run just one pass over the bbs instead of separate counting
8410         and computation phase.
8411         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8412
8413         PR debug/43329
8414         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8415         into *nonlocalized_list vector.
8416         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8417         even if origin is non-NULL.
8418         (gen_variable_die): Likewise.
8419         (process_scope_var): Don't change origin.
8420         (gen_decl_die): Likewise.
8421         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8422         before adding new edges instead of after it, fix moving over
8423         debug stmts.
8424
8425 2010-03-11  David S. Miller  <davem@davemloft.net>
8426
8427         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8428         of four.
8429         * configure: Rebuild.
8430
8431 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8432
8433         PR tree-optimization/43257
8434         * tree.c (assign_assembler_name_if_neeeded): New function.
8435         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8436         above new function.
8437         * tree.h (assign_assembler_name_if_neeeded): Declare.
8438         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8439         the function if needed.
8440
8441 2010-03-11  Chris Demetriou  <cgd@google.com>
8442
8443         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8444         include/stdint-gcc.h, and include/stdint.h world-readable.
8445
8446 2010-03-11  Richard Guenther  <rguenther@suse.de>
8447
8448         PR tree-optimization/43255
8449         * tree-vrp.c (process_assert_insertions_for): Do not insert
8450         asserts for trivial conditions.
8451
8452 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8453
8454         PR tree-optimization/43280
8455         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8456         generation.  Move calculation of size out of the if branch.
8457         (find_bswap): Modify compare number generation.
8458
8459 2010-03-11  Richard Guenther  <rguenther@suse.de>
8460
8461         PR lto/43200
8462         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8463         (input_gimple_stmt): Fixup handled component types during
8464         operand read.  Also fix up decls in ADDR_EXPRs.
8465
8466 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8467
8468         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8469         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8470
8471 2010-03-10  Jan Hubicka  <jh@suse.cz>
8472
8473         PR c/43288
8474         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8475         * varasm.c (get_variable_section): Don't do that here...
8476         (make_decl_rtl): ... and here.
8477         (do_assemble_alias): Produce decl RTL.
8478         (assemble_alias): Likewise.
8479
8480 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8481
8482         PR debug/43290
8483         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8484         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8485         of fde->vdrap_reg.
8486         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8487         (based_loc_descr): Only express drap or vdrap regno based expressions
8488         using DW_OP_fbreg when not optimizing.
8489         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8490         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8491         REG_CFA_SET_VDRAP note.
8492
8493 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8494
8495         PR tree-optimization/43236
8496         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8497         error in calculation of base address in reverse iteration case.
8498         (generate_builtin): Take number of latch executions if the statement
8499         is in the latch.
8500
8501 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8502
8503         PR middle-end/42859
8504         * tree-eh.c: Include pointer-set.h.
8505         (lower_eh_dispatch): Filter out duplicate case labels and
8506         remove the unneeded edge when the label is unused.  Return
8507         true when some edges are removed.
8508         (execute_lower_eh_dispatch): When any lowering resulted in
8509         removing an edge, also delete unreachable blocks.
8510
8511 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8512
8513         PR bootstrap/43287
8514         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8515         UNSPEC_MACHOPIC_OFFSET.
8516
8517 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8518
8519         PR target/43294
8520         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8521         (m68k_delegitimize_address): New function.
8522
8523 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8524
8525         PR debug/43299
8526         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8527
8528         PR debug/43299
8529         * var-tracking.c (adjust_sets): New function.
8530         (count_with_sets, add_with_sets): Use it.
8531         (get_adjusted_src): New inline function.
8532         (add_stores): Use it.
8533
8534         PR debug/43304
8535         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8536         call cselib_dummy_expand_value_rtx_cb instead of
8537         cselib_expand_value_rtx_cb.
8538
8539         PR debug/43293
8540         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8541         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8542         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8543         and .cfi_endproc around the pic thunks.
8544         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8545         all queued unwind info register saves are saved before the call.
8546         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8547         considered as sp-=4 for unwind info and the pop as sp+=4 which
8548         also clobbers dest, but doesn't actually restore it.
8549
8550         PR debug/43290
8551         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8552         RTX_FRAME_RELATED_P.
8553
8554 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8555
8556         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8557         whitespaces in output template.
8558
8559 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8560
8561         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8562         out array boundary.
8563
8564 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8565
8566         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8567         builtins.exp in a separate job.
8568
8569 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8570
8571         * graphite-sese-to-poly.c (add_param_constraints): Use
8572         lower_bound_in_type and upper_bound_in_type.
8573
8574 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8575
8576         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8577         instead of unsigned_type_node.
8578
8579 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8580             Reza Yazdani  <reza.yazdani@amd.com>
8581
8582         PR middle-end/43065
8583         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8584         on pointer type parameters.
8585
8586 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8587
8588         PR middle-end/42644
8589         PR middle-end/42130
8590         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8591         handle conversions from pointer to integers.
8592         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8593         induction variable, to be able to work with code generated by CLooG.
8594         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8595         (build_poly_scop): Bail out if we cannot codegen a loop.
8596
8597 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8598
8599         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8600         code generation with gloog_error.
8601
8602 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8603
8604         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8605         Call fold_convert on all the returned values.
8606         (expand_scalar_variables_expr): Pass to
8607         expand_scalar_variables_ssa_name the type of the resulting expression.
8608
8609 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8610
8611         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8612         ppl_min_for_le_pointset.
8613         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8614         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8615
8616 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8617
8618         * graphite-dependences.c (map_into_dep_poly): Removed.
8619         (dependence_polyhedron_1): Use combine_context_id_scat.
8620
8621 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8622
8623         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8624         (struct poly_bb): Same.
8625         (combine_context_id_scat): New.
8626
8627 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8628
8629         PR middle-end/42326
8630         * sese.c (name_defined_in_loop_p): Return false for default
8631         definitions.
8632
8633 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8634
8635         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8636         and clean up the logic.
8637
8638 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8639
8640         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8641         early return.
8642
8643 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8644
8645         * var-tracking.c (remove_cselib_value_chains): Define only for
8646         ENABLE_CHECKING.
8647         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8648         delete_slot_part, emit_notes_for_differences_1): Don't call
8649         remove_cselib_value_chains here.
8650         (set_slot_part, emit_notes_for_differences_2): Don't call
8651         add_cselib_value_chains here.
8652         (preserved_values): New vector.
8653         (preserve_value): New function.
8654         (add_uses, add_stores, vt_add_function_parameters): Use it
8655         instead of cselib_preserve_value.
8656         (changed_values_stack): New vector.
8657         (check_changed_vars_0): New function.
8658         (check_changed_vars_1, check_changed_vars_2): Use it.
8659         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8660         changed_values_stack VALUEs.
8661         (vt_emit_notes): For all preserved_values call
8662         add_cselib_value_chains.  If ENABLE_CHECKING call
8663         remove_cselib_value_chains before verifying value_chains is empty.
8664         Initialize and free changed_values_stack.
8665         (vt_initialize): Initialize preserved_values.
8666         (vt_finalize): Free preserved_values.
8667
8668 2010-03-08  Richard Guenther  <rguenther@suse.de>
8669
8670         PR tree-optimization/43269
8671         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8672         region detection.
8673
8674 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8675
8676         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8677         (ipa_is_param_called): Removed.
8678         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8679         (ipa_print_node_params): Do not print the called flag.
8680         (ipa_write_node_info): Do not stream the called flag.
8681         (ipa_read_node_info): Likewise.
8682
8683 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8684
8685         PR debug/43176
8686         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8687         * cselib.c (struct expand_value_data): Add dummy field.
8688         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8689         dummy to false.
8690         (cselib_dummy_expand_value_rtx_cb): New function.
8691         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8692         any rtl.
8693         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8694         * var-tracking.c: Include pointer-set.h.
8695         (variable): Change n_var_parts to char from int.  Add
8696         cur_loc_changed and in_changed_variables fields.
8697         (variable_canonicalize): Remove.
8698         (shared_var_p): New inline function.
8699         (unshare_variable): Maintain cur_loc_changed and
8700         in_changed_variables fields.  If var was in changed_variables,
8701         replace it there with new_var.  Just copy cur_loc instead of
8702         resetting it to something else.
8703         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8704         (dataflow_set_union): Don't call variable_canonicalize.
8705         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8706         of their DEBUG_EXPR_TREE_DECLs.
8707         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8708         and in_changed_variables and cur_loc_changed is false.
8709         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8710         and cur_loc_changed.  Don't update cur_loc here.
8711         (variable_merge_over_src): Don't call variable_canonicalize.
8712         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8713         removing loc that is equal to cur_loc, clear cur_loc,
8714         set cur_loc_changed and ensure variable_was_changed is called.
8715         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8716         compare pointers in cur_loc check, if it is equal to loc,
8717         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8718         (variable_different_p): Remove compare_current_location argument,
8719         don't compare cur_loc.
8720         (dataflow_set_different_1): Adjust variable_different_p caller.
8721         (variable_was_changed): If dv had some var in changed_variables
8722         already, reset in_changed_variables flag for it and propagate
8723         cur_loc_changed over to the new variable.  On empty var
8724         always set cur_loc_changed.  Set in_changed_variables on whatever
8725         var is added to changed_variables.
8726         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8727         Use shared_var_p.  When removing loc that is equal to cur_loc,
8728         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8729         end, don't set it to something else, just call variable_was_changed.
8730         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8731         loc being removed, clear cur_loc and set cur_loc_changed.
8732         Set cur_loc_changed if all locations have been removed.
8733         (struct expand_loc_callback_data): New type.
8734         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8735         allocated.  Always create SUBREGs if simplify_subreg failed.
8736         Prefer to use cur_loc, when that fails and still in
8737         changed_variables (and seen first time) recompute it.  Set
8738         cur_loc_changed of variables which had to change cur_loc and
8739         compute elcd->cur_loc_changed if any of the subexpressions used
8740         had to change cur_loc.
8741         (vt_expand_loc): Adjust to pass arguments in
8742         expand_loc_callback_data structure.
8743         (vt_expand_loc_dummy): New function.
8744         (emitted_notes): New variable.
8745         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8746         that weren't used for any other decl in current
8747         emit_notes_for_changes call call vt_expand_loc_dummy to update
8748         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8749         first loc_chain location if NULL before.  Always use just
8750         cur_loc instead of first loc_chain location.  When cur_loc_changed
8751         is false, when not --enable-checking=rtl just don't emit any note.
8752         When rtl checking, compute the note and assert it is the same
8753         as previous note.  Clear cur_loc_changed and in_changed_variables
8754         at the end before removing from changed_variables.
8755         (check_changed_vars_3): New function.
8756         (emit_notes_for_changes): Traverse changed_vars to call
8757         check_changed_vars_3 on each changed var.
8758         (emit_notes_for_differences_1): Clear cur_loc_changed and
8759         in_changed_variables.  Recompute cur_loc of new_var.
8760         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8761         (vt_emit_notes): Initialize and destroy emitted_notes.
8762
8763 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8764
8765         PR rtl-optimization/42220
8766         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8767         Use verify_reg_tracked to determine if we should use OP_OUT rather
8768         than OP_INOUT.
8769         (build_def_use): If we see an in-out operand for a register that we
8770         know nothing about, treat is an output if possible, fail the block if
8771         not.
8772
8773 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8774
8775         PR debug/42897
8776         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8777         permanently.
8778
8779 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8780
8781         PR debug/42897
8782         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8783         uses of relevant DEFs that are dead outside the loop too.
8784
8785 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8786
8787         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8788         Reverted:
8789         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8790         PR debug/41371
8791         * var-tracking.c (values_to_unmark): New variable.
8792         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8793         values_to_unmark vector.  Moved body to...
8794         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8795         instead queue it into values_to_unmark vector.
8796         (vt_find_locations): Free values_to_unmark vector.
8797
8798 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8799
8800         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8801         (site.exp): Export them when plugins are enabled.
8802
8803 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8804
8805         PR middle-end/42326
8806         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8807         that contain scevs.
8808         (chrec_fold_multiply): Same.
8809
8810 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8811
8812         PR c/43248
8813         * c-decl.c (build_compound_literal): Return early if init is
8814         an error_mark_node.
8815
8816 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8817
8818         PR tree-optimization/43164
8819         PR tree-optimization/43191
8820         * tree-sra.c (type_consists_of_records_p): Reject records with
8821         zero-size bit-fields at the end.
8822
8823 2010-03-04  Mike Stump  <mikestump@comcast.net>
8824
8825         * Makefile.in (TAGS): Remove *.y.
8826
8827 2010-03-04  Richard Guenther  <rguenther@suse.de>
8828
8829         PR tree-optimization/40761
8830         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8831         in reverse order.
8832         (my_rev_post_order_compute): New function.
8833         (init_pre): Call it.
8834
8835 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8836
8837         PR middle-end/43209
8838         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8839         decrease the cost of an IV candidate when the cost is infinite.
8840
8841 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8842
8843         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8844         Use '3DNow!' for the extension of that name, ensure normal space
8845         after the string.
8846         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8847
8848 2010-03-03  Jeff Law  <law@redhat.com>
8849
8850         * PR middle-end/32693
8851         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8852         than gen_rtx_SUBREG.
8853         (extract_bit_field_1): Likewise.
8854
8855 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8856
8857         * doc/sourcebuild.texi (Test directives): Document that arguments
8858         include-opts and exclude-opts are now optional for dg-skip-if,
8859         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8860
8861 2010-03-03  Jason Merrill  <jason@redhat.com>
8862
8863         PR c++/12909
8864         * cgraph.h (varpool_node): Add extra_name field.
8865         * varpool.c (varpool_extra_name_alias): New.
8866         (varpool_assemble_decl): Emit extra name aliases.
8867         (varpool_mark_needed_node): Look past an extra name alias.
8868         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8869         * lto-streamer-in.c (lto_input_tree): Read it.
8870         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8871
8872 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8873
8874         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8875         (sparc*-*-solaris2*): ...this.
8876
8877 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8878
8879         PR debug/43229
8880         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8881         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8882         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8883         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8884
8885         PR debug/43237
8886         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8887         fallthrough to default handling, just with want_address 0 instead of 2.
8888         For single element lists, add_AT_loc directly, otherwise create an
8889         artificial variable DIE and stick location list to it.
8890
8891         PR debug/43177
8892         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8893         (VAL_EXPR_HAS_REVERSE): Define.
8894         (reverse_op): New function.
8895         (add_stores): For reversible operations add an extra MO_VAL_USE.
8896
8897 2010-03-02  Jason Merrill  <jason@redhat.com>
8898
8899         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8900
8901 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8902
8903         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8904         (sparc64-*-linux*): Likewise.
8905         (sparc64-*-solaris2*): Include assembler files before linker ones.
8906         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8907         * config/sparc/gas.h: Delete.
8908         * config/sparc/sol2-64.h: Add copyright notice.
8909         * config/sparc/sol2-gas-bi.h: Likewise.
8910         * config/sparc/sol2-gld.h: Likewise.
8911         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8912         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8913         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8914         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8915         (sparc_elf_asm_named_section): Rename into...
8916         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8917
8918 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8919
8920         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8921
8922 2010-03-02  Jeff Law  <law@redhat.com>
8923
8924         PR middle-end/42431
8925         * reload1.c (rtx_p, substitute_stack): Declare.
8926         (substitute): Record addresses of changed rtxs.
8927         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8928         Restore the original rtx when complete.
8929         (reload): Free subsitute_stack when complete.
8930
8931 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8932
8933         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8934         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8935         new chapter.
8936         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8937         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8938         Torture Tests): Change from subsection to section.
8939
8940 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8941             Steven Bosscher  <steven@gcc.gnu.org>
8942
8943         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8944         instead of bb.
8945
8946 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8947
8948         PR middle-end/42640
8949         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8950         the assignment from the new induction variable to the assignment
8951         of the value from the original loop PHI function.
8952
8953 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8954             Daniel Jacobowitz  <dan@codesourcery.com>
8955
8956         * doc/sourcebuild.texi (Test directives): Clarify options to
8957         dg-skip-if.
8958
8959 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8960
8961         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8962         Disable cfi directives unless GCC and gas agree on using read-only
8963         .eh_frame sections for 64-bit.
8964         * configure: Regenerate.
8965
8966 2010-03-01  Richard Guenther  <rguenther@suse.de>
8967
8968         PR tree-optimization/43220
8969         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8970         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8971
8972 2010-03-01  Richard Guenther  <rguenther@suse.de>
8973             Martin Jambor  <mjambor@suse.cz>
8974
8975         PR middle-end/41250
8976         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8977         gimplified parameters.
8978
8979 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8980
8981         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8982
8983 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8984
8985         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8986
8987 2010-03-01  Richard Guenther  <rguenther@suse.de>
8988
8989         PR middle-end/43213
8990         * expr.c (expand_assignment): Use the alias-oracle to tell
8991         if the rhs aliases the result decl.
8992
8993 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8994
8995         PR pch/14940
8996         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8997         to sol_gt_pch_get_address.
8998         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8999         64-bit, SPARC and x86.
9000         (sol_gt_pch_get_address): New function.
9001
9002 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
9003
9004         * toplev.h (inform_n, error_n): Declare.
9005         * diagnostic.c (inform_n, error_n): New function.
9006
9007 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
9008
9009         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
9010         has no rtl yet when processing local_decls, queue it and recheck
9011         if deferred stack allocation hasn't assigned it rtl.
9012
9013 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9014
9015         * config/sh/sh.c (unspec_bbr_uid): New.
9016         (gen_block_redirect): Use it instead of INSN_UID.
9017         (gen_far_branch): Likewise.
9018
9019 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9020
9021         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
9022         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
9023
9024 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9025
9026         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
9027         (Warning Options): -Wno-conversion-null is valid for
9028         Objective-C++ as well.
9029         * doc/tm.texi (Named Address Spaces): Likewise.
9030         * doc/plugins.texi (Plugins): Replace TABs with spaces.
9031         * doc/tree-ssa.texi (Tree SSA): Likewise.
9032
9033 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9034
9035         PR bootstrap/43202
9036         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
9037         by default.  Don't set the default arch for
9038         i[34567]86-*-darwin*|x86_64-*-darwin*.
9039
9040 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9041
9042         PR bootstrap/43202
9043         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
9044         default.  Set the default 32bit/64bit archs with $with_arch
9045         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
9046
9047 2010-02-27  Richard Guenther  <rguenther@suse.de>
9048
9049         PR tree-optimization/43186
9050         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
9051         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
9052         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
9053         unroller iterations.
9054
9055 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9056
9057         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
9058         required and i[34567]86-*-* targets don't support 64bit ISA.
9059
9060 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
9061
9062         PR ada/43096
9063         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9064         the same alias set.
9065
9066 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9067
9068         * config.gcc: Set the default arch at least to Prescott for
9069         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
9070         if SSE math is enabled.
9071
9072 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9073
9074         * diagnostic.c (diagnostic_initialize): Update.
9075         (diagnostic_report_diagnostic): Test inhibit_notes_p for
9076         informative notes.
9077         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
9078         (diagnostic_inhibit_notes): New.
9079         * toplev.c (process_options): inhibit notes with -fcompare-debug.
9080
9081 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9082
9083         PR c/20631
9084         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
9085         * doc/standards.texi: Likewise.
9086         * doc/extend.texi: Likewise.
9087         * doc/trouble.texi: Likewise.
9088         * doc/cppopts.texi: Likewise.
9089         * doc/install.texi: Likewise.
9090         * c.opt (std=c90,std=gnu90): New options.
9091         * c-opts.c (c_common_handle_option): Handle them.
9092
9093 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9094
9095         PR c/24577
9096         * c-decl.c (undeclared_variable): Use an informative note.
9097
9098 2010-02-26  Richard Guenther  <rguenther@suse.de>
9099
9100         PR tree-optimization/43186
9101         * gimple.h (gimple_fold): Remove.
9102         * gimple.c (gimple_fold): Remove.  Inline into single user ...
9103         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
9104         Try harder for conditions.
9105
9106 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9107
9108         PR debug/43190
9109         * function.c (used_types_insert): Don't skip through named pointer
9110         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
9111         and it is different from the main variant's type.
9112
9113 2010-02-26  Nick Clifton  <nickc@redhat.com>
9114
9115         * config/rx/rx.md (sminsi3): Remove bogus alternative.
9116
9117 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9118
9119         * config.gcc: Support --with-fpmath=sse for x86.
9120
9121         * config/i386/ssemath.h: New.
9122
9123         * doc/install.texi (--with-fpmath=sse): Documented.
9124
9125 2010-02-26  Richard Guenther  <rguenther@suse.de>
9126
9127         PR tree-optimization/43188
9128         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
9129         vector types of over-aligned element type.
9130
9131 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
9132
9133         PR target/43175
9134         * config/i386/i386.c (expand_vec_perm_blend): Use correct
9135         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
9136
9137 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
9138
9139         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
9140
9141 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9142
9143         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
9144         * var-tracking.c: Include diagnostic.h.
9145         (debug_dv): New function.
9146         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
9147
9148         PR debug/43160
9149         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
9150         (add_value_chain, add_value_chains, remove_value_chain,
9151         remove_value_chains): Handle DEBUG_EXPRs.
9152         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
9153
9154         PR debug/43161
9155         * regcprop.c (struct queued_debug_insn_change): New type.
9156         (struct value_data_entry): Add debug_insn_changes field.
9157         (struct value_data): Add n_debug_insn_changes field.
9158         (debug_insn_changes_pool): New variable.
9159         (free_debug_insn_changes, apply_debug_insn_changes,
9160         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
9161         (kill_value_one_regno): Call free_debug_insn_changes if needed.
9162         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
9163         fields.
9164         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
9165         changes for them.
9166         (copyprop_hardreg_forward_1): Don't call apply_change_group for
9167         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
9168         changes, call cprop_find_used_regs via note_stores.
9169         (copyprop_hardreg_forward): When copying vd from predecessor
9170         which has any queued DEBUG_INSN changes, make sure the pointers are
9171         cleared.  At the end call df_analyze and then if there are any
9172         DEBUG_INSN changes queued at the end of some basic block for still
9173         live registers, apply them.
9174         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
9175
9176 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
9177
9178         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
9179         (arm*-*-*): Ditto.
9180
9181 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9182
9183         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
9184         targets.  Set the default with_cpu/with_arch from arch/cpu.
9185         Allow x86-64 and native for with_cpu/with_arch.
9186
9187 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
9188
9189         * ebitmap.c: Change calls to verify_popcount with calls to
9190         sbitmap_verify_popcount.
9191         (ebitmap_clear_bit): Fixed map->cacheindex test and
9192         map>cache update when bit clearing results in an empty
9193         element.
9194
9195 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9196
9197         PR target/43154
9198         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
9199         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
9200         and support both V2DF and V2DI modes.
9201         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
9202         support both V2DF and V2DI modes.
9203         (general): Delete trailing whitespace from a few patterns.
9204
9205         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9206         V2DF/V2DI interleave high/low builtins.
9207
9208         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
9209         new VSX builtins.
9210
9211         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
9212         interleave high/low functions.
9213
9214 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
9215
9216         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
9217         #pragma extern_prefix.
9218
9219 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
9220
9221         PR debug/43166
9222         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
9223         BLKmode, assert op0 is a MEM and just adjust its mode.
9224
9225         PR debug/43165
9226         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
9227         if bitpos isn't multiple of mode's bitsize.
9228
9229 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9230
9231         * c.opt (-ftemplate-depth=): New.
9232         (-ftemplate-depth-): Deprecate.
9233         * optc-gen.awk: Handle -ftemplate-depth=.
9234         * opth-gen.awk: Likewise.
9235         * c-opts.c (c_common_handle_option): Likewise.
9236         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
9237
9238 2010-02-24  Jason Merrill  <jason@redhat.com>
9239
9240         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
9241
9242 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9243
9244         * cfg.c (alloc_aux_for_block): Remove inline.
9245         (alloc_aux_for_edge): Likewise.
9246
9247 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9248
9249         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9250
9251 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9252
9253         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9254         * config/i386/sol2-gas.h: New file.
9255         * config.gcc (i[34567]86-*-solaris2*): Use it.
9256
9257 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9258
9259         PR c/43128
9260         * c-typeck.c (ep_convert_and_check): New.
9261         (build_conditional_expr): Use it.
9262         (build_binary_op): Likewise.
9263
9264 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9265
9266         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9267
9268         PR debug/43150
9269         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9270         bounds even for -O+.
9271         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9272         expr needs to have DECL_NAME set.
9273
9274 2010-02-24  Nick Clifton  <nickc@redhat.com>
9275
9276         * config/mep/mep.c: Include gimple.h.
9277         (mep_function_uses_sp): Delete unused function.
9278         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9279         parameters.  Use unsigned integers to count args.  Return a
9280         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9281
9282 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9283
9284         PR target/43107
9285         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9286         greater or equal to nelt instead of 2 * nelt.
9287         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9288         with nelt - 1.
9289
9290 2010-02-23  Jason Merrill  <jason@redhat.com>
9291
9292         PR debug/42800
9293         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9294         in cfun->local_decls even if they have register types.
9295
9296         PR c++/42837
9297         * stor-layout.c (place_field): Don't warn about unnecessary
9298         DECL_PACKED if the type is packed.
9299
9300 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9301
9302         PR target/43139
9303         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9304         GOTOFF relocs, even when the base reg isn't pic pointer.
9305
9306 2010-02-23  Michael Matz  <matz@suse.de>
9307
9308         PR debug/43077
9309         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9310         (expand_gimple_basic_block): Generate and use debug temps if there
9311         are debug uses left after the last real use of TERed ssa names.
9312         Unlink debug immediate uses when they are expanded.
9313
9314 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9315
9316         PR 43123
9317         * config/i386/i386.c (override_options): Reorganise to provide
9318         better error messages.
9319
9320 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9321
9322         PR middle-end/43083
9323         * graphite-scop-detection.c (create_single_exit_edge): Move
9324         the call to find_single_exit_edge to....
9325         (create_sese_edges): ...here.  Don't handle multiple edges
9326         exiting the function.
9327         (build_graphite_scops): Don't handle multiple edges
9328         exiting the function.
9329
9330 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9331
9332         PR middle-end/43097
9333         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9334         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9335
9336 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9337
9338         PR middle-end/43026
9339         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9340
9341 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9342
9343         PR c++/43126
9344         * c-typeck.c (convert_arguments): Print declaration location.
9345         * c-common.c (validate_nargs): Rename as
9346         builtin_function_validate_nargs.
9347         (check_builtin_function_arguments): Update.
9348
9349 2010-02-22  Richard Guenther  <rguenther@suse.de>
9350
9351         PR lto/43045
9352         * tree-inline.c (declare_return_variable): Use the type of
9353         the call stmt lhs if available.
9354
9355 2010-02-22  Duncan Sands  <baldrick@free.fr>
9356
9357         * passes.c (register_pass): Always consider all pass lists when
9358         ref_pass_instance_number is zero.
9359
9360 2010-02-22  Richard Guenther  <rguenther@suse.de>
9361
9362         PR tree-optimization/42749
9363         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9364         parameter.  Do arithmetic in the original type.
9365         (update_accumulator_with_ops): Likewise.
9366         (adjust_accumulator_values): Adjust.
9367
9368 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9369
9370         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9371         (QI to BLKmode splitter): New splitter.
9372
9373 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9374
9375         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9376         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9377
9378 2010-02-22  Richard Guenther  <rguenther@suse.de>
9379
9380         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9381
9382 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9383
9384         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9385         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9386         ($(T)crti.o, $(T)crtn.o): Remove rules.
9387
9388 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9389
9390         PR fortran/35259
9391         * doc/invoke.texi (-fassociative-math): Document that this
9392         option is automatically enabled for Fortran.
9393
9394 2010-02-20  David S. Miller  <davem@davemloft.net>
9395
9396         * configure.ac: Test if linker and assembler properly support
9397         GOTDATA_OP relocations.
9398         * configure: Rebuild.
9399         * config.in: Likewise.
9400         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9401         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9402         (movsi_high_pic): Likewise.
9403         (movdi_lo_sum_pic): Likewise.
9404         (movdi_high_pic): Likewise.
9405         (movsi_pic_gotdata_op): New pattern.
9406         (movdi_pic_gotdata_op): Likewise.
9407         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9408         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9409
9410 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9411
9412         PR target/43067
9413         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9414         attribute to ssemul.
9415         (xop_mulv2div2di3_high): Ditto.
9416
9417 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9418
9419         PR c++/35669
9420         * c.opt (Wconversion-null): New option.
9421         * doc/invoke.texi (Wconversion-null): Document.
9422
9423 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9424
9425         * common.opt (Wlarger-than-): Add Undocumented.
9426
9427 2010-02-19  Mike Stump  <mikestump@comcast.net>
9428
9429         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9430
9431 2010-02-19  Jason Merrill  <jason@redhat.com>
9432
9433         PR target/40332
9434         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9435         * configure: Likewise.
9436
9437 2010-02-20  Alan Modra  <amodra@gmail.com>
9438
9439         PR middle-end/42344
9440         * cgraph.h (cgraph_make_decl_local): Declare.
9441         * cgraph.c (cgraph_make_decl_local): New function.
9442         (cgraph_make_node_local): Use it.
9443         * cgraphunit.c (cgraph_function_versioning): Likewise.
9444         * ipa.c (function_and_variable_visibility): Likewise.
9445
9446 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9447
9448         PR bootstrap/43121
9449         * except.c (sjlj_emit_function_enter): Don't call
9450         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9451         directly.
9452         * rtl.h (add_reg_br_prob_note): Remove prototype.
9453
9454 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9455
9456         PR 41779
9457         * c-common.c (conversion_warning): Remove widening conversions
9458         before checking the conversion of integers to reals.
9459
9460 2010-02-19  Mike Stump  <mikestump@comcast.net>
9461
9462         PR middle-end/43125
9463         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9464
9465         PR objc/43061
9466         * cgraphunit.c (process_function_and_variable_attributes): Check
9467         DECL_PRESERVE_P instead of looking up attribute "used".
9468         * ipa-pure-const.c (check_decl): Likewise.
9469         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9470         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9471         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9472         instead of attribute "used".
9473         * config/sol2-c.c (solaris_pragma_init): Likewise.
9474         (solaris_pragma_fini): Likewise.
9475
9476 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9477
9478         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9479         Use XCNEW instead of xcalloc.
9480         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9481         XNEW instead of xmalloc.
9482         (get_fields): Use XNEWVEC instead of xmalloc.
9483
9484         PR debug/43084
9485         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9486         populate vars array.
9487         (create_new_general_access): For debug stmts just reset value.
9488         (get_stmt_accesses): For accesses within debug stmts just record them
9489         using add_access_to_acc_sites instead of preventing the peeling or
9490         counting them as accesses.
9491
9492         PR middle-end/42233
9493         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9494
9495 2010-02-19  Richard Guenther  <rguenther@suse.de>
9496
9497         PR tree-optimization/42916
9498         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9499         instructions.
9500
9501 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9502
9503         * configure.ac: Replace all uses of changequote in macro arguments
9504         with proper quoting.
9505
9506 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9507
9508         PR middle-end/42233
9509         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9510
9511 2010-02-19  Richard Guenther  <rguenther@suse.de>
9512
9513         PR tree-optimization/42944
9514         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9515         test for aliasing with errno.
9516
9517 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9518
9519         PR middle-end/42233
9520         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9521         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9522         * dojump.c: Include output.h.
9523         (inv): New inline function.
9524         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9525         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9526         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9527         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9528         argument, pass it down to other calls.
9529         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9530         add REG_BR_PROB note to the conditional jump.
9531         * cfgexpand.c (add_reg_br_prob_note): Removed.
9532         (expand_gimple_cond): Don't call it, add the probability
9533         as last argument to jumpif_1/jumpifnot_1.
9534         * Makefile.in (dojump.o): Depend on output.h.
9535         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9536         callers.
9537         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9538         * stmt.c (do_jump_if_equal): Likewise.
9539         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9540         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9541         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9542         Likewise.
9543         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9544         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9545         jumpifnot_1 callers.
9546         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9547         callers.
9548         (store_expr): Adjust jumpifnot caller.
9549         (store_constructor): Adjust jumpif caller.
9550
9551         PR middle-end/42233
9552         * gimplify.c (gimple_boolify): For __builtin_expect call
9553         gimple_boolify also on its first argument.
9554
9555 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9556
9557         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9558         changequote block.
9559         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9560         * configure: Regenerated.
9561
9562 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9563
9564         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9565         lang_hooks.types_compatible_p instead of comptypes.
9566
9567 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9568
9569         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9570         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9571         if __prefer_thumb__ is defined.
9572
9573 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9574
9575         PR tree-optimization/43066
9576         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9577         array with zero-sized element type.
9578
9579 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9580
9581         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9582         rtx, allocate struct var_loc_node here and return it to the
9583         caller, and only if it is actually needed.
9584         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9585         move it earlier and return immediately if it returns NULL.
9586
9587 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9588
9589         * config/sparc/gas.h: New file.  Restore
9590         TARGET_ASM_NAMED_SECTION to its ELF default.
9591         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9592         check !HAVE_GNU_AS.
9593         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9594         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9595         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9596         after sparc/sysv4.h.
9597
9598 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9599
9600         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9601
9602 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9603
9604         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9605         patterns from predicated pattern.
9606
9607 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9608
9609         PR target/43103
9610         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9611         for insn mnemonic suffix.
9612
9613 2010-02-17  Richard Guenther  <rguenther@suse.de>
9614
9615         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9616         to loop PHI nodes.
9617
9618 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR debug/42918
9621         * caller-save.c (save_call_clobbered_regs): If BB ends with
9622         a DEBUG_INSN, move any notes in between last real insn and the last
9623         DEBUG_INSN after the last DEBUG_INSN.
9624
9625 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9626
9627         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9628         Fix return type.  Fix argument type.  Explain meaning of return value.
9629
9630 2010-02-16  Richard Guenther  <rguenther@suse.de>
9631
9632         PR tree-optimization/41043
9633         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9634         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9635         statements ...
9636         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9637
9638 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9639
9640         PR tree-optimization/43074
9641         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9642         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9643         vectorizable cycles in hybrid SLP check.
9644         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9645
9646 2010-02-16  Richard Guenther  <rguenther@suse.de>
9647
9648         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9649         (true_dependence): If memrefs_conflict_p computes must-alias
9650         trust it.  Move TBAA check after offset-based disambiguation.
9651         (canon_true_dependence): Likewise.
9652
9653 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9654
9655         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9656         * doc/invoke.texi: Document it.
9657         * var-tracking.c: Include toplev.h and params.h.
9658         (vt_find_locations): Return bool indicating success.  Compute
9659         hash sizes unconditionally.  Check new parameter, report.
9660         (variable_tracking_main_1): Check vt_find_locations results and
9661         retry.  Renamed from...
9662         (variable_tracking_main): ... this.  New wrapper to preserve
9663         flag_var_tracking_assignments.
9664         * Makefile.in (var-tracking.o): Adjust dependencies.
9665
9666 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9667             Jakub Jelinek <jakub@redhat.com>
9668
9669         PR target/42854
9670         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9671         if weak_import attribute is present.
9672         * config/darwin.c (machopic_select_section): Likewise.
9673
9674 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9675
9676         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9677         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9678         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9679         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9680
9681         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9682         types.
9683
9684         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9685         Fix argument types.
9686
9687         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9688         Rewrite text to refer to the names.
9689
9690 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9691
9692         * config/i386/i386-builtin-types.def
9693         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9694         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9695         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9696         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9697         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9698         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9699         IX86_BUILTIN_VPERMIL2PS256.
9700         (MULTI_ARG_4_DF2_DI_I): Defined.
9701         (MULTI_ARG_4_DF2_DI_I1): Defined.
9702         (MULTI_ARG_4_SF2_SI_I): Defined.
9703         (MULTI_ARG_4_SF2_SI_I1): Defined.
9704         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9705         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9706         __builtin_ia32_vpermil2ps256.
9707         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9708         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9709         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9710         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9711         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9712         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9713         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9714         CODE_FOR_xop_vpermil2v8sf3.
9715         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9716         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9717         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9718         (_mm256_permute2_pd): New.
9719         (_mm_permute2_ps): New.
9720         (_mm256_permute2_ps): New.
9721
9722 2010-02-15  Nick Clifton  <nickc@redhat.com>
9723
9724         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9725         boolean parameters.  Use emit_jump_insn when emitting a pop
9726         instruction containing a return insn.
9727         (push): Use 'true' rather than '1' as second parameter to F.
9728         (h8300_expand_prologue): Likewise.
9729         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9730         (h8300_expand_epilogue): Likewise.
9731
9732 2010-02-15  Richard Guenther  <rguenther@suse.de>
9733
9734         PR middle-end/43068
9735         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9736         if that is zero.
9737
9738 2010-02-15  Nick Clifton  <nickc@redhat.com>
9739
9740         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9741         delta.
9742
9743 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9744
9745         * intl.c (fake_ngettext): New function.
9746         * intl.h (fake_ngettext): Declare.
9747         (ngettext): Define macro.
9748         * collect2.c (notice_translated): New function.
9749         (main): Use notice_translated and ngettext.
9750         * collect2.h (notice_translated): Declare.
9751
9752 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9753
9754         * reorg.c (delete_computation): Comment fixes.
9755         * caller-save.c (setup_save_areas): Idem.
9756         * sel-sched-dump.c (dump_lv_set): Idem.
9757         * rtl.def: Idem.
9758
9759 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9760
9761         * config/s390/s390.c (s390_sched_init): New function.
9762         (TARGET_SCHED_INIT): Target hook defined.
9763
9764 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9765             Jack Howarth  <howarth@bromo.med.uc.edu>
9766             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9767
9768         PR target/42982
9769         Partial revert of unintended change in fix for PR41605.
9770         * config/darwin.h: Fix typo.
9771         * config/darwin9.h: Same.
9772
9773 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9774
9775         * c-pch.c (pch_init): Clear v.
9776
9777 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9778
9779         PR middle-end/42930
9780         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9781         graphite_can_represent_init for MULT_EXPR.
9782
9783 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9784
9785         PR middle-end/42914
9786         PR middle-end/42530
9787         * graphite-sese-to-poly.c (remove_phi): New.
9788         (translate_scalar_reduction_to_array): Call remove_phi.
9789
9790 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9791
9792         PR middle-end/42771
9793         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9794         * graphite-clast-to-gimple.h (gloog): Update declaration.
9795         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9796         * graphite-poly.h (struct poly_bb): Add missing comments.
9797         (struct scop): Add poly_scop_p field.
9798         (POLY_SCOP_P): New.
9799         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9800         * graphite.c (graphite_transform_loops): Build the polyhedral
9801         representation for each scop before code generation.
9802         * sese.c (rename_variables_in_operand): Removed.
9803         (rename_variables_in_expr): Return the renamed expression.
9804         (rename_sese_parameters): New.
9805         * sese.h (rename_sese_parameters): Declared.
9806
9807 2010-02-11  Richard Guenther  <rguenther@suse.de>
9808
9809         PR tree-optimization/42998
9810         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9811         POINTER_PLUS_EXPR properly.
9812
9813 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9814             Changpeng Fang  <changpeng.fang@amd.com>
9815
9816         PR middle-end/40886
9817         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9818         the cost of an IV candidate when the IV is used in a test against zero.
9819
9820         * gcc.dg/tree-ssa/ivopts-3.c: New.
9821
9822 2010-02-11  Richard Guenther  <rguenther@suse.de>
9823
9824         PR lto/41664
9825         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9826         pointer-vs-decl case by swapping refs.  Handle some cases
9827         of pointer-vs-decl disambiguations more conservatively.
9828         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9829         to false after expanding.
9830
9831 2010-02-11  Richard Guenther  <rguenther@suse.de>
9832
9833         PR driver/43021
9834         * gcc.c (process_command): Handle LTO file@offset case more
9835         appropriately.
9836
9837 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9838
9839         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9840         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9841         of DEBUG_INSNs.
9842         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9843
9844         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9845         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9846         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9847         Optimize eq/ne comparisons when both arguments are known to be
9848         zero-extended.
9849         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9850         Don't mask operands unnecessarily if they are known to be already
9851         zero-extended.
9852
9853 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9854
9855         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9856         instead of loop.
9857
9858 2010-02-10  Richard Guenther  <rguenther@suse.de>
9859
9860         PR tree-optimization/43017
9861         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9862         for wrapping signed arithmetic.
9863
9864 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9865
9866         PR debug/43010
9867         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9868         if no debug info should be emitted for it.
9869
9870 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9871
9872         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9873         note when flag_exceptions is set.
9874
9875 2010-02-10  Duncan Sands  <baldrick@free.fr>
9876
9877         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9878
9879 2010-02-10  Richard Guenther  <rguenther@suse.de>
9880
9881         PR c/43007
9882         * tree.c (get_unwidened): Handle constants.
9883         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9884
9885 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9886
9887         PR lto/42985
9888         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9889         check for variable argument counts independently.
9890
9891 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9892
9893         PR target/42841
9894         * config/sh/sh.c (find_barrier): Increase length for non delayed
9895         conditional branches.
9896
9897 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9898
9899         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9900
9901 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9902
9903         * builtins.c (set_builtin_user_assembler_name): Also handle
9904         ffs if int is smaller than word.
9905
9906 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9907
9908         PR middle-end/42973
9909         * ira-conflicts.c (get_dup): Remove.
9910         (process_reg_shuffles): Add new parameter.  Use it as an
9911         additional guard for copy generation.
9912         (add_insn_allocno_copies): Rewrite.
9913
9914 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9915
9916         * common.opt (fsched2-use-traces): Preserved for backward
9917         compatibility.
9918         * doc/invoke.texi: Remove the documentation about option
9919         -fsched2-use-traces.
9920         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9921         flag_sched2_use_traces.
9922         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9923         the backward compatibility flag section.
9924
9925 2010-02-09  Richard Guenther  <rguenther@suse.de>
9926
9927         PR tree-optimization/43008
9928         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9929         make HEAP variables initialized from global memory if they
9930         are not known builtin functions.
9931         (find_func_aliases): Adjust.
9932
9933 2010-02-09  Richard Guenther  <rguenther@suse.de>
9934
9935         PR tree-optimization/43000
9936         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9937         arithmetic manually.
9938
9939 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9940
9941         PR tree-optimization/42931
9942         * tree-loop-linear.c (try_interchange_loops): Don't call
9943         double_int_mul if estimated_loop_iterations failed.
9944
9945 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9946
9947         PR middle-end/42898
9948         * tree-sra.c (build_accesses_from_assign): Do not mark in
9949         should_scalarize_away_bitmap if stmt has volatile ops.
9950         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9951         has volatile ops.
9952
9953 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9954
9955         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9956
9957 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9958
9959         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9960         before the pattern.
9961
9962 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9963
9964         PR middle-end/42946
9965         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9966
9967 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9968
9969         PR middle-end/42988
9970         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9971         to unknown_dependence.
9972         (graphite_legal_transform_dr): Handle the unknown_dependence.
9973         (graphite_carried_dependence_level_k): Same.
9974
9975 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9976
9977         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9978
9979 2010-02-07  Richard Guenther  <rguenther@suse.de>
9980
9981         PR middle-end/42991
9982         * expr.c (get_inner_reference): Always initialize *pbitsize.
9983
9984 2010-02-07  Richard Guenther  <rguenther@suse.de>
9985
9986         PR middle-end/42956
9987         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9988         new ARRAY_REFs on variable size element or minimal index arrays.
9989         Complete.
9990         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9991         gimple_fold_indirect_ref.
9992
9993 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9994
9995         PR target/42957
9996         * arm.c (arm_override_options): Just return if the user has specified
9997         an invalid fpu name.
9998
9999 2010-02-03  Jason Merrill  <jason@redhat.com>
10000
10001         PR c++/42870
10002         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
10003         i386_pe_maybe_record_exported_symbol.
10004
10005 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
10006
10007         PR target/42924
10008         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10009         (pa_delegitimize_address): New function.
10010
10011 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
10012
10013         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
10014         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
10015
10016 2010-02-05  Richard Guenther  <rguenther@suse.de>
10017
10018         PR lto/42762
10019         * lto-streamer-in.c (get_resolution): Deal with references
10020         to undefined functions.
10021
10022 2010-02-05  Richard Guenther  <rguenther@suse.de>
10023
10024         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
10025         (fold_const_aggregate_ref): Likewise.
10026         (ccp_fold_stmt): Substitute loads.
10027         (maybe_fold_reference): Verify types before substituting.
10028         Unshare properly.
10029         (fold_gimple_assign): Unshare properly.
10030         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
10031
10032 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
10033
10034         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
10035         for rs6000_gen_cell_microcode.
10036
10037 2010-02-04  Richard Guenther  <rguenther@suse.de>
10038
10039         PR rtl-optimization/42952
10040         * dse.c (const_or_frame_p): Remove MEM handling.
10041
10042 2010-02-04  Nick Clifton  <nickc@redhat.com>
10043
10044         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10045         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10046         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
10047         (mn10300_asm_output_mi_thunk): New function.
10048         (mn10300_can_output_mu_thunk): New function.
10049         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
10050         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
10051         (FUNCTION_ARG): Delete incorrect comment.
10052
10053 2010-02-03  Jason Merrill  <jason@redhat.com>
10054
10055         PR c++/40138
10056         * fold-const.c (operand_equal_p): Handle erroneous types.
10057
10058 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10059
10060         * config/h8300/h8300.md (can_delay): Fix attibute condition.
10061
10062 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
10063
10064         PR rtl-optimization/42941
10065         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
10066         of xmalloc.
10067
10068 2010-02-03  Jason Merrill  <jason@redhat.com>
10069
10070         PR c++/35652
10071         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
10072
10073 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
10074
10075         PR debug/42896
10076         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
10077         (cselib_reset_table): Renamed from...
10078         (cselib_reset_table_with_next_value): ... this.
10079         (cselib_get_next_uid): Renamed from...
10080         (cselib_get_next_unknown_value): ... this.
10081         * cselib.c (next_uid): Renamed from...
10082         (next_unknown_value): ... this.
10083         (cselib_clear_table): Adjust.
10084         (cselib_reset_table): Adjust.  Renamed from...
10085         (cselib_reset_table_with_next_value): ... this.
10086         (cselib_get_next_uid): Adjust.  Renamed from...
10087         (cselib_get_next_unknown_value): ... this.
10088         (get_value_hash): Use hash.
10089         (cselib_hash_rtx): Likewise.
10090         (new_cselib_val): Adjust.  Set and dump uid.
10091         (cselib_lookup_mem): Pass next_uid as hash.
10092         (cselib_subst_to_values): Likewise.
10093         (cselib_log_lookup): Dump uid.
10094         (cselib_lookup): Pass next_uid as hash.  Adjust.
10095         (cselib_process_insn): Adjust.
10096         (cselib_init): Initialize next_uid.
10097         (cselib_finish): Adjust.
10098         (dump_cselib_table): Likewise.
10099         * dse.c (canon_address): Dump value uid.
10100         * print-rtl.c (print_rtx): Print value uid.
10101         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
10102         (dvuid): New type.
10103         (dv_uid): New function, sort of renamed from...
10104         (dv_htab_hash): ... this, reimplemented in terms of it and...
10105         (dv_uid2hash): ... this.  New.
10106         (variable_htab_eq): Drop excess assertions.
10107         (tie_break_pointers): Removed.
10108         (canon_value_cmp): Compare uids.
10109         (variable_post_merge_New_vals): Print uids.
10110         (vt_add_function_parameters): Adjust.
10111         (vt_initialize): Reset table.  Adjust.
10112
10113 2010-02-03  Richard Guenther  <rguenther@suse.de>
10114
10115         PR tree-optimization/42944
10116         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
10117         (call_may_clobber_ref_p_1): Likewise.  Properly handle
10118         malloc and calloc clobbering errno.
10119
10120 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
10121
10122         * doc/invoke.texi: Fix name of sched1 dump.
10123
10124         * opts.c (decode_options): Set flag_tree_switch_conversion
10125         only conditionally on optimize >= 2.
10126
10127         * gcse.c: Assorted comment fixes in pass description.
10128
10129 2010-02-03  Anthony Green  <green@moxielogic.com>
10130
10131         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
10132         nop padding in order to maintain alignment of storage location of
10133         target function address.
10134         (moxie_trampoline_init): Store target function address at newly
10135         aligned location.
10136         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
10137         to 32.
10138         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
10139
10140 2010-02-03  Richard Guenther  <rguenther@suse.de>
10141
10142         PR middle-end/42927
10143         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
10144
10145 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10146
10147         * config.gcc: Reenable check for obsolete targets.
10148         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
10149         mips-sgi-irix6.[0-4]*.
10150
10151 2010-02-02  Nick Clifton  <nickc@redhat.com>
10152
10153         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
10154         constant size of 4 as being the same as 0.
10155         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
10156         can take values in the range 0..4.
10157
10158 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
10159
10160         PR java/41991
10161         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
10162         as _darwin10_Unwind_FindEnclosingFunction().
10163         * libgcc-libsystem.ver: New.
10164
10165 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
10166
10167         PR target/41399
10168         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
10169         implicitly set registers.
10170
10171 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
10172
10173         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
10174         (arm_override_options): Allow automatic selection of the thread
10175         pointer register if thumb2.
10176         (legitimize_pic_address): Improve code sequences for Thumb2.
10177         (arm_call_tls_get_addr): Likewise.
10178         (legitimize_tls_address): Likewise.
10179         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
10180         (pic_load_addr_32bit): ... this.  New named pattern.
10181         * thumb2.md (pic_load_addr_thumb2): Delete.
10182         (pic_load_dot_plus_four): Delete.
10183         (tls_load_dot_plus_four): New named pattern.
10184
10185 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10186
10187         PR libgomp/29986
10188         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
10189         Document fix for TLS bug.
10190
10191 2010-01-31  Richard Guenther  <rguenther@suse.de>
10192
10193         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
10194         conservatively correct.
10195
10196 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10197
10198         PR target/42850
10199         Revert:
10200         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10201
10202         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10203
10204 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10205
10206         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
10207
10208 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
10209
10210         * config.gcc: Adjust order of makefile fragments for mingw targets.
10211
10212 2010-01-31  Richard Guenther  <rguenther@suse.de>
10213
10214         PR middle-end/42898
10215         * gimplify.c (gimplify_init_constructor): For volatile LHS
10216         initialize a temporary.
10217
10218 2010-01-31  Matthias Klose  <doko@ubuntu.com>
10219
10220         * configure.ac: Fix __stack_chk_fail check for cross builds configured
10221         --with-headers
10222         * configure: Regenerate.
10223
10224 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
10225
10226         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10227         the same alias set and their sizes different constantness.
10228         (aliasing_component_refs_p): Revert 2009-10-24 change.
10229
10230 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10231
10232         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
10233         unused.
10234
10235 2010-01-29  Richard Guenther  <rguenther@suse.de>
10236
10237         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
10238         Assert we successfully updated the call.
10239
10240 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
10241
10242         PR rtl-optimization/42889
10243         * df.h (df_set_bb_dirty_nonlr): New prototype.
10244         * df-core.c (df_set_bb_dirty_nonlr): New function.
10245         * df-scan.c (df_insn_rescan): Call it instead of
10246         df_set_bb_dirty for DEBUG_INSNs.
10247
10248 2010-01-29  Richard Guenther  <rguenther@suse.de>
10249
10250         PR middle-end/37448
10251         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10252         quadratic behavior in most cases.
10253
10254 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10255
10256         PR target/42891
10257         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10258         in the call to gen_x86_movsicc_0_m1.
10259
10260 2010-01-28  Richard Guenther  <rguenther@suse.de>
10261
10262         PR tree-optimization/42871
10263         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10264
10265 2010-01-28  Richard Guenther  <rguenther@suse.de>
10266
10267         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10268         into call arguments.
10269
10270 2010-01-28  Richard Guenther  <rguenther@suse.de>
10271
10272         PR middle-end/42883
10273         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10274         the forwarder if the destination is an EH landing pad.
10275
10276 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10277
10278         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10279         block list passed to gimple_duplicate_sese_tail.
10280         (parallelize_loops): Avoid parallelization when the function
10281         has_nonlocal_label.
10282         Avoid parallelization when the preheader is IRREDUCIBLE.
10283         Try to optimize when estimated_loop_iterations_int is unresolved.
10284         Add the loop's location to the dump file.
10285         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10286         (gimple_duplicate_sese_tail): Remove the check for the latch.
10287         Redirect nexits to the exit block.
10288         Remove handling of the incoming edges to the latch.
10289         Redirect the backedge from the copied latch to the exit bb.
10290
10291 2010-01-28  Michael Matz  <matz@suse.de>
10292
10293         PR target/42881
10294         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10295         Wrap force_reg into a sequence, emit it before user.
10296
10297 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10298
10299         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10300         (arm_rev): New.
10301         (arm_legacy_rev): Likewise.
10302         (thumb_legacy_rev): Likewise.
10303
10304 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10305
10306         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10307         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10308         on MEM's address failed, try avoid_constant_pool_reference and
10309         recurse if it returned something different.
10310         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10311         address, try avoid_constant_pool_reference and recurse if it
10312         returned something different.
10313         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10314         address and avoid_constant_pool_reference returned something
10315         different, don't set have_address.
10316
10317 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10318
10319         PR debug/42861
10320         * var-tracking.c (val_store): Add modified argument, obey it.
10321         Adjust callers.
10322         (count_uses): Move down logging of main.
10323         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10324         don't need resolution.
10325         (emit_notes_in_bb): Likewise.
10326
10327 2010-01-27  Richard Guenther  <rguenther@suse.de>
10328
10329         PR middle-end/42878
10330         * tree-inline.c (remap_decl): Delay remapping of SSA name
10331         default definitions until we need them.
10332
10333 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10334
10335         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10336         (rs6000_delegitimize_address): New function.
10337
10338         * config/s390/s390.c (s390_delegitimize_address): Call
10339         delegitimize_mem_from_attrs.
10340
10341         PR middle-end/42874
10342         * tree-inline.c (cannot_copy_type_1): Removed.
10343         (copy_forbidden): Don't forbid copying of functions containing
10344         records/unions with variable length fields.
10345
10346 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10347
10348         Revert:
10349         PR target/42841
10350         * config/sh/sh.c (find_barrier): Increase length for non delayed
10351         conditional branches.
10352
10353 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10354
10355         * configure.ac (gnu-unique-object): Fix ldd version check.
10356         * configure: Regenerate.
10357
10358 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10359
10360         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10361         HAVE_GNU_AS value.
10362         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10363         Test for HAVE_GNU_AS value.
10364
10365 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10366
10367         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10368         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10369         INT64_TYPE): Define.
10370         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10371         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10372         INT_LEAST64_TYPE): Define.
10373         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10374         UINT_LEAST64_TYPE): Define.
10375         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10376         INT_FAST64_TYPE): Define.
10377         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10378         UINT_FAST64_TYPE): Define.
10379         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10380         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10381         (SIG_ATOMIC_TYPE): Define.
10382
10383 2010-01-26  Richard Guenther  <rguenther@suse.de>
10384
10385         * df-scan.c (df_scan_set_bb_info): Remove assert.
10386         (df_insn_rescan_debug_internal): Merge asserts.
10387         (df_install_ref): Likewise.
10388         (df_mark_reg): Use bitmap_set_range.
10389         (df_hard_reg_used_p): Remove assert.
10390         (df_hard_reg_used_count): Likewise.
10391
10392 2010-01-26  Richard Guenther  <rguenther@suse.de>
10393
10394         PR rtl-optimization/42685
10395         * web.c (web_main): Ignore DEBUG_INSNs.
10396
10397 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10398
10399         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10400
10401         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10402         Fix types of fndecl and arglist parameters.
10403
10404 2010-01-26  Richard Guenther  <rguenther@suse.de>
10405
10406         PR middle-end/42806
10407         * tree-eh.c (unsplit_eh): Skip debug insns.
10408
10409 2010-01-26  Richard Guenther  <rguenther@suse.de>
10410
10411         PR tree-optimization/42250
10412         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10413
10414 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10415
10416         PR fortran/42866
10417         * omp-low.c (expand_omp_sections): Only use single_pred if
10418         l2_bb is single_pred_p.
10419
10420 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10421
10422         PR target/42841
10423         * config/sh/sh.c (find_barrier): Increase length for non delayed
10424         conditional branches.
10425         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10426
10427 2010-01-24  David S. Miller  <davem@davemloft.net>
10428
10429         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10430         define if not using GAS.
10431         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10432         Likewise.  Delete SECTION_MERGE code, which is only applicable
10433         when using GAS.
10434
10435 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10436
10437         PR c++/42748
10438         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10439         mangling of va_list in system headers.
10440
10441 2010-01-23  Toon Moene  <toon@moene.org>
10442
10443         * tree-predcom.c (combine_chains): Return NULL, not false.
10444
10445 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10446
10447         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10448         initialization of variable res to agree with return type.
10449
10450 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10451
10452         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10453         * tree-sra.c: Add include of expr.h.
10454
10455 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10456
10457         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10458         insert the debug stmt on the single non-EH edge from the stmt.
10459
10460 2010-01-22  Richard Henderson  <rth@redhat.com>
10461
10462         PR tree-opt/42833
10463         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10464         the RHS until after generate_subtree_copies has insertted its
10465         code before the current statement.
10466
10467 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10468
10469         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10470
10471         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10472
10473 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10474
10475         PR tree-optimization/42585
10476         * tree-sra.c (struct access): New field grp_total_scalarization.
10477         (dump_access): Dump the new field.
10478         (should_scalarize_away_bitmap): New variable.
10479         (cannot_scalarize_away_bitmap): Likewise.
10480         (sra_initialize): Allocate new bitmaps.
10481         (sra_deinitialize): Free new bitmaps.
10482         (create_access_1): New function.
10483         (create_access): Parts moved to create_access_1.
10484         (type_consists_of_records_p): New function.
10485         (completely_scalarize_record): Likewise.
10486         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10487         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10488         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10489         access.
10490         (analyze_all_variable_accesses): Completely scalarize small eligible
10491         records.
10492
10493 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10494
10495         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10496
10497 2010-01-21  Andrew Haley  <aph@redhat.com>
10498
10499         * gcc.c (process_command): Move lang_specific_driver before
10500         setting cc_libexec_prefix.
10501
10502 2010-01-21  Richard Guenther  <rguenther@suse.de>
10503
10504         PR middle-end/19988
10505         * fold-const.c (negate_expr_p): Pretend only negative
10506         real constants are easily negatable.
10507
10508 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10509             Jason Merrill  <jason@redhat.com>
10510
10511         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10512         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10513         * calls.c (initialize argument_information): Handle it.
10514         * c-common.c (handle_transparent_union_attribute): Use new name.
10515         * c-decl.c (finish_struct): Ditto.
10516         * c-typeck.c (type_lists_compatible_p): Ditto.
10517         (convert_for_assignment): Use new name and also handle record.
10518         * function.c (aggregate_value_p): Handle it.
10519         (pass_by_reference): Ditto.
10520         (assign_parm_data_types): Ditto.
10521         * print-tree.c (print_node): Ditto.
10522         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10523         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10524         * tree.c (first_field): New fn.
10525
10526 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10527
10528         PR target/42818
10529         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10530         even when linking statically, for now.
10531
10532 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10533
10534         PR debug/42715
10535         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10536         without a cselib val.
10537         (count_uses): Accept MO_VAL_SET with no val on stores.
10538         (add_stores): Likewise.
10539
10540 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10541
10542         * var-tracking.c (check_value_val): Add a compile time assertion.
10543         (dv_is_decl_p): Simplify.
10544         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10545         gcc_assert if ENABLE_CHECKING.
10546
10547 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10548
10549         PR debug/42782
10550         * var-tracking.c: Include tree-flow.h.
10551         (mem_dies_at_call): New.
10552         (dataflow_set_preserve_mem_locs): Use it.
10553         (dataflow_set_remove_mem_locs): Likewise.
10554         (dump_var): Renamed from dump_variable.  Adjust all callers.
10555         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10556         * Makefile.in (var-tracking.o): Adjust deps.
10557
10558 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10559
10560         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10561
10562 2010-01-20  Richard Guenther  <rguenther@suse.de>
10563
10564         PR tree-optimization/42717
10565         * tree-ssa-dce.c (get_live_post_dom): Remove.
10566         (forward_edge_to_pdom): Take an arbitrary edge to copy
10567         degenerate PHI args from.
10568         (remove_dead_stmt): Use the first post-dominator even if it
10569         does not contain live statements as redirection destination.
10570
10571 2010-01-20  Richard Guenther  <rguenther@suse.de>
10572
10573         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10574
10575 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10576
10577         * sel-sched.c (create_speculation_check): Remove set but not used
10578         variable twin.
10579         (try_transformation_cache): Remove set but not used variable ds.
10580         (calculate_privileged_insns): Remove set but not used variables
10581         cur_insn and min_spec_insn.
10582         (find_best_expr): Remove set but not used variable avail_n.
10583         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10584         variable e.
10585         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10586         false_label.
10587         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10588         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10589         new_scop_exit_edge.
10590
10591 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10592
10593         PR bootstrap/42786
10594         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10595         cpu types.  Add support for *-sse3 cpu types.
10596         (x86_64-*-*): Ditto.
10597
10598 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10599
10600         PR middle-end/42803
10601         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10602         argument, call initializer_constant_valid_p_1 instead of
10603         initializer_constant_valid_p, pass CACHE to it, return NULL
10604         immediately if first call returns NULL.
10605         (initializer_constant_valid_p_1): New function.
10606         (initializer_constant_valid_p): Use it.
10607
10608 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10609
10610         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10611
10612 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10613
10614         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10615         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10616         (loc_list_from_tree): Don't handle unsigned division.  Handle
10617         signed modulo using DW_OP_{over,over,div,mul,minus}.
10618         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10619         modulo instead of signed.
10620
10621 2010-01-20  DJ Delorie  <dj@redhat.com>
10622
10623         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10624         (Fpa): Pass it
10625         (h8300_emit_stack_adjustment): Propogate it.
10626         (push): Pass it.
10627         (h8300_expand_prologue): Likewise.
10628         (h8300_expand_epilogue): Likewise.
10629
10630 2010-01-19  Michael Matz  <matz@suse.de>
10631
10632         PR tree-optimization/41783
10633         * tree-data-ref.c (toplevel): Include flags.h.
10634         (dump_data_dependence_relation):  Also dump the inputs if the
10635         result will be unknown.
10636         (split_constant_offset_1): Look through some conversions.
10637         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10638         the offset from last element is too large.
10639         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10640         (reassociate_to_the_same_stmt): Handle vector registers.
10641         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10642         (e.g. conversions).
10643         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10644         wide_prolog_niters argument, emit widening instructions.
10645         (vect_do_peeling_for_alignment): Adjust caller, use widened
10646         variant of the iteration cound.
10647         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10648
10649 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10650
10651         PR target/38697
10652         * config/arm/neon-testgen.m (emit_automatics): New parameter
10653         features. Adjust for Fixed_return_reg feature.
10654         (test_intrinsic): Call emit_automatics with new feature.
10655         * config/arm/neon.ml: Update copyright years.
10656         (features): New Fixed_return_reg feature.
10657         (ops): Update feature for Vget_low.
10658
10659 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10660
10661         PR tree-optimization/42719
10662         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10663         stmt uses.
10664
10665         PR debug/42728
10666         * fwprop.c (all_uses_available_at): Return false if def_set dest
10667         is a REG that is used in def_insn.
10668
10669 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10670
10671         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10672
10673         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10674         Add argument names.
10675
10676         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10677
10678         * target.h (struct gcc_target) <secondary_reload>: Change type
10679         of last argument to secondary_reload_info *.
10680
10681 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10682
10683         PR target/42774
10684         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10685         memory references with unaligned offsets.  Remove CQImode handling.
10686         (unaligned_memory_operand): Return 1 for memory references with
10687         unaligned offsets.  Remove CQImode handling.
10688
10689 2010-01-18  Richard Guenther  <rguenther@suse.de>
10690
10691         PR middle-end/39954
10692         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10693         builtin calls.
10694
10695 2010-01-18  Richard Guenther  <rguenther@suse.de>
10696
10697         PR tree-optimization/42781
10698         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10699         restrict processing only if the original variable was artificial.
10700
10701 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10702
10703         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10704         find number of popped argument bytes.
10705
10706         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10707         Fix the text that describes the return value for invalid insns.
10708
10709         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10710
10711         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10712         Clarify what 'cost of the -dependence' is.  Fix quoting.
10713
10714         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10715         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10716
10717 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10718
10719         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10720         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10721
10722 2010-01-17  Richard Guenther  <rguenther@suse.de>
10723
10724         PR middle-end/42248
10725         * function.c (split_complex_args): Take a VEC to modify.
10726         (assign_parms_augmented_arg_list): Build a VEC instead of
10727         a chain of PARM_DECLs.
10728         (assign_parms_unsplit_complex): Take a VEC of arguments.
10729         Do not fixup unmodified parms.
10730         (assign_parms): Deal with the VEC.
10731         (gimplify_parameters): Likewise.
10732
10733 2010-01-17  Richard Guenther  <rguenther@suse.de>
10734
10735         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10736         node existence check.
10737         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10738         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10739         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10740         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10741         (gimple_execute_on_growing_pred): Likewise.
10742
10743 2010-01-17  Richard Guenther  <rguenther@suse.de>
10744
10745         PR tree-optimization/42773
10746         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10747         (compute_antic_aux): Likewise.
10748         (compute_partial_antic_aux): Likewise.
10749
10750 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10751
10752         PR debug/42767
10753         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10754         and US_TRUNCATE.
10755
10756 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10757
10758         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10759         appearance.
10760
10761         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10762         Fix markup for strict argument.
10763
10764         (TARGET_SCHED_REORDER2): Fix argument types.
10765
10766         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10767         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10768
10769         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10770         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10771
10772         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10773         Add argument name.
10774
10775         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10776         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10777         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10778         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10779         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10780
10781         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10782
10783         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10784
10785         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10786         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10787
10788         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10789
10790         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10791         Use prototype.
10792
10793         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10794
10795         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10796         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10797
10798         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10799
10800         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10801
10802         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10803         referring to it.  Fix language.
10804
10805         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10806
10807         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10808
10809         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10810
10811         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10812
10813         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10814         '@var{stream}.  Remove stray 'and'.
10815
10816         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10817
10818         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10819
10820         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10821
10822         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10823         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10824
10825         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10826         Fix description of return value.
10827         Rename argument "sz" to "len."
10828
10829         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10830         Clarify meaning of 'true' return value.
10831
10832         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10833
10834         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10835         rep_mode versus mode_rep.
10836
10837         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10838
10839         (TARGET_BUILTIN_DECL): Fix name.
10840
10841         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10842
10843         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10844
10845         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10846
10847         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10848
10849         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10850
10851         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10852         Clarify language.
10853
10854         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10855         Rename argument tm_fn to md_fn.
10856
10857         (TARGET_OPTION_PRINT): Fix argument list.
10858
10859 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10860
10861         PR target/42664
10862         * config/i386/i386.c (ix86_fixup_binary_operands):
10863         Revert FMA4 fixup of operands.
10864
10865 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10866
10867         PR gcc/42525
10868         * Makefile.in (write_entries_to_file, install-plugin):
10869         Use \012 instead of \n with tr.
10870
10871 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10872
10873         * configure.ac (HAVE_AS_REF): New C macro.
10874         * configure: Regenerate.
10875         * config.in: Likewise.
10876         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10877         if HAVE_AS_REF.
10878         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10879         if HAVE_AS_REF.
10880
10881 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10882
10883         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10884
10885         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10886
10887         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10888
10889         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10890
10891         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10892
10893         (TARGET_BINDS_LOCAL_P): Fix argument type.
10894
10895         (TARGET_ASM_FILE_END): Use prototype.
10896
10897         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10898
10899         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10900
10901         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10902
10903         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10904
10905         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10906         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10907
10908         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10909         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10910
10911         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10912         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10913         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10914         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10915
10916         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10917
10918         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10919
10920         (TARGET_INIT_BUILTINS): Use prototype.
10921
10922         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10923         Put 'const char *' in braces.  Fix parameter types.
10924         (TARGET_INVALID_CONVERSION): Fix parameter types.
10925         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10926         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10927
10928         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10929         Fix argument type.
10930
10931         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10932
10933         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10934
10935 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10936
10937         * doc/tm.texi (TARGET_HELP): Fix return type.
10938
10939         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10940         in braces.  Fix argument types.
10941
10942         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10943
10944         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10945
10946         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10947
10948         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10949         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10950
10951         (TARGET_MANGLE_TYPE): Fix argument types.
10952
10953         (TARGET_IRA_COVER_CLASSES): Use prototype.
10954
10955         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10956
10957         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10958
10959         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10960
10961         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10962
10963         (TARGET_CALLEE_COPIES): Fix argument types.
10964
10965         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10966
10967         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10968
10969         (TARGET_FUNCTION_VALUE): Fix argument types.
10970
10971         (TARGET_RETURN_IN_MSB): Fix argument type.
10972
10973         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10974
10975         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10976
10977         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10978
10979         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10980         agree with return type.
10981
10982         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10983
10984 2010-01-15  Jing Yu  <jingyu@google.com>
10985
10986         PR rtl-optimization/42691
10987         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10988         a pseudo to a constant and are merged, and adjust comments.
10989
10990 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10991
10992         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10993
10994 2010-01-15  Richard Guenther  <rguenther@suse.de>
10995
10996         PR middle-end/42739
10997         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10998         labels of computed or non-local gotos to the destination.
10999         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
11000         landing pad label is the first label.
11001
11002 2010-01-15  Richard Guenther  <rguenther@suse.de>
11003
11004         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
11005
11006 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11007
11008         PR target/42747
11009         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
11010         to allow generation of the xssqrtdp instruction on power7.
11011         (sqrtdf2_fpr): Ditto.
11012
11013 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11014
11015         PR middle-end/42674
11016         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
11017         functions with noreturn attribute.
11018
11019         PR c++/42608
11020         * varasm.c (declare_weak): Add weak attribute to decl if it
11021         doesn't have one already.
11022         (assemble_external): Only add decls to weak_decls if they also
11023         have weak attribute.
11024
11025 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
11026
11027         * var-tracking.c (var_reg_delete): Don't delete the association
11028         between REGs and values or one-part variables if the register
11029         isn't clobbered.
11030
11031 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11032
11033         PR debug/42657
11034         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
11035         because its first operand is a non-localized variable.
11036
11037 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11038
11039         PR tree-optimization/42706
11040         * tree-sra.c (encountered_recursive_call): New variable.
11041         (encountered_unchangable_recursive_call): Likewise.
11042         (sra_initialize): Initialize both new variables.
11043         (callsite_has_enough_arguments_p): New function.
11044         (scan_function): Call decl and flags check only for IPA-SRA, check
11045         whether there is a recursive call and whether it has enough arguments.
11046         (all_callers_have_enough_arguments_p): New function.
11047         (convert_callers): Look for recursive calls only when
11048         encountered_recursive_call is set.
11049         (ipa_early_sra): Bail out either if
11050         !all_callers_have_enough_arguments_p or
11051         encountered_unchangable_recursive_call.
11052
11053 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11054
11055         * sel-sched.c: Add 2010 to copyright years.
11056         * sel-sched-ir.c: Likewise.
11057         * sel-sched-ir.h: Likewise.
11058
11059 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11060
11061         PR tree-optimization/42714
11062         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
11063         constructors specially.
11064
11065 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11066
11067         * config/i386/drivers-i386.c (detect_caches_intel):
11068         Add l2sizekb parameter and fill in.
11069         (host_detect_local_cpu): Add l2sizekb, fill in.
11070         Add Atom small cache heuristic.
11071
11072 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11073
11074         * config/i386/drivers-i386.c (detect_caches_cpuid4):
11075         Add level3 parameter and fill in.
11076         (detect_caches_intel): Handle level3 cache.
11077
11078 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11079
11080         * config/i386/drivers-i386.c (host_detect_local_cpu):
11081         Fix core duo detection.
11082
11083 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11084
11085         * config/i386/drivers-i386.c (host_detect_local_cpu):
11086         Fix Atom detection.
11087
11088 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11089
11090         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
11091         (rs6000_variable_issue_1): this.  Use...
11092         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
11093
11094 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11095
11096         * sel-sched-ir.c (sel_restore_other_notes): Rename to
11097         sel_restore_notes.  Update all callers.  Call reemit_notes
11098         for all insns.
11099
11100 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11101
11102         PR rtl-optimization/42246
11103         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
11104         loops.
11105
11106 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11107
11108         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
11109         all successors is the same as number of successors in current region.
11110
11111 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11112
11113         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
11114         to rename is not separable.  Otherwise check that its LHS is not NULL.
11115
11116 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11117
11118         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
11119
11120 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11121
11122         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
11123         available registers when failed to discover LHS register class.
11124         Fix indentation.  Update comment.
11125
11126 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11127             Alexander Monakov  <amonakov@ispras.ru>
11128
11129         PR rtl-optimization/42389
11130         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
11131         to can_issue_more.
11132         (advance_state_on_fence): Likewise.
11133         (sel_target_adjust_priority): Print debug output only when
11134         sched_verbose >= 4, not 2.
11135         (get_expr_cost): Do not issue all unique insns on the next cycle.
11136         (fill_insns): Initialize can_issue_more from the value saved
11137         with the fence.
11138         * sel-sched-ir.c (flist_add): New parameter issue_more.
11139         Init FENCE_ISSUE_MORE with it.
11140         (merge_fences): Likewise.
11141         (init_fences): Update call to flist_add.
11142         (add_to_fences, add_clean_fence_to_fences)
11143         (add_dirty_fence_to_fences): Likewise.
11144         (move_fence_to_fences): Update call to merge_fences.
11145         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
11146         sched groups.
11147         * sel-sched-ir.h (struct _fence): New field issue_more.
11148         (FENCE_ISSUE_MORE): New accessor macro.
11149
11150 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11151
11152         PR rtl-optimization/42388
11153         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
11154         that have no predecessors nor successors.  Do not call move_bb_info
11155         for empty blocks outside of current region.
11156
11157 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11158
11159         PR rtl-optimization/42294
11160         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
11161         * sel-sched.c (move_exprs_to_boundary): Transitively add all
11162         originators' originators.
11163
11164 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11165
11166         PR rtl-optimization/39453
11167         PR rtl-optimization/42246
11168         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
11169         for pipelining_p.
11170         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
11171
11172 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11173             Alexander Monakov  <amonakov@ispras.ru>
11174
11175         PR middle-end/42245
11176         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
11177         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
11178         argument.  Update all callers.
11179         (tidy_control_flow): ... and here.  Recompute topological order
11180         of basic blocks in region if necessary.
11181         (sel_redirect_edge_and_branch): Change return type.  Return true
11182         if topological order might have been invalidated.
11183         (purge_empty_blocks): Export and move from...
11184         * sel-sched.c (purge_empty_blocks): ... here.
11185         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
11186         (maybe_tidy_empty_bb): Delete prototype.
11187         (purge_empty_blocks): Declare.
11188
11189 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
11190
11191         PR rtl-optimization/42249
11192         * sel-sched.c (try_replace_dest_reg): When chosen register
11193         and original register is the same, do not bail out early, but
11194         still check all original insns for validity of replacing destination
11195         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
11196         in this case.
11197
11198 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11199
11200         PR c/42721
11201         Port from no-undefined-overflow branch:
11202         2009-03-09  Richard Guenther  <rguenther@suse.de>
11203
11204         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
11205
11206 2010-01-14  Richard Guenther  <rguenther@suse.de>
11207
11208         PR lto/42665
11209         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
11210
11211 2010-01-14  Ira Rosen  <irar@il.ibm.com>
11212
11213         PR tree-optimization/42709
11214         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
11215         as scalar type in creation of constant vector operand.
11216
11217 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11218
11219         PR testsuite/42414
11220         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
11221         (check-parallel-%): Match `testsuite' directory component only
11222         at the end.
11223
11224 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
11225
11226         PR translation/39521
11227         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
11228         strings with _().
11229
11230 2010-01-13  Richard Guenther  <rguenther@suse.de>
11231
11232         PR tree-optimization/42730
11233         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
11234         offset zero.
11235
11236 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
11237
11238         PR target/pr42542
11239         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
11240         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
11241         them signed.
11242
11243 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11244
11245         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11246         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11247         ___umulsi3_highpart.
11248
11249         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11250         rather than schedule_insns if the pass is enabled.
11251
11252 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11253
11254         PR tree-optimization/42704
11255         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11256         SSA_NAMEs.
11257
11258 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11259
11260         PR tree-optimization/42703
11261         * tree-sra.c (analyze_access_subtree): Check that we can build a
11262         reference to the original data within the aggregate.
11263
11264 2010-01-13  Richard Guenther  <rguenther@suse.de>
11265
11266         PR tree-optimization/42705
11267         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11268
11269 2010-01-13  Richard Guenther  <rguenther@suse.de>
11270
11271         PR middle-end/42716
11272         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11273
11274 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11275
11276         PR debug/41371
11277         * var-tracking.c (values_to_unmark): New variable.
11278         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11279         values_to_unmark vector.  Moved body to...
11280         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11281         instead queue it into values_to_unmark vector.
11282         (vt_find_locations): Free values_to_unmark vector.
11283
11284 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11285
11286         * config/s390/s390.c (override_options): Set
11287         default of max-pending-list-length to 256
11288
11289 2010-01-13  Richard Guenther  <rguenther@suse.de>
11290
11291         PR lto/42678
11292         * tree-pass.h (PROP_gimple_lcx): New.
11293         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11294         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11295         before the final cleanup_eh.
11296         (dump_properties): Dump PROP_gimple_lcx.
11297         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11298         (tree_lower_complex_O0): Remove.
11299         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11300         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11301         tree_lower_complex, schedule TODO_update_ssa.
11302         * lto-streamer-out.c (output_function): Stream the functions
11303         properties.
11304         * lto-streamer-in.c (input_function): Likewise.
11305         (lto_read_body): Do not override them here.
11306
11307 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11308
11309         PR c/42708
11310         * c-typeck.c (build_c_cast): Fold value cast to union type before
11311         wrapping it in a CONSTRUCTOR.
11312
11313 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11314
11315         PR rtl-optimization/42699
11316         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11317         involved.
11318
11319 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11320
11321         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11322         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11323         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11324         SUBTARGET_WARN_UNUSED_SPEC): ... here
11325         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11326
11327 2010-01-12  Julian Brown  <julian@codesourcery.com>
11328
11329         * config/arm/neon-schedgen.ml (Utils): Don't try to
11330         open missing module.
11331         (find_with_result): New.
11332
11333 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11334
11335         PR debug/42662
11336         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11337         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11338
11339         PR tree-optimization/42645
11340         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11341         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11342         decl_map, set processing_debug_stmt to -1 and return name without
11343         any remapping.
11344
11345 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11346
11347         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11348         binutils version, and reword target configuration description.
11349
11350 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11351
11352         * config/avr/avr.h (LINKER_NAME): Remove.
11353
11354 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11355
11356         PR target/42416
11357         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11358         that support VSX, warn for -mno-altivec if vsx is not disabled,
11359         and disable vsx.
11360
11361 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11362             Shujing Zhao  <pearly.zhao@oracle.com>
11363
11364         PR translation/42469
11365         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11366         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11367         character between option name and help text.
11368         * c.opt (imultilib): Likewise.
11369
11370 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11371
11372         * lto-streamer-out.c (output_unreferenced_globals): Output static
11373         variables.
11374
11375 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11376
11377         PR rtl-optimization/42621
11378         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11379         optimizing for size.
11380         (duplicate_computed_gotos): Remove now-redundant check.
11381
11382 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11383
11384         PR target/37454
11385         * configure.ac: Save and restore LDFLAGS and LIBS
11386         * configure: Regenerate.
11387
11388 2010-01-10  Richard Guenther  <rguenther@suse.de>
11389
11390         PR middle-end/42667
11391         * builtins.c (fold_builtin_strlen): Add type argument and
11392         convert the resulting length to it.
11393         (fold_builtin_1): Adjust.
11394
11395 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11396
11397         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11398         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11399         1 insn.
11400         (num_insns_constant_wide): Adjust for that change.
11401
11402 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11403
11404         PR debug/42631
11405         * web.c (union_defs): Add used argument, to combine uses of
11406         uninitialized regs.
11407         (entry_register): Adjust type and tests of used argument.
11408         (web_main): Widen used for new use.  Pass it to union_defs.
11409         * df.h (union_defs): Adjust prototype.
11410
11411 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11412
11413         PR debug/42630
11414         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11415         uses in new incoming argument.  Free body.
11416         (reset_debug_uses_in_loop): New.
11417         (analyze_insn_to_expand_var): Call the latter if the former found
11418         anything.  Fix whitespace.  Reject invalid dest overlaps before
11419         going through all insns in the loop.
11420
11421 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11422
11423         PR debug/42629
11424         * haifa-sched.c (dying_use_p): Debug insns don't count.
11425
11426 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11427
11428         PR middle-end/42363
11429         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11430         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11431         (verify_gimple_call): Reject LHS in noreturn calls.
11432
11433 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11434
11435         PR debug/42604
11436         PR debug/42395
11437         * tree-vect-loop-manip.c (adjust_info): New type.
11438         (adjust_vec): New pointer to vector.
11439         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11440         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11441         (slpeel_update_phis_for_duplicate_loop): Use them.
11442         (slpeel_update_phi_nodes_for_guard1): Likewise.
11443         (slpeel_update_phi_nodes_for_guard2): Likewise.
11444         (slpeel_tree_peel_loop_to_edge): Likewise.
11445         (vect_update_ivs_after_vectorizer): Likewise.
11446
11447 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11448
11449         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11450         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11451
11452 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11453
11454         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11455         bogus uninitialized warning.
11456
11457 2010-01-09  Richard Guenther  <rguenther@suse.de>
11458
11459         PR middle-end/42512
11460         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11461         the evolution is compatible with the initial condition.
11462
11463 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11464
11465         * gcc.c (process_command): Update copyright notice dates.
11466         * gcov.c (print_version): Likewise.
11467         * gcov-dump.c (print_version): Likewise.
11468         * mips-tfile.c (main): Likewise.
11469         * mips-tdump.c (main): Likewise.
11470
11471 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11472
11473         PR target/41885
11474         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11475         (rotlhi3): Delete.
11476         (rotlhi3_8): Delete.
11477         (rotlsi3): Delete.
11478         (rotlsi3_8): Delete.
11479         (rotlsi3_16): Delete.
11480         (rotlsi3_24): Delete.
11481         (rotl<mode>3): New.
11482         (*rotw<mode>3): New.
11483         (*rotb<mode>3): New.
11484         * config/avr/avr.c (avr_rotate_bytes): New function.
11485         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11486
11487 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11488
11489         PR target/37454
11490         * configure.ac: Modify -rdynamic check.
11491         * configure: Regenerate.
11492
11493 2010-01-08  DJ Delorie  <dj@redhat.com>
11494
11495         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11496         register popping order.
11497
11498 2010-01-08  Richard Guenther  <rguenther@suse.de>
11499
11500         PR lto/42528
11501         * c.opt (fsigned-char): Also let LTO handle this option.
11502         (funsigned-char): Likewise.
11503
11504 2010-01-07  Richard Guenther  <rguenther@suse.de>
11505
11506         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11507         (gimple_op): Likewise.
11508         (gimple_op_ptr): Likewise.
11509         (gimple_assign_set_lhs): Remove gcc_assert.
11510         (gimple_assign_set_rhs1): Likewise.
11511         (gimple_assign_set_rhs2): Likewise.
11512         (gimple_call_set_lhs): Likewise.
11513         (gimple_call_set_fn): Likewise.
11514         (gimple_call_set_fndecl): Likewise.
11515         (gimple_call_fndecl): Likewise.
11516         (gimple_call_return_type): Likewise.
11517         (gimple_call_set_chain): Likewise.
11518         (gimple_call_num_args): Likewise.
11519         (gimple_call_set_arg): Likewise.
11520         (gimple_cond_set_code): Likewise.
11521         (gimple_cond_set_lhs): Likewise.
11522         (gimple_cond_set_rhs): Likewise.
11523         (gimple_cond_set_true_label): Likewise.
11524         (gimple_cond_set_false_label): Likewise.
11525         (gimple_label_set_label): Likewise.
11526         (gimple_goto_set_dest): Likewise.
11527         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11528         (gimple_debug_bind_get_value): Likewise.
11529         (gimple_debug_bind_get_value_ptr): Likewise.
11530         (gimple_debug_bind_set_var): Likewise.
11531         (gimple_debug_bind_set_value): Likewise.
11532         (gimple_debug_bind_reset_value): Likewise.
11533         (gimple_debug_bind_has_value_p): Likewise.
11534         (gimple_return_retval_ptr): Remove gcc_assert.
11535         (gimple_return_retval): Likewise.
11536         (gimple_return_set_retval): Likewise.
11537         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11538         (safe_referenced_var_iterator): Remove.
11539         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11540         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11541         (fill_referenced_var_vec): Remove.
11542         (first_readonly_imm_use): Remove redundant gcc_assert.
11543         (phi_arg_index_from_use): Combine gcc_asserts.
11544         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11545         (first_imm_use_stmt): Remove redundant gcc_assert.
11546         * tree-cfg.c (verify_gimple_call): Verify function and chain
11547         operands.  Verify arguments.
11548         (verify_types_in_gimple_stmt): Verify condition code and labels.
11549
11550 2010-01-07  Richard Guenther  <rguenther@suse.de>
11551
11552         PR tree-optimization/42641
11553         * sese.c (rename_map_elt_info): Use the SSA name version, do
11554         not hash pointers.
11555
11556 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11557
11558         PR tree-optimization/42625
11559         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11560         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11561
11562 2010-01-07  Duncan Sands  <baldrick@free.fr>
11563
11564         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11565
11566 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11567
11568         PR target/42511
11569         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11570         note itself is not function_invariant_p.
11571
11572 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11573
11574         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11575         Do not add the DF_NOTE problem.
11576         * store-motion.c (execute_rtl_store_motion): Likewise.
11577
11578 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11579
11580         PR tree-optimization/42157
11581         * tree-sra.c (compare_access_positions): Stabilize sort if both
11582         accesses have integer types, return zero immediately if they are the
11583         same.
11584
11585 2010-01-06  Richard Henderson  <rth@redhat.com>
11586
11587         PR middle-end/41883
11588         * haifa-sched.c (add_to_note_list): Merge into ...
11589         (concat_note_lists): ... here, and ...
11590         (unlink_other_notes, rm_other_notes): Merge into...
11591         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11592         NOTE_INSN_EPILOGUE_BEG.
11593
11594 2010-01-06  Richard Guenther  <rguenther@suse.de>
11595
11596         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11597         not inline regular functions into always-inline functions.
11598
11599 2010-01-06  Nick Clifton  <nickc@redhat.com>
11600
11601         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11602         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11603         used together.
11604         (OVERRIDE_OPTIONS): Delete.
11605         (OPTIMIZATION_OPTIONS): Define.
11606         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11607         * config/rx/rx.c (rx_handle_option): Issue an error message if
11608         -mcpu=rx200 and -fpu are used together.
11609         (rx_set_optimization_options): New function.  Issue an error
11610         message if an optimization attribute attempts to reset the FPU/
11611         math optimization pairing.
11612         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11613         * config/rx/rx.opt: Set the default to 32-bit doubles.
11614         * config/rx/t-rx: Add multilibs for -nofpu option.
11615         * doc/invoke.texi: Update documentation of RX options.
11616
11617 2010-01-06  Richard Guenther  <rguenther@suse.de>
11618
11619         * tree-ssa-pre.c (name_to_id): New global.
11620         (alloc_expression_id): Simplify SSA name handling.
11621         (lookup_expression_id): Likewise.
11622         (init_pre): Zero name_to_id.
11623         (fini_pre): Free it.
11624
11625 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11626
11627         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11628
11629 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11630
11631         PR target/42542
11632         * config/i386/sse.md (smaxv2di3): New.
11633         (umaxv2di3): Likewise.
11634         (sminv2di3): Likewise.
11635         (uminv2di3): Likewise.
11636
11637 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11638
11639         PR target/42564
11640         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11641         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11642         (legitimize_tls_address): Likewise.
11643         (sparc_tls_referenced_p): Likewise.
11644         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11645         and adjust calls to legitimize_pic_address.
11646         (legitimate_constant_p) Use sparc_tls_referenced_p.
11647         (legitimate_pic_operand_p): Likewise.
11648         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11649         (sparc_tls_symbol_ref_1): Delete.
11650         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11651         (legitimize_tls_address): Make static, handle CONST patterns.
11652         (legitimize_pic_address): Make static, remove unused parameter and
11653         adjust recursive calls.
11654         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11655         and adjust call to legitimize_pic_address.
11656         (sparc_output_mi_thunk): Likewise.
11657
11658 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11659             H.J. Lu  <hongjiu.lu@intel.com>
11660
11661         PR target/42542
11662         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11663         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11664         operands to make them signed.
11665
11666         Revert:
11667         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11668
11669         PR target/42542
11670         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11671         GTU to GT for V4SI and V2DI.
11672
11673         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11674         (umin<mode>3): Removed.
11675         (uminv8hi3): New.
11676         (uminv4si3): Likewise.
11677
11678 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11679
11680         PR tree-optimization/42462
11681         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11682         current_function_decl to helper functions and macros.
11683
11684 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11685
11686         PR bootstrap/41771
11687         * flags.h: Don't include real.h.
11688         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11689         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11690         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11691         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11692         * dominance.c: Update copyright.
11693         * gimple.c (walk_gimple_op): Remove inline.
11694         * tree-ssa-reassoc.c: Include real.h.
11695         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11696         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11697
11698 2010-01-05  Nick Clifton  <nickc@redhat.com>
11699
11700         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11701         register to push into the stack frame when the accumulator has to
11702         be saved during interrupts.
11703
11704 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11705
11706         * doc/invoke.texi: Remove the documentation about option
11707         -Wunreachable-code.
11708         * common.opt (Wunreachable-code):  Preserved for backward
11709         compatibility.
11710         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11711         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11712         the backward compatibility flag section.
11713
11714 2010-01-05  Richard Guenther  <rguenther@suse.de>
11715
11716         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11717
11718 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11719
11720         PR other/42611
11721         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11722
11723         PR tree-optimization/42508
11724         * tree-sra.c (convert_callers): Check for recursive call
11725         by comparing cgraph nodes instead of decls.
11726         (modify_function): Call ipa_modify_formal_parameters also
11727         on all same_body aliases.
11728
11729         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11730         cgraph nodes when checking for same_body aliases.
11731
11732 2010-01-05  Richard Guenther  <rguenther@suse.de>
11733
11734         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11735         allocation and lookup.
11736         (get_or_alloc_expr_for_constant): Likewise.
11737         (phi_translate): Sink allocation.
11738
11739 2010-01-04  Richard Guenther  <rguenther@suse.de>
11740
11741         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11742         a new entry only if needed.
11743         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11744         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11745         hashtable lookup.
11746         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11747         the result array.
11748         (phi_translate): Handle CONSTANTs early.
11749
11750 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11751
11752         PR tree-optimization/42398
11753         * tree-sra.c (struct access): Removed flag grp_different_types.
11754         (dump_access): Do not dump the removed flag.
11755         (sort_and_splice_var_accesses): Do not set the removed flag.
11756         (sra_modify_expr): Check for type compatibility directly.
11757
11758 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11759
11760         PR tree-optimization/42366
11761         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11762         edges with variable number of parameters.
11763         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11764         flag instead of asserting it.
11765         (ipa_read_node_info): Read uses_analysis_done flag.
11766
11767 2010-01-04  Richard Guenther  <rguenther@suse.de>
11768
11769         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11770         iterative_hash_* as intended.
11771         (vn_reference_compute_hash): Likewise.  Simplify hashing
11772         SSA names.
11773         (vn_reference_lookup_2): Likewise.
11774         (vn_nary_op_compute_hash): Likewise.
11775         (vn_phi_compute_hash): Likewise.
11776         (expressions_equal_p): Remove strange code.
11777         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11778         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11779         (bitmap_insert_into_set_1): Take value-id as parameter.
11780         (add_to_value): Pass it.
11781         (bitmap_insert_into_set): Likewise.
11782         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11783
11784 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11785
11786         PR driver/42442
11787         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11788         (do_self_spec): For switches with SWITCH_IGNORE set set also
11789         SWITCH_IGNORE_PERMANENTLY.
11790         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11791         of SWITCH_IGNORE.
11792
11793 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11794
11795         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11796         tree of an unreferenced global var.
11797
11798 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11799
11800         PR target/42542
11801         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11802         GTU to GT for V4SI and V2DI.
11803
11804         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11805         (umin<mode>3): Removed.
11806         (uminv8hi3): New.
11807         (uminv4si3): Likewise.
11808
11809 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11810
11811         PR lto/42581
11812         * collect2.c (main): Turn on trace in collect2 if -v is passed
11813         to gcc with LTO.
11814
11815 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11816
11817         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11818         description of expression operand.
11819
11820 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11821
11822         * configure.ac: Add install-html to target_list for Make-hooks.
11823         * configure: Regenerate.
11824         * fortran/Make-lang.in (F95_HTMLFILES): New.
11825         (fortran.html): Use it.
11826         (fortran.install-html): New.
11827         * Makefile.in (install-html): Add lang.install-html.
11828         * java/Make-lang.in (JAVA_HTMLFILES): New.
11829         (java.html): Use it.
11830         (java.install-html): New.
11831         * objc/Make-lang.in (objc.install-html): New.
11832         * objcp/Make-lang.in (obj-c++.install-html): New.
11833         * cp/Make-lang.in (c++.install-html): New.
11834         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11835         * lto/Make-lang.in (lto.install-html): New.
11836
11837 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11838
11839         PR lto/42520
11840         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11841
11842 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11843
11844         PR rtl-optimization/41862
11845         * store-motion.c (store_killed_in_insn, compute_store_table,
11846         remove_reachable_equiv_notes, replace_store_insn,
11847         build_store_vectors): Ignore all DEBUG_INSNs.
11848
11849 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11850
11851         PR lto/41564
11852         * common.opt: Add dumpdir.
11853
11854         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11855         isn't specified.
11856         (option_map): Add --dumpdir.
11857
11858         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11859
11860         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11861
11862         * opts.c (decode_options): Try dump_dir_name first if
11863         dump_base_name isn't an absolute path.
11864         (common_handle_option): Handle OPT_dumpdir.
11865
11866         * toplev.c (dump_dir_name): New.
11867         (print_switch_values): Also ignore -dumpdir.
11868
11869         * toplev.h (dump_dir_name): New.
11870
11871 2010-01-03  Richard Guenther  <rguenther@suse.de>
11872
11873         PR tree-optimization/42589
11874         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11875         double-word expansion of bswap32.
11876
11877 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11878
11879         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11880         with BLOCK_FOR_INSN.
11881         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11882         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11883         noce_process_if_block): Likewise.
11884         * gcse.c (compute_local_properties, insert_expr_in_table,
11885         insert_set_in_table, canon_list_insert, find_avail_set,
11886         pre_insert_copy_insn): Likewise.
11887
11888         * basic-block.h (BLOCK_NUM): Move from here...
11889         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11890
11891 2010-01-03  Richard Guenther  <rguenther@suse.de>
11892
11893         PR tree-optimization/42438
11894         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11895         contains_may_not_return_call flag.
11896         (BB_MAY_NOTRETURN): New.
11897         (valid_in_sets): Trapping nary operations are not valid
11898         in blocks that may not return.
11899         (insert_into_preds_of_block): Remove check for trapping expressions.
11900         (compute_avail): Compute also BB_MAY_NOTRETURN.
11901
11902 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11903
11904         * doc/invoke.texi: Add 2010 to copyright years.
11905
11906 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11907
11908         * config/sparc/sparc.c: Fix formatting nits.
11909
11910 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11911             Alexander Monakov  <amonakov@ispras.ru>
11912
11913         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11914
11915 2010-01-02  Richard Guenther  <rguenther@suse.de>
11916
11917         PR middle-end/42577
11918         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11919         (simplify_switch_using_ranges): Mark to be removed edges
11920         as non-executable.
11921
11922 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11923
11924         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11925
11926         * collect2.c (scan_libraries): Add missing argument in call to
11927         scan_prog_file.
11928
11929 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11930
11931         PR target/42448
11932         * config/alpha/predicates.md (aligned_memory_operand): Return false
11933         for CQImode.
11934         (unaligned_memory_operand): Return true for CQImode.
11935         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11936         doesn not cross aligned SImode word boundary.
11937
11938 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11939
11940         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11941         Remove.
11942         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11943         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11944
11945 2010-01-02  Richard Guenther  <rguenther@suse.de>
11946
11947         PR lto/41597
11948         * toplev.c (compile_file): Emit LTO marker properly.  Change
11949         it to __gnu_lto_v1.
11950         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11951
11952 2010-01-01  Richard Guenther  <rguenther@suse.de>
11953
11954         PR debug/42455
11955         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11956
11957 2010-01-01  Richard Guenther  <rguenther@suse.de>
11958
11959         PR c/42570
11960         * c-decl.c (grokdeclarator): For zero-size arrays force
11961         structural equality checks as layout_type does.
11962
11963 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11964
11965         * builtins.c: Update copyright to 2010.
11966
11967 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11968
11969         PR lto/42531
11970         * lto-streamer-out.c (produce_asm): Revert the last change.
11971         (copy_function): Likewise.
11972
11973         * lto-streamer.c (lto_get_section_name): Skip any leading
11974         asterisk in name.
11975
11976 2010-01-01  Richard Guenther  <rguenther@suse.de>
11977
11978         PR middle-end/42559
11979         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11980         for LABEL_DECLs.
11981
11982 \f
11983 Copyright (C) 2010 Free Software Foundation, Inc.
11984
11985 Copying and distribution of this file, with or without modification,
11986 are permitted in any medium without royalty provided the copyright
11987 notice and this notice are preserved.