OSDN Git Service

PR middle-end/44324
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-29  Jan Hubicka  <jh@suse.cz>
2
3         PR middle-end/44324
4         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
5
6 2010-05-29  Richard Guenther  <rguenther@suse.de>
7
8         * lto-streamer.c (cached_bp): New global variable.
9         (bitpack_create): Return the cached bitpack, if available.
10         (bitpack_delete): Clear and cache the bitpack, if appropriate.
11         (bp_pack_value): Remove redundant asserts.
12
13 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
14
15         PR middle-end/44306
16         * tree-if-conv.c (is_true_predicate): New.
17         (is_predicated): Use is_true_predicate.
18         (add_to_predicate_list): Same.  Do not use unshare_expr.
19         (add_to_dst_predicate_list): Same.
20
21 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
22
23         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
24         field on edges.
25         (predicate_bbs): Same.
26         (clean_predicate_lists): Same.
27         (find_phi_replacement_condition): Do not AND the predicate from
28         edge->aux.
29
30 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
31
32         PR bootstrap/44315
33         * Makefile.in (build/gencondmd.o): Add a missing `\'.
34
35 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36
37         PR target/44261
38         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
39         (negdf2): Adjust expander pattern and use negdf2_slow.
40         (negsf2): Likewise.
41
42 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
43
44         * basic-block.h (struct control_flow_graph): Move last_label_uid field up.
45         * df.h (struct df_base_ref): Move regno field up.
46         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
47         * expr.h (struct separate_ops): Move location field up.
48         * optabs.h (struct optab_d): Move libcall_basename field down.
49         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
50         * config/i386/i386.h (struct machine_function): Convert call_abi field
51         into a bitfield.  Move cfa field to the end of the structure.
52
53 2010-05-29  Jan Hubicka  <jh@suse.cz>
54
55         * varpool.c (varpool_get_node): Fix lookup.
56
57 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
58
59         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
60         RTL specific prototypes with #ifdef RTX_CODE.
61         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
62         * config/spu/t-spu-elf: Fix dependencies.
63
64         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
65
66 2010-05-29  Mike Stump  <mikestump@comcast.net>
67
68         PR bootstrap/44315
69         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
70         TM_H when building to avoid dependency loops.
71
72 2010-05-29  Jan Hubicka  <jh@suse.cz>
73
74         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
75         refs and body; not the whole node for masters of materialized
76         clones.
77
78 2010-05-29  Mike Stump  <mikestump@comcast.net>
79
80         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
81
82 2010-05-29  Jan Hubicka  <jh@suse.cz>
83
84         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
85         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
86         use of clone_function_name.
87         * cgraph.h (cgraph_create_virtual_clone, 
88         cgraph_function_versioning): update prototypes.
89         (clone_function_name): Declare.
90         * ipa-cp.c (ipcp_insert_stage): Update call of
91         cgraph_create_virtual_clone.
92         * omp-low.c (create_omp_child_function_name): Use
93         cgraph_create_virtual_clone.
94         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
95         (cgraph_function_versioning): Take SUFFIX argument; produce new name
96         and make decl local.
97
98 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
99
100         * vec.h: Include statistics.h
101         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
102         with VEC_H.
103
104 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
105
106         * c-lex.c: Do not include c-tree.h.
107         * c-pretty-print.c: Likewise.
108         * c-opts.c: Likewise.
109         * c-gimplify.c: Likewise.
110         * c-common.c: Likewise.
111         * c-dump.c: Likewise.  Include c-common.h.
112
113 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
114
115         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
116         before including diagnostic-core.h.
117         (c_cpp_error): New prototype moved from c-tree.h.
118         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
119         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
120         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
121         (c_cpp_error): Prototype moved to c-common.h.
122         * Makefile.in: Update dependency for C_COMMON_H.
123
124 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
125
126         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
127         * c-common.c (c_register_addr_space): Remove here.
128         * c-decl.c (c_register_addr_space): Re-add here.
129
130 2010-05-28  Mike Stump  <mikestump@comcast.net>
131
132         * config/darwin-c.c: Remove c-tree.h include.
133
134 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
135
136         * gcc.c: Include diagnostic.h.
137         (error_count): Remove.  All users changed to use errorcount.
138         (programname): Remove.  All users changed to use progname.
139         (fancy_abort, internal_error, fatal_error, error, warning, inform,
140         fnotice): Remove.
141         (execute): Don't include "Internal error" and bug reporting
142         information in argument of internal_error call.
143         (process_command): Don't increment error_count after calling
144         perror_with_name.
145         (input_filename): Rename to gcc_input_filename.  All users
146         changed.
147         (main): Call diagnostic_initialize.  Register delete_temp_files
148         with atexit.  Use seen_error to test for errors.
149         * gcc.h: Include diagnostic-core.h.
150         (fatal_error, error, warning): Remove.
151         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
152         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
153         (gcc.o): Update dependencies.
154
155 2010-05-28  Jeff Law  <law@redhat.com>
156
157         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
158         functions.
159         * ira.h (ira_bad_reload_regno): Declare
160         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
161
162         * ira-color.c (update_curr_costs): Free updated hard reg costs.
163         (ira_reassign_conflict_allocnos): Remove bogus asserts.
164         (allocno_reload_assign): Likewise.
165
166 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
167
168         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
169         build1_stat.
170
171 2010-05-28  Richard Guenther  <rguenther@suse.de>
172
173         PR lto/44312
174         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
175         Stream fixed-point constants mode.
176         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
177         and TYPE_PRECISION.
178         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
179         Stream fixed-point constants mode.
180         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
181         and TYPE_PRECISION.
182
183 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
184
185         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
186         only place it was called from.
187         (number_of_latch_executions): Do not return chrec_dont_know when the
188         may_be_zero is a runtime condition: instead, return a COND_EXPR
189         including the may_be_zero condition.
190         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
191         of nb_iterations.
192         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
193         COND_EXPRs.
194
195 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
196
197         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
198         generate COND_EXPRs for degenerate_phi_result.
199
200 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
201
202         PR middle-end/44293
203         * tree-if-conv.c (if_convertible_loop_p): Check the
204         if-convertibility of phi nodes in non predicated BBs.
205
206 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
207
208         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
209
210 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
211
212         PR driver/15303
213         * gcc.c (inform, warning, inform): New functions.
214         (fatal_ice): Rename to internal_error; change cmsgid parameter to
215         gmsgid.  All callers changed.
216         (notice): Rename to fnotice; add parameter fp.  All callers
217         changed.
218         (fatal_error): Rename to fatal_signal.  All users changed.
219         (fatal): Rename to fatal_error; change cmsgid parameter to
220         gmsgid.  All callers changed.
221         (process_command): Use warning instead of error for warnings.
222         (end_going_arg): Don't use _() around argument of error.
223         (do_spec_1): Use inform for message from %n specs.  Use warning
224         instead of error for warnings.
225         (main): Use inform for comparison messages.  Use warning for
226         message about unused linker input.
227         (error): Increment error_count.  Print "error: ".
228         * gcc.h (fatal): Change to fatal_error.
229         (warning): Declare.
230         * config/darwin-driver.c (darwin_default_min_version): Use warning
231         instead of fprintf for warnings.
232         * cppspec.c (lang_specific_driver): Use fatal_error instead of
233         fatal.
234
235 2010-05-28  Julian Brown  <julian@codesourcery.com>
236
237         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
238         (*thumb2_addsi3_compare0_scratch): New.
239         * config/arm/constraints.md (Pv): New.
240         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
241         for ARM mode only.
242         (*addsi3_compare0_scratch): Likewise.
243
244 2010-05-28  Jan Hubicka  <jh@suse.cz>
245
246         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
247         check.
248         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
249         only on local statics.
250
251 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
252
253         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
254
255 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
256
257         PR bootstrap/44314
258         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
259         (OPTION_GLIBC): Define.
260
261 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
262
263         PR debug/41048
264         * dwarf2out.c (double_int_type_size_in_bits): New function.
265         (round_up_to_align): Change first argument and return value to
266         double_int.
267         (field_byte_offset): Work internally on double_ints.
268
269         PR target/43636
270         * builtins.c (expand_movstr): Use a temporary pseudo instead
271         of target even when target is not NULL and not const0_rtx, but
272         fails movstr predicate.
273         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
274
275 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
276
277         * final.c (rest_of_clean_state): Use %m in errors instead of
278         strerror (errno).
279         * gengtype.c (read_input_list, close_output_files): Use xstrerror
280         instead of strerror.
281         * toplev.c (process_options): Use %m in errors instead of strerror
282         (errno).
283         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
284         (errno).
285
286 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
287
288         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
289         (ix86_canonical_va_list_type): Make static.  Add declaration.
290         (ix86_enum_va_list): Make static.  Reindent.
291         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
292         (ix86_canonical_va_list_type): Ditto.
293         (ix86_enum_va_list): Ditto.
294
295 2010-05-28  Richard Guenther  <rguenther@suse.de>
296
297         * lto-wrapper.c (run_gcc): With -save-temps generate a
298         user-visible ltrans filename.  Fixup ltrans unit numbering.
299
300 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
301
302         * c-common.c (c_common_nodes_and_builtins): Replace use
303         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
304         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
305         to ix86_enum_va_list.
306         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
307         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
308         (TARGET_ENUM_VA_LIST_P): Add hook description.
309         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
310         * target.h (gcc_target): Add enum_va_list hook.
311
312         PR bootstrap/44299
313         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
314         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
315         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
316
317 2010-05-28  Alan Modra  <amodra@gmail.com>
318
319         PR target/44266
320         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
321         emit_library_call machinery to set up __tls_get_addr calls.
322
323 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
324
325         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
326
327 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
328
329         Revert fix for PR c++/44188
330         * c-common.c (is_typedef_decl): Revert the moving of  this
331         definition ...
332         * tree.c (is_typedef_decl): ... here.
333         (typdef_variant_p): Revert the moving of this  definition
334         here from gcc/cp/tree.c.
335         * c-common.h (is_typedef_decl): Revert the moving of this
336         declaration ...
337         * tree.h (is_typedef_decl): ... here.
338         (typedef_variant_p): Revert the moving of this  declaration here
339         from gcc/cp/cp-tree.h
340         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
341         (gen_tagged_type_die): Revert the splitting out of ...
342         (gen_type_die_with_usage): ... this function. Revert the anonymous
343         tagged type handling.
344         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
345         typedefs naming anonymous tagged types.
346
347 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
348
349         * config/rs6000/rs6000-modes.def (PSImode): Delete.
350
351 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
352
353         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
354         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
355         throughout.
356         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
357         "xer" to "ca".
358         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
359         XER_REGS to CA_REGS throughout.
360         * config/rs6000/rs6000.h: Same.
361         (ADDITIONAL_REGISTER_NAMES): Add "xer".
362         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
363         that mode_iterator "P" is the size for arithmetic carries as well.
364         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
365
366 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
367
368         PR bootstrap/44255
369         * combine.c (struct rtx_subst_pair): Define unconditionally.
370         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
371         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
372         Call make_compound_operation on pair->to.
373         (propagate_for_debug): Don't call make_compound_operation here.
374         Always use simplify_replace_fn_rtx.
375
376 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
377
378         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
379         * config/xtensa/xtensa.c (override_options): Check
380           TARGET_FORCE_NO_PIC and set flag_pic.
381         * config/xtensa/xtensa.opt: Document -mforce-no-pic
382
383 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
384
385         PR bootstrap/44299
386         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
387         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
388
389 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
390
391         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
392         toplev.h.
393         * diagnostic.c: Don't include toplev.h.
394         (progname): Define.  Moved from toplev.c.
395         (seen_error): New function.
396         * diagnostic.h: Include diagnostic-core.h.
397         (diagnostic_t, emit_diagnostic): Don't declare here.
398         * toplev.c (progname): Move to toplev.c.
399         (emit_debug_global_declarations, compile_file, finalize,
400         do_compile, toplev_main): Use seen_error.
401         * toplev.h: Include diagnostic-core.h.
402         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
403         internal_error, warning, warning_at, error, error_n, error_at,
404         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
405         verbatim, fnotice, progname): Move to diagnostic-core.h.
406         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
407         (expand_builtin_expect): Use seen_error.
408         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
409         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
410         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
411         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
412         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
413         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
414         errorcount for errors.
415         * c-opts.c (c_common_finish): Use seen_error.
416         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
417         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
418         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
419         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
420         (get_coverage_counts): Use seen_error.
421         * dwarf2out.c (dwarf2out_finish): Use seen_error.
422         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
423         gimplify_body): Use seen_error.
424         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
425         * ipa-pure-const.c (gate_pure_const): Use seen_error.
426         * ipa-reference.c (gate_reference): Use seen_error.
427         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
428         * lambda-code.c: Include diagnostic-core.h instead of
429         diagnostic.h.
430         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
431         * lto-compress.c: Include diagnostic-core.h instead of
432         diagnostic.h.
433         * lto-section-in.c: Include diagnostic-core.h instead of
434         diagnostic.h.
435         * lto-streamer-out.c: Include diagnostic-core.h instead of
436         diagnostic.h.
437         * lto-streamer.c: Include diagnostic-core.h instead of
438         diagnostic.h.
439         (gate_lto_out): Use seen_error.
440         * matrix-reorg.c: Include diagnostic-core.h instead of
441         diagnostic.h.
442         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
443         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
444         (gate_expand_omp, lower_omp_1): Use seen_error.
445         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
446         (rest_of_decl_compilation, rest_of_type_compilation,
447         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
448         * tree-cfg.c (label_to_block_fn): Use seen_error.
449         * tree-inline.c (optimize_inline_calls): Use seen_error.
450         * tree-mudflap.c (mudflap_finish_file): Use
451         seen_error.
452         * tree-optimize.c (gate_all_optimizations,
453         gate_all_early_local_passes, gate_all_early_optimizations): Use
454         seen_error.
455         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
456         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
457         (varpool_remove_unreferenced_decls,
458         varpool_assemble_pending_decls): Use seen_error.
459         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
460         (TOPLEV_H, DIAGNOSTIC_H): Update.
461         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
462         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
463         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
464         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
465         coverage.o, lambda-code.o): Update dependencies.
466
467 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
468
469         PR c++/44188
470         * c-common.c (is_typedef_decl): Move this definition ...
471         * tree.c (is_typedef_decl): ... here.
472         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
473         * c-common.h (is_typedef_decl): Move this declaration ...
474         * tree.h (is_typedef_decl): ... here.
475         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
476         * dwarf2out.c (is_naming_typedef_decl): New function.
477         (gen_tagged_type_die): Split out of ...
478         (gen_type_die_with_usage): ... this function. When an anonymous
479         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
480         is emitted for the typedef.
481         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
482         anonymous tagged types.
483
484 2010-05-27  Jason Merrill  <jason@redhat.com>
485
486         * print-tree.c (debug_vec_tree): New fn.
487         (print_vec_tree): New fn.
488         * tree.h: Declare them.
489         * gdbinit.in (pvt): New command.
490
491         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
492
493         * gdbinit.in (pdd): New command.
494
495 2010-05-27  Jan Hubicka  <jh@suse.cz>
496
497         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
498         (update_caller_keys): Return early if there are no callers;
499         only update fibheap when decresing the key.
500         (update_callee_keys): Avoid recursion.
501         (decide_inlining_of_small_functions): When badness does not match;
502         re-insert into fibheap.
503
504 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
505
506         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
507         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
508         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
509         (ALL_HOST_OBJS): Now a union of the above two.
510         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
511         all files in ALL_HOST_FRONTEND_OBJS.
512         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
513
514         * c-common.c: Pretend to be a backend file by undefining
515         IN_GCC_FRONTEND (still need rtl.h here).
516
517 2010-05-27  Jan Hubicka  <jh@suse.cz>
518
519         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
520         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
521
522 2010-05-27  Jan Hubicka  <jh@suse.cz>
523
524         * sched-ebb.c: Rename struct deps to struct deps_desc.
525         * ddg.c: Likewise.
526         * sel-sched-ir.c: Likewise.
527         * sched-deps.c: Likewise.
528         * sched-int.h: Likewise.
529         * sched-rgn.c: Likewise.
530
531 2010-05-27  Jon Beniston <jon@beniston.com>
532
533         PR 43726
534         * config/lm32/lm32.h: Remove definition of 
535         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
536
537 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
538
539         PR lto/44230
540         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
541
542 2010-05-27  Richard Guenther  <rguenther@suse.de>
543
544         PR tree-optimization/44284
545         * tree-vect-stmts.c (vectorizable_assignment): Handle
546         sign-changing conversions as simple copy.
547
548 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
549
550         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
551         Bionic C library.
552         (__gthread_active_p): Check for pthread_create if compiling against
553         Bionic C library.
554
555 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
556
557         Support compilation for Android platform.  Reimplement -mandroid.
558
559         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
560         (*android*): Set ANDROID_DEFAULT.
561         (arm*-*-linux*): Include linux-android.h.
562         (arm*-*-eabi*): Don't include previous -mandroid implementation.
563         * config/arm/eabi.h: Remove, move Android-specific parts ...
564         * config/linux-android.h: ... here.  New file.
565         * config/arm/eabi.opt: Rename to ...
566         * config/linux-android.opt: ... this.
567         (mandroid): Allow -mno-android option.  Initialize based on
568         ANDROID_DEFAULT.
569         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
570         Move logic to corresponding LINUX_TARGET_* macros.
571         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
572         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
573         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
574         Android definitions.
575         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
576         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
577         Document.
578
579 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
580
581         Add support for Bionic C library
582
583         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
584         macro.
585         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
586         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
587
588         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
589         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
590         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
591         to support multiple C libraries.  Handle Bionic.
592         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
593         (BIONIC_DYNAMIC_LINKER64): Define.
594         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
595         Update.
596         (TARGET_HAS_SINCOS): Enable for Bionic.
597
598         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
599         the last option specified on command line take effect.
600         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
601         (mbionic): New.
602         (mglibc, muclibc): Update.
603
604         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
605         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
606         DEFAULT_LIBC.
607
608         * doc/invoke.texi (-mglibc, -muclibc): Update.
609         (-mbionic): Document.
610
611 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
612
613         * c-common.h (c_register_addr_space): Add prototype.
614         (ADDR_SPACE_KEYWORD): Remove.
615         * c-common.c (c_register_addr_space): New function.
616         (c_addr_space_name): Reimplement.
617         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
618
619         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
620         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
621
622         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
623         Remove TARGET_ADDR_SPACE_KEYWORDS.
624
625 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
626
627         * input.c: New file.
628         * input.h (main_input_filename): Move declaration to toplev.h.
629         * toplev.c (input_location, line_table): Move to input.c
630         * toplev.h (main_input_filename): Move declaration from input.h.
631         * tree.c (expand_location): Move to input.c.
632         * Makefile.in (OBJS-common): Add input.o.
633         (input.o): Add dependencies.
634
635 2010-05-27  Richard Guenther  <rguenther@suse.de>
636
637         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
638         for non-existant files.
639         (fork_execute): Mark args_name file as deleted.
640
641 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
642
643         PR bootstrp/44287
644         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
645         (narrow_signed_type): Likewise.
646
647 2010-05-26  Jan Hubicka  <jh@suse.cz>
648
649         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
650         edge only when checking is enabled; check using former_clone_of;
651         check inline clones too.
652         (cgraph_materialize_clone): Record former_clone_of pointer.
653         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
654         combining redirections; dump args_to_skip bitmap
655         (cgraph_materialize_all_clones): Do no redirection here.
656         * ipa-inline.c (inline_transform): Do redirection here.
657         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
658         cheking only).
659
660 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
661
662         * config/avr/avr-c.c: Do not include regs.h.
663         Include cpplib.h for cpp_define and tree.h for c-common.h.
664         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
665         * config/avr/t-avr: Fix dependencies for avr-c.o.
666
667 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
668
669         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
670         string instead of SYMBOL_REF rtx.
671         * rtl.h (set_stack_check_libfunc): Move prototype from here...
672         * libfuncs.h: ...to here.  Adjust for explow.c change.
673
674 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
675
676         * pretty-print.c: Don't include ggc.h.
677         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
678         (identifier_to_locale): Use them for allocation.
679         * pretty-print.h (identifier_to_locale_alloc,
680         identifier_to_locale_free): Declare.
681         * toplev.c (alloc_for_identifier_to_locale): New.
682         (general_init): Set identifier_to_locale_alloc and
683         identifier_to_locale_free.
684         * Makefile.in (pretty-print.o): Update dependencies.
685
686 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
687
688         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
689         pointer types if they have different alignment or mode.
690
691 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
692
693         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
694         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
695         * config/sparc/sparc-protos.h (function_value): Remove declaration.
696         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
697         sparc_function_value_regno_p): New functions.
698         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
699         TARGET_FUNCTION_VALUE_REGNO_P): Define.
700         (function_value): Rename to...
701         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
702         argument to 'outgoing'.
703         (function_arg_record_value, function_arg_union_value,
704         function_arg_vector_value): Update comment.
705
706 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
707
708         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
709         (fde_needed_for_eh_p): New predicate.
710         (output_call_frame_info): Use it throughout to decide whether FDEs
711         are needed for EH purpose.
712         (dwarf2out_begin_prologue): Reorder assignments.
713
714 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
715
716         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
717         special case loop->header.
718         (is_predicated): New.
719         (if_convertible_loop_p): Call it.
720
721 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
722
723         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
724         iterator in parameter.  Do not generate code during the analysis.
725         (tree_if_convert_cond_stmt): Removed.
726         (tree_if_convert_stmt): Removed.
727         (predicate_bbs): New.
728         (if_convertible_loop_p): Call predicate_bbs.
729         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
730         now contains all the analysis part.
731
732 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
733
734         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
735         statements in the analysis part.
736         (tree_if_convert_stmt): Update comment.
737         (remove_conditions_and_labels): New.
738         (combine_blocks): Call remove_conditions_and_labels.
739         (tree_if_conversion): Update comment.
740
741 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
742
743         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
744         than 2 predecessors or more than 2 successors.
745
746 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
747
748         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
749         of loops in which the data dependence analysis fails.
750
751 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
752
753         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
754         CDI_POST_DOMINATORS.
755         (tree_if_conversion): Same.
756
757 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
758
759         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
760
761 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
762
763         * tree-if-conv.c: Update copyright years.  Fix comments.
764         Fix indentation.
765
766 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
767
768         * builtin-types.def (BT_INT128): New primitive type.
769         (BT_UINT128): Likewise.
770         * c-common.c (c_common_r): Add __int128 keyword.
771         (c_common_type_for_size): Handle __int128.
772         (c_common_type_for_mode): Likewise.
773         (c_common_signed_or_unsigned_type): Likewise.
774         (c_common_nodes_and_builtins): Add builtin type
775         if target supports 128-bit integer scalar.
776         * c-common.h (enum rid): Add RID_INT128.
777         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
778         if target supports 128-bit integer scalar.
779         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
780         (finish_declspecs): Likewise.
781         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
782         (c_token_starts_declspecs): Likewise.
783         (c_parser_declspecs): Likewise.
784         (c_parser_attributes): Likewise.
785         (c_parser_objc_selector): Likewise.
786         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
787         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
788         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
789         * tree.c (make_or_reuse_type): Likewise.
790         (make_unsigned_type): Likewise.
791         (build_common_tree_nodes_2): Likewise.
792         * tree.h (enum integer_type_kind): Add itk_int128 and
793         itk_unsigned_int128.
794         (int128_integer_type_node): New define.
795         (int128_unsigned_type_node): New define.
796         * doc/extend.texi: Add documentation about __int128 type.
797
798 2010-05-26  Richard Guenther  <rguenther@suse.de>
799
800         * tree-ssa-sccvn.c (copy_nary): Adjust.
801         (copy_phis): Rename to ...
802         (copy_phi): ... this.  Adjust.
803         (copy_references): Rename to ...
804         (copy_reference): ... this.  Adjust.
805         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
806         result into the valid table.
807
808 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
809
810         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
811         insn-config.h, insn-codes.h, recog.h, and optabs.h.
812
813 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
814
815         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
816
817 2010-05-26  Richard Guenther  <rguenther@suse.de>
818
819         * opts.c (common_handle_option): Handle OPT_Ofast.
820
821 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
822
823         * diagnostic.c: Don't include opts.h.
824         (permissive_error_option): Define.
825         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
826         for classify_diagnostic.  Don't use memset for
827         classify_diagnostic.  Initialize new and recently added fields.
828         (diagnostic_classify_diagnostic): Use context->n_opts instead of
829         N_OPTS.
830         (diagnostic_report_diagnostic): Pass context parameter to
831         diagnostic_report_warnings_p.  Use option_enabled and option_name
832         hooks from context.
833         (emit_diagnostic): Use permissive_error_option.
834         (permerror): Likewise.
835         * diagnostic.h: Don't include options.h.
836         (struct diagnostic_context): Add n_opts, opt_permissive,
837         inhibit_warnings, warn_system_headers, option_enabled and
838         option_name fields.  Change classify_diagnostic to a pointer.
839         * opts-diagnostic.h: New file.
840         * opts.c: Include opts-diagnostic.h.
841         (common_handle_option): Set global_dc fields for -Wfatal-errors,
842         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
843         (option_name): New function.
844         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
845         (c_common_handle_option): Set global_dc->permissive for
846         -fpermissive.
847         * c-common.c (c_cpp_error): Save and restore
848         global_dc->warn_system_headers, not variable warn_system_headers.
849         * toplev.c: Include opts-diagnostic.h.
850         (general_init): Update call to diagnostic_initialize.  Set
851         global_dc->show_column, global_dc->option_enabled and
852         global_dc->option_name.
853         (process_options): Don't set global_dc fields here.
854         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
855         (diagnostic.o, opts.o, toplev.o): Update dependencies.
856
857 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
858
859         * config/picochip/picochip.md (movsi): Split a movsi from a
860         const after reload.
861
862 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
863
864         * ggc-zone.c: Update copyright year.
865         (poison_region): Mark memory for Valgrind as undefined before
866         memset () call and inaccessible afterwards.
867         (ggc_pch_total_size): Change type of i to int.
868
869 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
870
871         * ggc-common.c (ggc_free_overhead): Allow empty slot.
872
873 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
874
875         * ggc-common.c: Update copyright year.
876         (ggc_rlimit_bound): Remove prototype.  Compile only if
877         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
878         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
879         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
880         (ggc_min_heapsize_heuristic): Likewise.
881
882 2010-05-26  Richard Guenther  <rguenther@suse.de>
883
884         PR rtl-optimization/44164
885         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
886         no-common access-path disambiguation.
887         (indirect_ref_may_alias_decl_p): Adjust.
888         (indirect_refs_may_alias_p): Likewise.
889         (refs_may_alias_p_1): Likewise.
890
891 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
892
893         * c-typeck.c: Do not include expr.h.
894
895 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
896
897         * rtl.h (decl_default_tls_model): Move prototype from here...
898         * output.h: ...to here.
899         * c-decl.c: Do not include rtl.h.
900         * c-pragma.c: Likewise.
901         * c-parser.c: Likewise.
902         * c-gimplify.c: Likewise.  And also not hard-reg-set.
903         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
904         FIXME note for it.  Add a FIXME note for expr.h.
905         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
906         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
907         defined.
908
909 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
910
911         PR target/44199
912         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
913         or total_size is larger than red zone size for non-V4 ABI, emit a
914         stack_tie resp. frame_tie insn before stack pointer restore.
915         * config/rs6000/rs6000.md (frame_tie): New insn.
916
917 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
918
919         * function.h (struct function): Add can_throw_non_call_exceptions bit.
920         * lto-streamer-in.c (input_function): Stream it in.
921         * lto-streamer-out.c (output_function): Stream it out.
922         * function.c (allocate_struct_function): Set it.
923         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
924         for flag_non_call_exceptions.
925         * cfgbuild.c (control_flow_insn_p): Likewise.
926         (make_edges): Likewise.
927         * cfgexpand.c (expand_stack_alignment): Likewise.
928         * combine.c (distribute_notes): Likewise.
929         * cse.c (cse_extended_basic_block): Likewise.
930         * except.c (insn_could_throw_p): Likewise.
931         * gcse.c (simple_mem): Likewise.
932         * ipa-pure-const.c (check_call): Likewise.
933         (check_stmt ): Likewise.
934         * lower-subreg.c (lower-subreg.c): Likewise.
935         * optabs.c (emit_libcall_block): Likewise.
936         (prepare_cmp_insn): Likewise.
937         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
938         * postreload.c (rest_of_handle_postreload): Likewise.
939         * reload1.c (reload_as_needed): Likewise.
940         (emit_input_reload_insns): Likewise.
941         (emit_output_reload_insns): Likewise.
942         (fixup_abnormal_edges): Likewise.
943         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
944         * store-motion.c (find_moveable_store): Likewise.
945         * tree-eh.c (stmt_could_throw_p): Likewise.
946         (tree_could_throw_p): Likewise.
947         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
948         * config/arm/arm.c (arm_expand_prologue): Likewise.
949         (thumb1_expand_prologue): Likewise.
950         * config/rx/rx.md (cbranchsf4): Likewise.
951         (cmpsf): Likewise.
952         * config/s390/s390.c (s390_emit_prologue): Likewise.
953         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
954         (inline_forbidden_into_p): New predicate.
955         (expand_call_inline): Use it to forbid inlining.
956         (tree_can_inline_p): Likewise.
957
958 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
959
960         * config/i386/i386-c.c: Do not include rtl.h.
961         * config/i386/t-i386: Update dependencies.
962
963 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
964
965         * attribs.c: Do not include rtl.h.
966         * Makefile.in: Update dependencies.
967
968 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
969
970         * double-int.h (double_int_and): New.
971         * combine.c (try_combine): Clean up, use double_int_* and
972         immed_double_int_const functions.
973
974 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
975
976         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
977         stderr to /dev/null instead of grep -q.
978         * configure: Regenerate.
979
980 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
981
982         * Makefile.in (EXCEPT_H): Fix typo.
983
984 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
985
986         * ira-build.c (update_conflict_hard_reg_costs): New.
987         (ira_build): Call update_conflict_hard_reg_costs.
988
989 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
990
991         PR debug/41371
992         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
993         ENABLE_CHECKING.
994         (intersect_loc_chains): Walk the s2var's loc_chain together
995         with s1node chain as long as the locations are equal, don't
996         call find_loc_in_1pdv in that case.
997
998         PR debug/42801
999         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
1000         (copy_bind_expr): ... instead of here.
1001         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
1002         if the block hasn't been remapped.
1003         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
1004         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
1005
1006 2010-05-25  Richard Guenther  <rguenther@suse.de>
1007
1008         PR middle-end/44069
1009         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
1010         out-of-bounds array accesses.
1011
1012 2010-05-25  Richard Guenther  <rguenther@suse.de>
1013
1014         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
1015         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
1016         (run_gcc): Re-organize to make cleanup easier.
1017
1018 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1019
1020         * config/s390/s390.c (optimization_options): Fix and move the
1021         flag_prefetch_loop_arrays override ...
1022         (override_options): ... here.
1023
1024 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
1025
1026         * diagnostic.c: Don't include plugin.h.
1027         (diagnostic_report_diagnostic): Don't handle plugins specially
1028         here.  Pass context to internal_error callback.
1029         * diagnostic.h (struct diagnostic_context): Add context parameter
1030         to internal_error callback.
1031         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
1032         * plugin.h (struct diagnostic_context): Declare.
1033         (warn_if_plugins, plugins_internal_error_function): Declare.
1034         * toplev.c (general_init): Set global_dc->internal_error.
1035         * Makefile.in (diagnostic.o): Update dependencies.
1036
1037 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
1038
1039         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
1040         * config/rs6000/t-darwin64: New.
1041         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
1042         build crt2.
1043
1044 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
1045
1046         PR 44203
1047         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
1048         match the original (and intended) behaviour before r159557.  This
1049         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
1050         in two ways.
1051
1052 2010-05-25  Richard Guenther  <rguenther@suse.de>
1053
1054         * doc/invoke.texi: Document -Ofast.
1055         * target.h (struct gcc_target): Add handle_ofast.
1056         * target-def.h (TARGET_HANDLE_OFAST): Add.
1057         (TARGET_INITIALIZER): Adjust.
1058         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
1059         * common.opt (Ofast): Add.
1060
1061 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1062
1063         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
1064         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
1065
1066 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1067
1068         PR target/43610
1069         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
1070         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
1071         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
1072         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
1073
1074 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1075
1076         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
1077         DW_OP_minus with negated offset instead of DW_OP_plus.
1078         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
1079
1080 2010-05-25  Wei Guozhi  <carrot@google.com>
1081
1082         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
1083         tst instruction and a new alternative.
1084         * config/arm/constraints.md (Pu): New constraint.
1085
1086 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
1087
1088         * function.c (assign_stack_local_1): Initialize variable
1089         to avoid warning when bootstrapping at -O3.
1090
1091 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
1092
1093         * configure.ac (all_lang_makefiles): Remove everything related to it.
1094         * configure: Regenerate.
1095         * Makefile.in: Fix reference to ada Make-lang.in.
1096         Remove support for LANG_MAKEFILES.
1097
1098 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
1099             Sandra Loosemore  <sandra@codesourcery.com>
1100
1101         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
1102         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
1103         description.  Add arm_neon_fp16_ok.
1104         (Add Options): Add arm_neon and arm_neon_fp16.
1105
1106 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
1107
1108         * diagnostic.c: Don't include flags.h.
1109         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
1110         context parameters.  Check flags in the context passed as a parameter.
1111         (diagnostic_build_prefix): Add context parameter.  Check
1112         show_column flag in context.
1113         (diagnostic_action_after_output): Check fatal_errors flag in context.
1114         (diagnostic_report_current_module): Check show_column flag in context.
1115         (default_diagnostic_starter): Update call to
1116         diagnostic_build_prefix.
1117         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
1118         (emit_diagnostic): Pass context to permissive_error_kind.
1119         (permerror): Pass context to permissive_error_kind.
1120         * diagnostic.h (struct diagnostic_context): Add show_column,
1121         pedantic_errors, permissive and fatal_errors fields.
1122         (diagnostic_build_prefix): Update prototype.
1123         * langhooks.c
1124         * toplev.c (process_options): Set flags in global_dc from
1125         flag_show_column, flag_pedantic_errors, flag_permissive,
1126         flag_fatal_errors.
1127         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
1128         to diagnostic_build_prefix.
1129         * Makefile.in (diagnostic.o): Update dependencies.
1130
1131 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1132
1133         * config/i386/ia32intrin.h (__crc32q): Define only if
1134         __SSE4_2__ is defined.
1135
1136 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
1137
1138         PR target/44132
1139         PR middle-end/43602
1140         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
1141         DECL_VISIBILITY_SPECIFIED.
1142         (emutls_decl): Set DECL_PRESERVE_P and copy
1143         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
1144         (emutls_finalize_control_var): New callback.
1145         (emutls_finish): Finalize emutls control variables.
1146         * toplev.c (compile_file): Move the call to emutls_finish ()
1147         before varpool_assemble_pending_decls ().
1148
1149 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
1150
1151         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
1152         added to the preprocessor condition.
1153
1154 2010-05-24  Paul Brook  <paul@codesourcery.com>
1155
1156         * gengtype-lex.l: Add HARD_REG_SET.
1157         * expr.c (expand_expr_real_1): Record writes to hard registers.
1158         * function.c (rtl_data): Add asm_clobbers.
1159         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
1160         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
1161         Use crtl->asm_clobbers.
1162
1163 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1164
1165         * doc/makefile.texi (Makefile): Mention stages 'profile'
1166         and 'feedback' for profiledbootstrap.
1167
1168 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1169
1170         PR target/44245
1171         * config/i386/i386.c (def_builtin): Properly check
1172         OPTION_MASK_ISA_64BIT.
1173
1174 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
1175
1176         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1177         typedefs with different but compatible types.  Allow duplicate
1178         typedefs with the same type except for pedantic non-C1X, but give
1179         warning for variably modified types.
1180         * c-typeck.c (tagged_types_tu_compatible_p,
1181         function_types_compatible_p, type_lists_compatible_p,
1182         comptypes_internal): Add parameter different_types_p; set
1183         *different_types_p for different but compatible types.  All
1184         callers changed.
1185         (comptypes_check_different_types): New.
1186         * c-tree.h (comptypes_check_different_types): Declare.
1187
1188 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1189
1190         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
1191         * jump.c: Include basic-block.h.
1192         * profile.c: Likewise.
1193         * tree-profile.c: Likewise.
1194         * coverage.c: Likewise.
1195         * basic-block.h (optimize_function_for_size_p): Move to function.h.
1196         (optimize_function_for_speed_p): Likewise.
1197         * function.h (optimize_function_for_size_p,
1198         optimize_function_for_speed_p): Moved here from basic-block.h.
1199         * Makefile.in: Update dependencies.
1200
1201 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1202
1203         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1204         before calling make; allow override through $MAKE.
1205         * doc/invoke.texi (Optimize Options): Document override.
1206
1207 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
1208
1209         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1210         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1211         (rs6000_mode_dependent_address_ptr): Make static.
1212         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1213         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1214         Remove.
1215
1216 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1217
1218         PR target/43869
1219         * config/i386/i386.c: Make sure that the correct regparm is passed.
1220
1221 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1222
1223         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1224         * sbitmap.c: ...to here to internalize sbitmap element access.
1225         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1226         Explain why basic-block.h is included.
1227         * function.h: Include tm.h for CUMULATIVE_ARGS.
1228         * Makefile.in: Update dependencies.
1229
1230 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1231
1232         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1233         New core types.
1234         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1235         * sbitmap.c: Include sbitmap.h.
1236         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1237         hard-reg-set.h.  Split everything related to regsets out from here...
1238         * regset.h: ...to here.  New file.
1239         * df.h: Include regset.h and sbitmap.h.
1240         * tree-flow.h: Likewise.
1241         * cfgloop.h: Likewise.
1242         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1243         * cgraph.h: Include vec.h and function.h.
1244         * reload.h (struct insn_chain): Change types of live_throughout
1245         and dead_or_set from regset_head to bitmap_head.
1246         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1247         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1248         spilled_regs from regset_head to bitmap_head to avoid dependency
1249         in regset.h.
1250         * sel-sched-ir.h: Include regset.h.
1251         * reload.c: Include df.h before reload.h.
1252         * caller-save.c: Likewise.
1253         * reload1.c: Likewise.
1254         * ira.c: Likewise.
1255         (mark_elimination): Update type of r to bitmap, consistent with
1256         DF_LR_IN.
1257         * dominance.c: Include bitmap.h.
1258         * modulo-sched.c: Include df.h.
1259         * cfganal.c: Include bitmap.h and sbitmap.h.
1260         * cfgbuild.c: Include sbitmap.h.
1261         * lcm.c: Include sbitmap.h.
1262         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1263         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1264         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1265         * cselib.c: Include bitmap.h.
1266         * tree-optimize.c: Include regset.h.
1267         * stmt.c: Include bitmap.h.
1268         * Makefile.in: Update dependencies.
1269
1270 2010-05-22  Jan Hubicka  <jh@suse.cz>
1271
1272         * cgraph.h (struct varpool_node): Add same_comdat_group.
1273         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1274         pointer.
1275         (output_varpool): Update call of lto_output_varpool_node.
1276         (input_varpool): Read same_comdat_group pointer.
1277         (input_varpool_1): Fixup same_comdat_group pointer.
1278         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1279         group is needed, all are.
1280         * varpool.c (varpool_remove_node): Remove node from same comdat group
1281         linklist too.
1282         (varpool_analyze_pending_decls): Walk same comdat groups.
1283
1284 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1285
1286         * rtl.h (union rtunion_def): Remove rt_bit member.
1287         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1288         * print-rtl (print_rtx): Do not print the member.
1289         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1290         * gengenrtl.c (type_from_format): Likewise.
1291         (accessor_from_format): Likewise.
1292
1293 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1294
1295         * dbgcnt.c: Include toplev.h instead of errors.h.
1296         * ira-emit.c: Don't include errors.h.
1297         * ira.c: Include toplev.h instead of errors.h.
1298         * lto-compress.c: Include toplev.h instead of errors.h.
1299         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1300         ira.o, dbgcnt.o): Update dependencies.
1301
1302 2010-05-22  Richard Guenther  <rguenther@suse.de>
1303
1304         * gimple.c (gimple_types_compatible_p): Check type qualifications
1305         before merging pointer to complete and pointer to incomplete type.
1306         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1307         we use our own resolution algorithm.  The gold linker plugin
1308         doesn't do the job we want it to do here.
1309
1310 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1311
1312         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1313         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1314         (sparc_mode_dependent_address_p): New function.
1315
1316 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1317
1318         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1319
1320         * timevar.c: Do not include any core headers.
1321         (timevar_print): De-i18n-ize.
1322         (print_time): Likewise.
1323         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1324
1325 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1326
1327         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1328         langhooks-def.h.
1329         (diagnostic_initialize): Initialize x_data not last_function.
1330         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1331         (default_diagnostic_starter): Call
1332         diagnostic_report_current_module not
1333         diagnostic_report_current_function.
1334         (diagnostic_report_diagnostic): Initialize x_data not
1335         abstract_origin.
1336         (verbatim): Likewise.
1337         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1338         x_data.
1339         (struct diagnostic_context): Change last_function to x_data.
1340         (diagnostic_auxiliary_data): Replace with
1341         diagnostic_context_auxiliary_data and
1342         diagnostic_info_auxiliary_data.
1343         (diagnostic_last_function_changed, diagnostic_set_last_function,
1344         diagnostic_report_current_function): Move to tree-diagnostic.h.
1345         (print_declaration, dump_generic_node, print_generic_stmt,
1346         print_generic_stmt_indented, print_generic_expr,
1347         print_generic_decl, debug_c_tree, dump_omp_clauses,
1348         print_call_name, debug_generic_expr, debug_generic_stmt,
1349         debug_tree_chain, default_tree_printer): Move to
1350         tree-pretty-print.h.
1351         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1352         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1353         gimple-pretty-print.h.
1354         * pretty-print.c: Don't include tree.h
1355         (pp_base_format): Don't handle %K here.
1356         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1357         * pretty-print.h (text_info): Change abstract_origin to x_data.
1358         (pp_tree_identifier, pp_unsupported_tree,
1359         pp_base_tree_identifier): Move to tree-pretty-print.h.
1360         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1361         tree-pretty-print.h: New files.
1362         * tree-pretty-print.c: Include tree-pretty-print.h.
1363         (percent_K_format): New.  Moved from pretty-print.c.
1364         (pp_base_tree_identifier): Move from pretty-print.c.
1365         * c-objc-common.c: Include tree-pretty-print.h.
1366         (c_tree_printer): Handle %K here.
1367         * langhooks.c: Include tree-diagnostic.h.
1368         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1369         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1370         (default_tree_printer): Handle %K using percent_K_format.
1371         (general_init): Use default_tree_diagnostic_starter.
1372         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1373         (free_lang_data): Use default_tree_diagnostic_starter.
1374         * c-pretty-print.c: Include tree-pretty-print.h.
1375         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1376         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1377         * dwarf2out.c: Include tree-pretty-print.h.
1378         * except.c: Include tree-pretty-print.h.
1379         * gimple-pretty-print.c: Include tree-pretty-print.h and
1380         gimple-pretty-print.h.
1381         * gimplify.c: Include tree-pretty-print.h.
1382         * graphite-poly.c: Include tree-pretty-print.h and
1383         gimple-pretty-print.h.
1384         * ipa-cp.c: Include tree-pretty-print.h.
1385         * ipa-inline.c: Include gimple-pretty-print.h.
1386         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1387         * ipa-pure-const.c: Include gimple-pretty-print.h.
1388         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1389         gimple-pretty-print.h.
1390         * ipa-type-escape.c: Include tree-pretty-print.h.
1391         * print-rtl.c: Include tree-pretty-print.h.
1392         * print-tree.c: Include gimple-pretty-print.h.
1393         * sese.c: Include tree-pretty-print.h.
1394         * tree-affine.c: Include tree-pretty-print.h.
1395         * tree-browser.c: Include tree-pretty-print.h.
1396         * tree-call-cdce.c: Include gimple-pretty-print.h.
1397         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1398         * tree-chrec.c: Include tree-pretty-print.h.
1399         * tree-data-ref.c: Include tree-pretty-print.h and
1400         gimple-pretty-print.h.
1401         * tree-dfa.c: Include tree-pretty-print.h.
1402         * tree-if-conv.c: Include tree-pretty-print.h and
1403         gimple-pretty-print.h.
1404         * tree-inline.c: Include tree-pretty-print.h.
1405         * tree-into-ssa.c: Include tree-pretty-print.h and
1406         gimple-pretty-print.h.
1407         * tree-nrv.c: Include tree-pretty-print.h.
1408         * tree-object-size.c: Include tree-pretty-print.h and
1409         gimple-pretty-print.h.
1410         * tree-outof-ssa.c: Include tree-pretty-print.h and
1411         gimple-pretty-print.h.
1412         * tree-parloops.c: Include tree-pretty-print.h and
1413         gimple-pretty-print.h.
1414         * tree-predcom.c: Include tree-pretty-print.h and
1415         gimple-pretty-print.h.
1416         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1417         gimple-pretty-print.h.
1418         * tree-sra.c: Include tree-pretty-print.h.
1419         * tree-ssa-address.c: Include tree-pretty-print.h.
1420         * tree-ssa-alias.c: Include tree-pretty-print.h.
1421         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1422         gimple-pretty-print.h.
1423         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1424         * tree-ssa-copy.c: Include tree-pretty-print.h and
1425         gimple-pretty-print.h.
1426         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1427         * tree-ssa-dce.c: Include tree-pretty-print.h and
1428         gimple-pretty-print.h.
1429         * tree-ssa-dom.c: Include tree-pretty-print.h and
1430         gimple-pretty-print.h.
1431         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1432         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1433         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1434         * tree-ssa-live.c: Include tree-pretty-print.h and
1435         gimple-pretty-print.h.
1436         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1437         gimple-pretty-print.h.
1438         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1439         gimple-pretty-print.h.
1440         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1441         gimple-pretty-print.h.
1442         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1443         gimple-pretty-print.h.
1444         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1445         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1446         * tree-ssa-operands.c: Include tree-pretty-print.h and
1447         gimple-pretty-print.h.
1448         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1449         gimple-pretty-print.h.
1450         * tree-ssa-pre.c: Include tree-pretty-print.h and
1451         gimple-pretty-print.h.
1452         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1453         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1454         gimple-pretty-print.h.
1455         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1456         gimple-pretty-print.h.
1457         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1458         * tree-ssa-ter.c: Include tree-pretty-print.h and
1459         gimple-pretty-print.h.
1460         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1461         * tree-ssa.c: Include tree-pretty-print.h and
1462         gimple-pretty-print.h.
1463         * tree-stdarg.c: Include gimple-pretty-print.h.
1464         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1465         * tree-tailcall.c: Include tree-pretty-print.h and
1466         gimple-pretty-print.h.
1467         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1468         gimple-pretty-print.h.
1469         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1470         gimple-pretty-print.h.
1471         * tree-vect-loop.c: Include tree-pretty-print.h and
1472         gimple-pretty-print.h.
1473         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1474         * tree-vect-slp.c: Include tree-pretty-print.h and
1475         gimple-pretty-print.h.
1476         * tree-vect-stmts.c: Include tree-pretty-print.h and
1477         gimple-pretty-print.h.
1478         * tree-vectorizer.c: Include tree-pretty-print.h.
1479         * tree-vrp.c: Include tree-pretty-print.h and
1480         gimple-pretty-print.h.
1481         * value-prof.c: Include tree-pretty-print.h and
1482         gimple-pretty-print.h.
1483         * var-tracking.c: Include tree-pretty-print.h.
1484         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1485         (tree-diagnostic.o): New dependencies.
1486         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1487         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1488         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1489         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1490         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1491         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1492         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1493         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1494         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1495         tree-ssa-address.o, tree-ssa-loop-niter.o,
1496         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1497         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1498         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1499         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1500         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1501         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1502         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1503         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1504         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1505         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1506         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1507         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1508         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1509         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1510         cfgexpand.o, pretty-print.o): Update dependencies.
1511
1512 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1513
1514         * tree-ssa-structalias.c: Remove tm_p.h from include.
1515
1516 2010-05-21  Jeff Law  <law@redhat.com>
1517
1518         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1519
1520 2010-05-21  Jason Merrill  <jason@redhat.com>
1521
1522         * tree-eh.c (cleanup_is_dead_in): New.
1523         (lower_try_finally): Don't generate a dead cleanup region.
1524         (lower_cleanup): Likewise.
1525
1526 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1527
1528         PR debug/44223
1529         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1530         unchain each use from the cyclic next_regno_use chain first.
1531
1532 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1533
1534         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1535         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1536         (real_value_negate, real_value_abs): New prototypes.
1537         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1538         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1539         new include file for interface between MPFR and REAL_VALUE_TYPE.
1540         * real.c: Include realmpfr.h.
1541         (real_arithmetic2): Remove legacy function.
1542         (real_value_negate): New.
1543         (real_value_abs): New.
1544         (mfpr_from_real, real_from_mpfr): Move from here...
1545         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1546         * builtins.c: Include realmpfr.h.
1547         * fold-const.c: Include realmpfr.h.
1548         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1549         (fold_negate_const): Likewise.
1550         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1551         * toplev.c: Include realmpfr.h.
1552         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1553         and real_value_negate.
1554         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1555         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1556         (vfp3_const_double_index): Likewise.
1557         (arm_print_operand): Likewise.
1558         * Makefile.in: Update dependencies.
1559
1560 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1561
1562         * config/s390/s390.c (override_options): Increase the default
1563         of max-completely-peel-times.
1564
1565 2010-05-21  Julian Brown  <julian@codesourcery.com>
1566             Mark Mitchell  <mark@codesourcery.com>
1567
1568         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1569         sibling calls for Thumb-1.
1570         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1571         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1572         Thumb-2.
1573         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1574         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1575         for Thumb-2.
1576         (return): New expander.
1577         (*arm_return): New name for ARM return insn.
1578         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1579
1580 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1581
1582         * config.gcc (sparc64-*-rtems*): New target.
1583
1584 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1585
1586         * tree.c (build_function_decl_skip_args): Fix grammar.
1587         (build_function_type_list_1): Fix typos, adjust formatting.
1588
1589 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1590
1591         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1592         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1593         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1594         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1595         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1596         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1597         tree-pretty-print.c, tree-loop-distribution.c,
1598         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1599         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1600         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1601         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1602         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1603         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1604         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1605         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1606         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1607         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1608         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1609         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1610         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1611         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1612         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1613         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1614         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1615         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1616         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1617         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1618         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1619         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1620         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1621         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1622         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1623         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1624         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1625         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1626         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1627         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1628         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1629         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1630         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1631         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1632         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1633         config/bfin/bfin.c: Clean up redundant includes.
1634         * Makefile.in: Update accordingly.
1635
1636 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1637
1638         PR middle-end/44204
1639         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1640         statement has no arguments.
1641
1642 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1643
1644         PR/44139
1645         * varasm.c (emutls_decl): Merge attributes to new decl.
1646
1647 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1648
1649         PR middle-end/44101
1650         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1651         around the uniquized constructor if its type requires a conversion.
1652
1653 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1654
1655         PR debug/44205
1656         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1657         at -O0 goto_locus of any of the incoming edges differs from
1658         goto_locus of outgoing edge, or gimple_location of any of the
1659         labels differs.
1660
1661 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1662
1663         * ira.c (ira_non_ordered_class_hard_regs): Define.
1664         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1665         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1666         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1667         cost of unaligned hard regs when allocating multi-reg pseudos.
1668
1669 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1670
1671         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1672         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1673         for TARGET_NO_FLOAT.
1674         * config/mips/mips.c (mips_file_start): Expand conditional expression
1675         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1676         (mips_override_options): Move -mno-float override -msoft-float and
1677         -mhard-float.
1678         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1679         Condition(TARGET_SUPPORTS_NO_FLOAT).
1680         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1681         __mips_no_float here.
1682         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1683         (TARGET_SUPPORTS_NO_FLOAT): Define.
1684         * config/mips/sdemtk.opt: Delete.
1685
1686 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1687
1688         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1689
1690 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1691
1692         PR target/43733
1693         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1694         * configure: Regenerate.
1695         * config.in: Regenerate.
1696         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1697         instead of sahf only for 64bit targets.
1698
1699 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1700
1701         PR debug/44178
1702         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1703         setup_ref_regs for DEBUG_INSNs.
1704
1705 2010-05-20  Jan Hubicka  <jh@suse.cz>
1706
1707         PR middle-end/44197
1708         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1709
1710 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1711
1712         PR bootstrap/43870
1713         * df-scan.c (df_ref_compare): Stabilize sort.
1714
1715 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1716
1717         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1718         argument.  Don't use DW_OP_piece if offset is non-zero,
1719         put offset into second DW_OP_bit_piece argument.
1720         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1721         compute offset.
1722
1723 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1724
1725         PR target/44202
1726         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1727         settings for 16-bit-constant "addo" alternative.
1728
1729 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1730
1731         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1732         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1733
1734         PR target/43764
1735         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1736         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1737         Use it.
1738
1739 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1740
1741         * diagnostic.c (FLOAT, FFS): Don't undefine.
1742         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1743         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1744         include ordering.
1745
1746 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1747
1748         * combine.c (propagate_for_debug): Call make_compound_operation
1749         on the source value.
1750         (try_combine): When implementing a split chosen by find_split_point,
1751         either copy i2src or set it to null.  Assert that i2src is not null
1752         before substituting into CALL_INSN_FUNCTION_USAGE.
1753
1754 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1755
1756         * double-int.h (double_int_ior): New function.
1757         * tree.h (build_int_cst_wide_type): Remove.
1758         * tree.c (build_int_cst_wide_type): Remove.
1759         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1760         of build_int_cst_wide_type.
1761         * stor-layout.c (set_sizetype): (Ditto.).
1762         * dojump.c (do_jump): Use build_int_cstu instead of
1763         build_int_cst_wide_type.
1764
1765 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1766
1767         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1768         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1769         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1770         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1771         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1772         propagate the 'data' argument to copy_tree_r.
1773         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1774         Propagate 'data' argument to walk_tree.
1775         (copy_if_shared): New function.
1776         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1777         (unmark_visited): New function.
1778         (unshare_body): Call copy_if_shared instead of doing it manually.
1779         (unvisit_body): Call unmark_visited instead of doing it manually.
1780
1781 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1782
1783         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1784         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1785         * hooks.c: Likewise.
1786         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1787         hook_tree_tree_int_treep_bool_null.
1788         * target.h (struct gcc_target): Update signature of fold_builtin
1789         field.
1790         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1791         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1792         instead of the call expression.
1793         (fold_builtin_call_array): Pass n and argarray directly.
1794         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1795         consing a list.
1796         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1797         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1798         `i' and use it in place of `arity'.
1799         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1800         Dereference `args' directly.
1801         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1802
1803 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1804
1805         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1806         3dnow, sse3, sse2.
1807         (Directives): Document optional dg-require-effective-target
1808         selector.
1809
1810 2010-05-19  Richard Guenther  <rguenther@suse.de>
1811
1812         PR lto/44196
1813         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1814
1815 2010-05-19  Richard Guenther  <rguenther@suse.de>
1816
1817         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1818         * common.opt (fwhopr=): New.
1819         * opts.c (common_handle_option): Handle OPT_fwhopr.
1820         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1821         * collect2.c (main): Match -fwhopr*.
1822         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1823         Execute ltrans stage in parallel when jobs is bigger than 1.
1824
1825 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1826
1827         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1828         pentiumpro on Solaris 8/x86 with Sun as.
1829         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1830         hidden alias bug.
1831         (gcc_cv_as_ix86_quad): Check for .quad directive.
1832         * configure: Regenerate.
1833         * config.in: Regenerate.
1834         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1835
1836 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1837
1838         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1839         also for indirect edges.  Actual printing moved...
1840         (ipa_print_node_jump_functions_for_edge): ...here.
1841         (ipa_compute_jump_functions): Renamed to
1842         ipa_compute_jump_functions_for_edge and made static.
1843         (ipa_compute_jump_functions): New function.
1844         (make_edge_direct_to_target): Check if the number of arguments on
1845         the newly direct edge is the same as the number of parametrs of
1846         the callee.
1847         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1848         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1849         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1850         analysis functions unconditionally, call the new
1851         ipa_analyze_params_uses on the node instead of every edge.
1852
1853 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1854
1855         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1856         to tree.
1857         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1858         also checks for a constant int vs.  non-constant but
1859         loop-invariant steps.
1860         (find_or_create_group): Change the sort algorithm to only consider
1861         steps that are constant ints.
1862         (idx_analyze_ref): Adopt code to handle a tree instead of a
1863         HOST_WIDE_INT for step.
1864         (gather_memory_references_ref): Handle tree instead of int and be
1865         prepared to see a NULL_TREE.
1866         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1867         prefetches if the step cannot be calculated at compile time.
1868         (issue_prefetch_ref): Issue prefetches for non-constant but
1869         loop-invariant steps.
1870
1871 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1872
1873         Revert:
1874         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1875
1876         * tree.h (build_call_list): Remove.
1877         * tree.c (build_call_list): Remove.
1878
1879 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1880
1881         * tree.h (build_call_list): Remove.
1882         * tree.c (build_call_list): Remove.
1883
1884 2010-05-18  Jan Hubicka  <jh@suse.cz>
1885
1886         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1887
1888 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1889
1890         PR rtl-optimization/43332
1891         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1892
1893 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1894
1895         * tree.h (build_int_cstu): Implement as static inline.
1896         * tree.c (build_int_cstu): Remove function.
1897         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1898         sign extended.
1899
1900 2010-05-18  Richard Guenther  <rguenther@suse.de>
1901
1902         PR lto/44143
1903         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1904         (debug): Initialize from -save-temps.
1905         (collect_execute): Print command-line when verbose.
1906         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1907         for ltrans invocation.  Produce -dumpbase flag again.
1908         (process_args): Remove.
1909         (main): Simplify.
1910         * collect2.c (maybe_run_lto_and_relink): Only pass object
1911         files to lto-wrapper.
1912         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1913
1914 2010-05-18  Jan Hubicka  <jh@suse.cz>
1915
1916         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1917         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1918
1919 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1920
1921         PR lto/44184
1922         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1923         in a GIMPLE_ASM.
1924         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1925         in a GIMPLE_ASM.
1926
1927 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1928
1929         PR debug/41371
1930         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1931         rtx_equal_p inline.
1932
1933 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1934
1935         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1936         lto-macho as lto_binary_reader.
1937
1938         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1939         after .section directive; just print it before the directive instead.
1940
1941 2010-05-17  Jan Hubicka  <jh@suse.cz>
1942
1943         * cgraph.c (cgraph_create_virtual_clone): Only check
1944         versionable_function_p when not in wpa and checking is enabled.
1945         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1946         there are no more functions to materialize.
1947
1948 2010-05-17  Jan Hubicka  <jh@suse.cz>
1949
1950         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1951         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1952         New functions.
1953         (output_cgraph): Call output_cgraph_opt_summary.
1954         (input_cgrpah): Call input_cgraph_opt_summary.
1955         (output_cgraph_opt_summary_p, output_node_opt_summary,
1956         input_node_opt_summary, input_cgraph_opt_section): New functions.
1957         * lto-section-in.c (lto_section_name): Add cgraphopt.
1958         * tree-inline.c (tree_function_versioning): Handle parm_num.
1959         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1960         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1961
1962 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1963
1964         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1965         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1966         the insn to prefetch ratio heuristic to loops with known trip count.
1967
1968 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1969
1970         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1971         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1972         is far from what is required by the prefetch.
1973
1974 2010-05-17  Jan Hubicka  <jh@suse.cz>
1975
1976         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1977         (ipcp_estimate_growth): Likewise.
1978         (ipcp_const_param_count): Likewise.
1979         (ipcp_insert_stage): Likewise.
1980         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1981         (visit_store_addr_for_mod_analysis): Set used flag.
1982         (ipa_detect_param_modifications): Set used flag for SSE params;
1983         update use of walk_stmt_load_store_addr_ops.
1984         (ipa_print_node_params): Print used flag.
1985         (ipa_write_node_info): Stream used flag.
1986         (ipa_read_node_info): Likewise.
1987         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1988         (ipa_is_param_used): New function.
1989         (lto_ipa_fixup_call_notes): Remove unused declaration.
1990
1991 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1992
1993         PR target/44074
1994         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1995         * configure: Regenerate.
1996         * config.in: Regenerate.
1997         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1998         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1999         Don't emit whitespace.
2000         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
2001         (*rep_movsi): Likewise.
2002         (*rep_movsi_rex64): Likewise.
2003         (*rep_movqi): Likewise.
2004         (*rep_movqi_rex64): Likewise.
2005         (*rep_stosdi_rex64): Likewise.
2006         (*rep_stossi): Likewise.
2007         (*rep_stossi_rex64): Likewise.
2008         (*rep_stosqi): Likewise.
2009         (*rep_stosqi_rex64): Likewise.
2010         (*cmpstrnqi_nz_1): Use {%;} after repz.
2011         (*cmpstrnqi_nz_rex_1): Likewise.
2012         (*cmpstrnqi_1): Likewise.
2013         (*cmpstrnqi_rex_1): Likewise.
2014         (*strlenqi_1): Use {%;} after repnz.
2015         (*strlenqi_rex_1): Likewise.
2016         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
2017         (*sync_compare_and_swap<mode>): Likewise.
2018         (sync_double_compare_and_swap<mode>): Likewise.
2019         (*sync_double_compare_and_swapdi_pic): Likewise.
2020         (sync_old_add<mode>): Likewise.
2021         (sync_add<mode>): Likewise.
2022         (sync_sub<mode>): Likewise.
2023         (sync_<code><mode>): Likewise.
2024
2025 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2026
2027         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
2028         otr_token and polymorphic.
2029         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
2030         (cgraph_clone_edge): Copy the above fields.
2031         * tree.c (get_binfo_at_offset): New function.
2032         * tree.h (get_binfo_at_offset): Declare.
2033         * ipa-prop.h (enum jump_func_type): Added known_type jump function
2034         type, reordered items, updated comments.
2035         (union jump_func_value): Added base_type field, reordered fields.
2036         (enum ipa_lattice_type): Moved down in the file.
2037         (struct ipa_param_descriptor): New field polymorphic.
2038         (ipa_is_param_polymorphic): New function.
2039         * ipa-prop.c: Include gimple.h and gimple-fold.h.
2040         (ipa_print_node_jump_functions): Print known type jump functions.
2041         (compute_complex_pass_through): Renamed to...
2042         (compute_complex_assign_jump_func): this.
2043         (compute_complex_ancestor_jump_func): New function.
2044         (compute_known_type_jump_func): Likewise.
2045         (compute_scalar_jump_functions): Create known type and complex ancestor
2046         jump functions.
2047         (ipa_note_param_call): New parameter polymorphic, set the corresponding
2048         flag in the call note accordingly.
2049         (ipa_analyze_call_uses): Renamed to...
2050         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
2051         variable var only in the block where it is used.
2052         (ipa_analyze_virtual_call_uses): New function.
2053         (ipa_analyze_call_uses): Likewise.
2054         (combine_known_type_and_ancestor_jfs): Likewise.
2055         (update_jump_functions_after_inlining): Implemented handling of a
2056         number of new jump function types combination.
2057         (print_edge_addition_message): Removed.
2058         (make_edge_direct_to_target): New function.
2059         (try_make_edge_direct_simple_call): Likewise.
2060         (try_make_edge_direct_virtual_call): Likewise.
2061         (update_call_notes_after_inlining): Renamed to...
2062         (update_indirect_edges_after_inlining): this.  Moved edge creation for
2063         indirect calls to try_make_edge_direct_simple_call, also calls
2064         try_make_edge_direct_virtual_call for virtual calls.
2065         (ipa_print_node_params): Changed the header message.
2066         (ipa_write_jump_function): Stream also known type jump functions.
2067         (ipa_read_jump_function): Likewise.
2068         (ipa_write_indirect_edge_info): Stream new fields in
2069         cgraph_indirect_call_info.
2070         (ipa_read_indirect_edge_info): Likewise.
2071         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
2072         GIMPLE_FOLD_H.
2073
2074 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2075
2076         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
2077
2078 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2079
2080         * tree.h (CALL_EXPR_ARGS): Delete.
2081         (call_expr_arglist): Delete.
2082         * tree.c (call_expr_arglist): Delete.
2083         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
2084         targetm.fold_builtin.
2085         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
2086         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
2087         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
2088         arglist parameter.  Use CALL_EXPR_ARG.
2089         (picochip_expand_builtin_3op): Likewise.
2090         (picochip_expand_builtin_2opvoid): Likewise.
2091         (picochip_expand_array_get): Likewise.
2092         (picochip_expand_array_put): Likewise.
2093         (picochip_expand_array_testport): Likewise.
2094         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
2095         rather than arglist.
2096         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
2097         CALL_EXPR_ARGS.
2098         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
2099         than TREE_VALUE and TREE_CHAIN.
2100         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
2101         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
2102         the arglist.
2103
2104 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2105
2106         PR bootstrap/42347
2107         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
2108         to have no fallthru edge.
2109
2110         PR middle-end/44102
2111         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
2112         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
2113         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
2114         add BARRIER after previous bb if needed.
2115
2116 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2117
2118         * tree.c (build_function_type_list_1): Remove bogus assert condition.
2119
2120 2010-05-17  Alan Modra  <amodra@gmail.com>
2121
2122         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
2123         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
2124         with copy_reg rtx param.
2125         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
2126         Correct cases where code for ABI_V4 did not initialise the reg
2127         used to access frame.  Also leave frame_reg_rtx as sp for large
2128         frames that save no regs.
2129
2130 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2131
2132         PR middle-end/44133
2133         * tree-sra.c (create_access_replacement): New parameter rename, mark
2134         the replaement for renaming only when it is true.
2135         (get_access_replacement): Pass true in the rename parameter of
2136         create_access_replacement.
2137         (get_unrenamed_access_replacement): New function.
2138         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
2139         replacement declaration from it.
2140
2141 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
2142
2143         * function.c (try_fit_stack_local, add_frame_space): New static
2144         functions.
2145         (assign_stack_local_1): Use them.  Look for opportunities to use
2146         space previously wasted on alignment.
2147         * function.h (struct frame_space): New.
2148         (struct rtl_data): Add FRAME_SPACE_LIST member.
2149         * reload1.c (something_was_spilled): New static variable.
2150         (alter_reg): Set it.
2151         (reload): Test it in addition to testing if the frame size changed.
2152
2153 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
2154
2155         * config/s390/s390.c: Define sane prefetch settings and activate
2156         flag_prefetch_loop_arrays on -O3.
2157         * config/s390/s390.h: Declare that read can use write prefetch.
2158
2159 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2160
2161         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
2162         build.
2163
2164 2010-05-16  Jan Hubicka  <jh@suse.cz>
2165
2166         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2167         function body; do not check stdarg field of struct function.
2168
2169 2010-05-16  Jan Hubicka  <jh@suse.cz>
2170
2171         * cgraph.c (dump_cgraph_node): Dump versionable flag.
2172         * cgraph.h (cgraph_local_info): Add versionable flag.
2173         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2174         (ipcp_versionable_function_p): Use it.
2175         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2176         versionable flag.
2177
2178 2010-05-16  Jan Hubicka  <jh@suse.cz>
2179
2180         * cgraph.c (cgraph_clone_node): Take decl argument and insert
2181         clone into hash when it is different from orig.
2182         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2183         * cgraph.h (cgraph_clone_node): Update prototype.
2184         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2185         (lto_cgraph_encoder_delete): Delete body map.
2186         (lto_cgraph_encoder_size): Move to header.
2187         (lto_cgraph_encoder_encode_body_p,
2188         lto_set_cgraph_encoder_encode_body): New.
2189         (lto_output_node): Do not take written_decls argument; output clone_of
2190         pointer.
2191         (add_node_to): Add include_body_argument; call
2192         lto_set_cgraph_encoder_encode_body on master of the clone.
2193         (add_references): Update use of add_node_to.
2194         (compute_ltrans_boundary): Likewise.
2195         (output_cgraph): Do not create written_decls bitmap.
2196         (input_node): Take nodes argument; stream in clone_of correctly.
2197         (input_cgraph_1): Update use of input_node.
2198         * lto-streamer-out.c (lto_output): Use encoder info to decide
2199         what bodies to output.
2200         * ipa-inline.c (cgraph_clone_inlined_nodes,
2201         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2202         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2203         (lto_cgraph_encoder_size): Define here.
2204         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2205         Declare.
2206
2207 2010-05-16  Richard Guenther  <rguenther@suse.de>
2208
2209         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2210         -fipa-type-escape.
2211         * ipa-type-escape.c (gate_type_escape_vars): Run when
2212         -fipa-struct-reorg runs.
2213         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2214         * common.opt (fipa-type-escape): Remove.
2215
2216 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2217
2218         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2219         (decode_options): Likewise.
2220         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2221
2222 2010-05-16  Jan Hubicka  <jh@suse.cz>
2223
2224         * ipa.c (function_and_variable_visibility): Also bring local all
2225         aliases.
2226
2227 2010-05-16  Richard Guenther  <rguenther@suse.de>
2228
2229         * alias.c (nonoverlapping_memrefs_p): Remove use of
2230         IPA type-escape information.
2231
2232 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2233
2234         * c-common.c (c_common_reswords): Add _Static_assert for C.
2235         * c-parser.c (c_token_starts_declaration,
2236         c_parser_next_token_starts_declaration,
2237         c_parser_static_assert_declaration_no_semi,
2238         c_parser_static_assert_declaration): New.
2239         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2240         Handle static assertions if static_assert_ok.
2241         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2242         c_parser_compound_statement_nostart, c_parser_label,
2243         c_parser_for_statement, c_parser_objc_methodprotolist,
2244         c_parser_omp_for_loop): All callers of
2245         c_parser_declaration_or_fndef changed.
2246         (c_parser_struct_declaration): Handle static assertions.
2247         (c_parser_compound_statement_nostart): Use
2248         c_parser_next_token_starts_declaration and
2249         c_token_starts_declaration to detect start of declarations.
2250         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2251         Likewise.
2252
2253 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2254
2255         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2256         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2257         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2258         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2259         (mmix_function_outgoing_value): Rename to...
2260         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2261         (mmix_function_value_regno_p): Make static.
2262         (mmix_libcall_value): New function.
2263         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2264         mmix_function_value_regno_p): Remove declaration.
2265
2266 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2267
2268         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2269         BUILT_IN_ALLOCA if stack checking is enabled.
2270
2271 2010-05-16  Richard Guenther  <rguenther@suse.de>
2272
2273         * var-tracking.c (vars_copy_1): Inline ...
2274         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2275         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2276         (variable_merge_over_cur): Adjust.  Merge asserts.
2277         (variable_merge_over_src): Likewise.
2278         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2279         (variable_post_merge_new_vals): Merge asserts.
2280         (variable_post_merge_perm_vals): Likewise.
2281         (find_mem_expr_in_1pdv): Likewise.
2282         (dataflow_set_different_value): Remove.
2283         (onepart_variable_different_p): Merge asserts.
2284         (variable_different_p): Likewise.
2285         (dataflow_set_different_1): Inline ...
2286         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2287         (emit_notes_for_differences_1): Merge asserts.
2288
2289 2010-05-16  Richard Guenther  <rguenther@suse.de>
2290
2291         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2292         * optabs.c (libfunc_decl_hash): Likewise.
2293         * varasm.c (emutls_decl): Likewise.
2294
2295 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2296
2297         * c-decl.c: Don't include gimple.h.
2298         (merge_decls): Do not copy gimple_body.
2299
2300 2010-05-15  Jason Merrill  <jason@redhat.com>
2301
2302         * c.opt: Add -fnothrow-opt.
2303
2304 2010-05-15  Jan Hubicka  <jh@suse.cz>
2305
2306         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2307         analyzed.
2308         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2309
2310 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2311
2312         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2313         * Makefile.in: Add it.
2314         Fix all other Makefile dependencies for changes below.
2315         * tree.h: Include it instead of defining VEC primitives here.
2316         * gimple.h: Likewise.
2317         * rtl.h: Likewise.
2318         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2319         * except.h: Include vecir.h, break dependence on tree.h.
2320
2321         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2322         Move from here...
2323         * tree-iterator.c: ...to here.
2324         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2325
2326         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2327         tm_p.h.
2328         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2329         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2330         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2331         tree-mudflap.h, and target.h.
2332         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2333         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2334         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2335         Add FIXME for why gimple.h is still included (should be unnecessary
2336         since GCC 4.5 gimplification unit-at-a-time).
2337         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2338         * c-pragma.c: Add FIXME for why function.h needs to be included just
2339         for cfun, at front-end level.
2340         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2341         Do not include ggc.h, but include vecprim.h for VEC(char).
2342         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2343         Explain why target.h is included.
2344         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2345         Explain why gimple.h is included.
2346         * c-ppoutput.c: Do not include tm.h.
2347         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2348         * c-parses.c: Explain why rtl.h is included, and that this (and only
2349         this) is also why tm.h must be included.
2350         Do not include except.h.
2351         * c-lang.c: Do not include ggc.h.
2352
2353 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2354
2355         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2356
2357 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2358
2359         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2360         unions by default if those structs and unions have no tags.  Do
2361         not condition anonymous struct and unions handling on flag_iso.
2362         Allow anonymous structs and unions for C1X.
2363         (finish_struct): Do not diagnose lack of named fields when
2364         anonymous structs and unions present for C1X.  Accept flexible
2365         array members in structure with anonymous structs or unions but no
2366         directly named fields.
2367         * doc/extend.texi (Unnamed Fields): Update.
2368
2369 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2370
2371         * gimple.h (compare_field_offset): Rename into...
2372         (gimple_compare_field_offset): ...this.
2373         * gimple.c (compare_field_offset): Rename into...
2374         (gimple_compare_field_offset): ...this.  Compare the full access if
2375         the offset is self-referential.
2376         (gimple_types_compatible_p): Adjust for above renaming.
2377         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2378         DECL_NONADDRESSABLE_P flag of fields before merging them.
2379
2380 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2381
2382         * tree.h (ctor_to_list): Delete.
2383         * tree.c (ctor_to_list): Delete.
2384
2385 2010-05-15  Jan Hubicka  <jh@suse.cz>
2386
2387         * ipa-reference.c: Include toplev.h
2388         (is_proper_for_analysis): Only add to all_module_statics
2389         if it is allocated.
2390         (write_node_summary_p, stream_out_bitmap,
2391         ipa_reference_write_optimization_summary,
2392         ipa_reference_read_optimization_summary): New.
2393         (struct ipa_opt_pass_d pass_ipa_reference): Add
2394         optimization summary streaming.
2395         * lto-cgraph.c (referenced_from_this_partition_p,
2396         reachable_from_this_partition_p): New functions.
2397         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2398         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2399         * opts.c (decode_options): Enable ipa_reference.
2400         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2401         * lto-streamer.h (referenced_from_this_partition_p,
2402         reachable_from_this_partition_p): Declare.
2403
2404 2010-05-15  Richard Guenther  <rguenther@suse.de>
2405
2406         PR tree-optimization/44038
2407         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2408         taking the address of a V_C_E of a constant.
2409
2410 2010-05-14  Jan Hubicka  <jh@suse.cz>
2411
2412         * tree.h (memory_identifier_string): Remove.
2413         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2414         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2415         statics_not_written.
2416         (ipa_reference_optimization_summary_d): New structure.
2417         (ipa_reference_optimization_summary_t): New type and vector.
2418         (ipa_reference_vars_info_d): Embedd structures instead of using
2419         pointers.
2420         (reference_vars_to_consider): Remove out of GGC space.
2421         (module_statics_escape): Remove.
2422         (global_info_obstack): Rename to ...
2423         (optimization_summary_obstack): ... this one.
2424         (initialization_status_t): Remove.
2425         (memory_identifier_string): Remove.
2426         (get_reference_vars_info): Fix indenting.
2427         (set_reference_vars_info): Likewise.
2428         (get_reference_optimization_summary): New.
2429         (set_reference_optimization_summary): New.
2430         (get_global_reference_vars_info): Remove.
2431         (ipa_reference_get_read_global): Remove.
2432         (ipa_reference_get_written_global): Remove.
2433         (ipa_reference_get_not_read_global): Update.
2434         (ipa_reference_get_not_written_global): Update.
2435         (is_proper_for_analysis): Outlaw addressable.
2436         (propagate_bits): Update for new datastructures.
2437         (analyze_variable): Remove.
2438         (init_function_info): Update for new datastructures.
2439         (clean_function_local_data): Remove.
2440         (clean_function): Remove.
2441         (copy_global_bitmap): Use optimizations_summary_obstack.
2442         (duplicate_node_data): Duplicate optimization summary only.
2443         (remove_node_data): Remove optimization summary only.
2444         (generate_summary): Do not analyze variables; do not compute
2445         module_statics_escape; do not prune solutions by it.
2446         (read_write_all_from_decl): Fix typos in comments.
2447         (propagate): Doscover readonly and nonaddressable first;
2448         update for new datastructures; share global bitmaps.
2449         * ipa-reference.h (ipa_reference_get_read_global,
2450         ipa_reference_get_written_global): Remove.
2451         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2452         * Makefile.in: Remove ipa-refereference from GT files.
2453
2454 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2455
2456         PR debug/44112
2457         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2458         for all SYMBOL_REF_DECLs.
2459
2460 2010-05-14  Jan Hubicka  <jh@suse.cz>
2461
2462         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2463         (varpool_all_refs_explicit_p): New inline function.
2464         * ipa-reference.c: Update comment.
2465         (module_statics_written): Remove.
2466         (get_static_decl): Remove.
2467         (ipa_init): Do not initialize module_statics_written.
2468         (analyze_function): Likewise.
2469         (generate_summary): Likewise; do not compute module_statics_readonly
2470         and do not update variable flags.
2471         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2472         * ipa.c: Inlucde flags.h
2473         (cgraph_local_node_p): New.
2474         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2475         promote functions to local.
2476         (ipa_discover_readonly_nonaddressable_vars): New function.
2477         (function_and_variable_visibility): Use cgraph_local_node_p.
2478         * varpool.c (varpool_finalize_decl): Set force_output for
2479         DECL_PRESERVE_P vars.
2480
2481 2010-05-14  Jan Hubicka  <jh@suse.cz>
2482
2483         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2484
2485 2010-05-14  Richard Guenther  <rguenther@suse.de>
2486
2487         PR tree-optimization/44119
2488         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2489         a PHI node necessary.
2490
2491 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2492
2493         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2494
2495 2010-05-14  Jason Merrill  <jason@redhat.com>
2496
2497         PR c++/44127
2498         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2499         (gimple_call_set_nothrow): New.
2500         * gimple.c (gimple_build_call_from_tree): Call it.
2501         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2502
2503         PR c++/44127
2504         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2505         * gimple.h: Declare it.
2506         * gimple.c (gimple_build_eh_filter): No ops.
2507
2508 2010-05-14  Jan Hubicka  <jh@suse.cz>
2509
2510         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2511         nodes already in queue.
2512         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2513         re-enqueueing node.
2514
2515 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2516
2517         PR debug/44136
2518         * cfgexpand.c (expand_debug_expr): If non-memory op0
2519         has BLKmode, return NULL.
2520
2521 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2522
2523         * config.gcc: Add support for --with-cpu option for bdver1.
2524         * config/i386/i386.h (TARGET_BDVER1): New macro.
2525         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2526         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2527         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2528         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2529         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2530         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2531         (processor_type): Add PROCESSOR_BDVER1.
2532         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2533         processor_type in config/i386/i386.h.
2534         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2535         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2536         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2537         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2538         to emit packed xor instead of packed double/packed integer
2539         xor for SSE and AVX when moving a zero value.
2540         * config/i386/sse.md: Add check for
2541         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2542         movapd/movdqa for SSE and AVX.
2543         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2544         single logical operations i.e and, or and xor instead of packed double
2545         logical operations for SSE and AVX.
2546         * config/i386/i386-c.c (ix86_target_macros_internal):
2547         Add PROCESSOR_BDVER1.
2548         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2549         (has_fma4, has_xop): New.
2550         * config/i386/i386.c (bdver1_cost): New variable.
2551         (m_BDVER1): New macro.
2552         (m_AMD_MULTIPLE): Add m_BDVER1.
2553         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2554         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2555         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2556         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2557         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2558         x86_tune_sse_partial_reg_dependency,
2559         x86_tune_sse_unaligned_load_optimal,
2560         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2561         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2562         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2563         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2564         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2565         Enable/disable for bdver1.
2566         (processor_target_table): Add bdver1_cost.
2567         (cpu_names): Add bdver1.
2568         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2569          processor_alias_table.
2570         (ix86_expand_vector_move_misalign): Change.
2571         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2572         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2573         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2574         of movupd/movdqu for SSE and AVX.
2575         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2576         (ix86_tune_adjust_cost): Add code for bdver1.
2577         (standard_sse_constant_opcode): Add check for
2578         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2579         of packed double xor for SSE and AVX.
2580
2581 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2582
2583         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2584         result to unsigned.
2585
2586 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2587
2588         * toplev.c (default_debug_hooks): Remove this variable.
2589         (process_options): Remove assignments to default_debug_hooks.
2590
2591 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2592
2593         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2594         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2595         * langhooks.h (struct lang_hooks_for_decls): Removed field
2596         fold_obj_type_ref.
2597         * tree.c (free_lang_data): Remove assignment to
2598         lang_hooks.fold_obj_type_ref.
2599         * tree.def (OBJ_TYPE_REF): Update comment.
2600
2601 2010-05-14  Richard Guenther  <rguenther@suse.de>
2602
2603         PR tree-optimization/44124
2604         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2605
2606 2010-05-14  Alan Modra  <amodra@gmail.com>
2607
2608         PR target/44075
2609         * config/rs6000/rs6000.c (struct machine_function): Reorder
2610         fields for better packing.  Add lr_save_state.
2611         (rs6000_ra_ever_killed): Return lr_save_state if set.
2612         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2613
2614 2010-05-13  Jan Hubicka  <jh@suse.cz>
2615
2616         * varpool.c (decide_is_variable_needed): Drop code checking
2617         TREE_SYMBOL_REFERENCED.
2618
2619 2010-05-13  Jan Hubicka  <jh@suse.cz>
2620
2621         * final.c (output_addr_const): Do not call mark_decl_referenced.
2622         * cgraphunit.c (process_function_and_variable_attributes): Use
2623         mark_needed_node dirrectly.
2624         (assemble_thunk): Do not call mark_decl_referenced.
2625
2626 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2627
2628         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2629
2630 2010-05-13  Jeff Law  <law@redhat.com>
2631
2632         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2633         from...
2634         (print_conflicts): Call print_allocno_conflicts.
2635
2636 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2637
2638         PR debug/44104
2639         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2640         if it is NULL.
2641
2642 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2643
2644         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2645         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2646         * config/i386/t-mingw-w32: New.
2647         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2648
2649 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2650
2651         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2652         gimple-fold.c).
2653         * gimple-fold.c (get_base_binfo_for_type): New function.
2654         (gimple_get_relevant_ref_binfo): Likewise.
2655         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2656         (gimple_fold_obj_type_ref): Likewise.
2657         (fold_gimple_call): Simplify condition for folding virtual calls
2658         and call gimple_fold_obj_type_ref.
2659         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2660         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2661
2662 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2663
2664         * config/rs6000/rs6000-protos.h
2665         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2666         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2667         (rs6000_debug_mode_dependent_address)
2668         (rs6000_mode_dependent_address_ptr): Likewise.
2669
2670 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2671
2672         PR debug/43983
2673         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2674         by SRA.
2675         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2676         * tree-sra.c (create_access_replacement): Call unshare_expr before
2677         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2678         * dwarf2out.c: Include tree-flow.h.
2679         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2680         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2681         Handle DW_OP_bit_piece.
2682         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2683         construct_piece_list, adjust_piece_list): New functions.
2684         (add_var_loc_to_decl): Handle SRA optimized variables.
2685         Adjust for var_loc_note to loc field renaming.
2686         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2687         in VAR_LOCATION note.
2688         (new_loc_descr_op_bit_piece): New function.
2689         (dw_sra_loc_expr): New function.
2690         (dw_loc_list): Use it.  Don't handle the last range after the
2691         loop, handle it inside of the loop.  Adjust for var_loc_note
2692         to loc field renaming.
2693         (add_location_or_const_value_attribute): Only special case
2694         single entry loc lists if loc is NOTE_P.  Adjust for
2695         var_loc_note to loc field renaming.
2696         (dwarf2out_var_location): Don't set newloc->var_loc_note
2697         and newloc->next here.
2698
2699 2010-05-12  Jan Hubicka  <jh@suse.cz>
2700
2701         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2702         flag.
2703         * cgraph.h (cgraph_only_called_directly_p,
2704         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2705         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2706         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2707         (assemble
2708         * ipa.c (cgraph_remove_unreachable_nodes): Use
2709         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2710         flags.
2711         * tree-inline.c (copy_bb): Check address_taken flag.
2712         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2713         externally_visible flag.
2714
2715 2010-05-12  Jason Merrill  <jason@redhat.com>
2716
2717         PR bootstrap/44048
2718         PR target/44099
2719         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2720         * sdbout.c (plain_type_1): Likewise.
2721         * dwarf2out.c (is_base_type): Likewise.
2722         (gen_type_die_with_usage): Likewise.  Generate
2723         DW_TAG_unspecified_type for any LANG_TYPE.
2724
2725 2010-05-12  Jan Hubicka  <jh@suse.cz>
2726
2727         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2728         indrect edges too.
2729         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2730         (cgraph_clone_edge): Update.
2731         (cgraph_node_remove_callees): Remove indirect calls too.
2732         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2733         (cgraph_create_indirect_edge): Update prototype.
2734         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2735         is_proper_for_analysis.
2736         (add_new_function, visited_nodes, function_insertion_hook_holder,
2737         get_local_reference_vars_info, mark_address_taken, mark_address,
2738         mark_load, mark_store, check_asm_memory_clobber, check_call,
2739         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2740         (ipa_init): Do not initialize visited_nodes;
2741         function_insertion_hook_holder.
2742         (analyze_variable): Rewrite.
2743         (analyze_function): Rewrite.
2744         (copy_local_bitmap): Remove.
2745         (duplicate_node_dat): Do not duplicate local info.
2746         (generate_summary): Simplify to only walk cgraph.
2747         (write_node_summary_p, ipa_reference_write_summary,
2748         ipa_reference_read_summary): Remove.
2749         (propagate): Do not remove function insertion;
2750         generate summary.
2751         (pass_ipa_reference): NULLify summary handling fields.
2752         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2753         (input_edge): Input ecf_flags.
2754         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2755         (update_indirect_edges_after_inlining): Ignore edges with unknown
2756         param.
2757
2758 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2759
2760         * implicit-zee.c: New file.
2761         * tree-pass.h (pass_implicit_zee): Declare.
2762         * passes.c (init_optimization_passes): Add zee pass.
2763         * common.opt (fzee): New flag.
2764         * timevar.def (TV_ZEE): Define.
2765         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2766         and beyond.
2767         * Makefile.in (implicit-zee.o): Add new build file.
2768
2769 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2770             Nathan Froyd  <froydnj@codesourcery.com>
2771
2772         * c-common.c (sync_resolve_params): Remove write-only variable.
2773
2774 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2775
2776         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2777         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2778         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2779         * targhooks.c (default_mode_dependent_address_p): New function.
2780         * targhooks.h (default_mode_dependent_address_p): Declare function.
2781         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2782         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2783         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2784         target hook. Change return type to bool.
2785         * recog.h (mode_dependent_address_p): Change return type to bool.
2786
2787 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2788             Nathan Froyd  <froydnj@codesourcery.com>
2789
2790         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2791         build_function_type_2, build_function_type_3): Remove.
2792         (mudflap_init): Use build_function_type_list.
2793
2794 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2795             Nathan Froyd  <froydnj@codesourcery.com>
2796
2797         * coverage.c (build_fn_info_value): Call build_constructor instead of
2798         build_constructor_from_list.
2799         (build_ctr_info_value): Likewise.
2800         (build_gcov_info): Likewise.
2801
2802 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2803
2804         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2805         resultant constructor.
2806         (build_constructor_single): Don't set TREE_CONSTANT.
2807         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2808
2809 2010-05-12  Jan Hubicka  <jh@suse.cz>
2810
2811         * cgraph.h (struct varpool_node): Add aux.
2812         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2813         * varpool.c (varpool_remove_node): Do not remove initializer.
2814         (varpool_reset_queue): Export.
2815         (varpool_finalize_decl): Volatile vars are forced to be output.
2816         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2817         replaced decl.
2818         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2819         process_references, varpool_can_remove_if_no_refs): New functions.
2820         (cgraph_remove_unreachable_nodes): Handle variables too.
2821
2822 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2823
2824         PR target/44088
2825         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2826
2827 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2828
2829         PR middle-end/44085
2830         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2831         change value of ORT_TASK.
2832         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2833         (omp_notice_threadprivate_variable): New function.
2834         (omp_notice_variable): Call it for threadprivate variables.
2835         If enclosing ctx is a task, print enclosing task rather than
2836         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2837         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2838         if task has untied clause.
2839
2840         PR debug/42278
2841         * dwarf2out.c (base_type_die): Don't add name attribute here.
2842         (modified_type_die): Instead of sizetype use
2843         its underlying original type.  If a DW_TAG_base_type doesn't
2844         have name added, add __unknown__.
2845         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2846         always call force_type_die instead.
2847
2848 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2849
2850         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2851         for __stack_chk_guard.
2852
2853 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2854
2855         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2856         don't call start_source_file debug hook here...
2857         (finish_options): ... but here, after outputting predefined and
2858         command line defines and undefs.
2859
2860         PR middle-end/44071
2861         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2862         no fallthru edge.
2863         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2864         optimizing away empty bb with no successors, move over its
2865         footer chain to fallthru predecessor.
2866         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2867         (rtl_split_edge): For asm goto call patch_jump_insn even if
2868         splitting fallthru edge.
2869
2870         PR c++/44059
2871         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2872         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2873         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2874         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2875         on DW.ref.* decls.
2876
2877         PR c++/44062
2878         * c-parser.c (c_parser_expression): Mark LHS of a comma
2879         expression as read if it is a decl, handled component or
2880         COMPOUND_EXPR with that on the RHS.
2881         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2882         if it is a decl or handled component.
2883
2884 2010-05-11  Jan Hubicka  <jh@suse.cz>
2885
2886         * lto-symtab.c (lto_symtab_free): New function.
2887         * lto-streamer.h (lto_symtab_free): Declare.
2888
2889 2010-05-11  Jan Hubicka  <jh@suse.cz>
2890
2891         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2892         that if function is needed it is reachable.
2893         (lto_output_node): See if it the function is reachable or referenced.
2894         (output_cgraph): Update call of lto_output_node.
2895         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2896
2897 2010-05-11  Jan Hubicka  <jh@suse.cz>
2898
2899         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2900         Mark as used.
2901
2902 2010-05-11  Jan Hubicka  <jh@suse.cz>
2903
2904         PR tree-optimize/44063
2905         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2906         queue.
2907         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2908         limits.
2909         (estimate_function_body_sizes): Compute sizes even when disregarding.
2910
2911 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2912
2913         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2914
2915 2010-05-11  Jan Hubicka  <jh@suse.cz>
2916
2917         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2918         into every boundary.
2919
2920 2010-05-11  Jan Hubicka  <jh@suse.cz>
2921
2922         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2923
2924 2010-05-11  Jan Hubicka  <jh@suse.cz>
2925
2926         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2927         lto_streamer_cache_delete): Put nodes into heap.
2928         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2929         heap.
2930
2931 2010-05-11  Jan Hubicka  <jh@suse.cz>
2932
2933         * cgraphbuild.c (cgraph_rebuild_references): New.
2934         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2935         out extern inlines.
2936         * cgraph.h (cgraph_rebuild_references): Declare.
2937         * tree-inline.c (tree_function_versioning): Use it.
2938         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2939
2940 2010-05-11  Jan Hubicka  <jh@suse.cz>
2941
2942         * cgraph.c: Include ipa-utils.h
2943         (cgraph_create_virtual_clone): Update references.
2944         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2945
2946 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2947
2948         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2949         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2950         cache size.
2951
2952 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2953
2954         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2955
2956 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2957
2958         * gcc.c (execute): For -### don't quote arguments that
2959         contain just alphanumerics and _/-. characters.
2960         * doc/invoke.texi: Document that change for -###.
2961
2962         PR debug/44023
2963         * df-problems.c (struct dead_debug): Add to_rescan field.
2964         (dead_debug_init): Clear to_rescan field.
2965         (dead_debug_finish): Rescan all debug insns in to_rescan
2966         bitmap and free the bitmap.
2967         (dead_debug_insert_before): Instead of rescanning debug insns
2968         immediately queue their rescanning until dead_debug_finish.
2969         (df_note_bb_compute): After dead_debug_add do continue instead
2970         of break.
2971
2972 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2973
2974         PR debug/44028
2975         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2976         clear also INSN_REG_USE_LIST.
2977
2978 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2979
2980         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2981
2982 2010-05-10  Jan Hubicka  <jh@suse.cz>
2983
2984         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2985         commited change.
2986
2987 2010-05-10  Jan Hubicka  <jh@suse.cz>
2988
2989         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2990         Allocate encoders.
2991         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2992         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2993         (lto_streamer_cache_create): Init alloc pool.
2994         (lto_streamer_cache_delete): Free alloc pool.
2995         * lto-streamer.h: Include alloc pool.
2996         (lto_streamer_cache_d): Use alloc pool.
2997         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2998
2999 2010-05-10  Jan Hubicka  <jh@suse.cz>
3000
3001         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
3002         * cgraphbuild.c: Include except.h
3003         (record_type_list, record_eh_tables): New function.
3004         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
3005
3006 2010-05-10  Jan Hubicka  <jh@suse.cz>
3007
3008         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
3009         __frame_dummy_init_array_entry, force_to_data): Attribute as used
3010         rather than unused.
3011
3012 2010-05-10  Michael Matz  <matz@suse.de>
3013
3014         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
3015         (can_reassociate_p): Use FLOAT_TYPE_P.
3016         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
3017         (vect_force_simple_reduction): ... this.
3018         * tree-parloops.c (gather_scalar_reductions): Use
3019         vect_force_simple_reduction.
3020         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
3021         vect_is_simple_reduction, add modify argument, if true rewrite
3022         "a-b" into "a+(-b)".
3023         (vect_is_simple_reduction, vect_force_simple_reduction): New
3024         functions.
3025         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
3026
3027 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3028             Vladimir Makarov  <vmakarov@redhat.com>
3029
3030         PR rtl-optimization/44012
3031         * ira-build.c (remove_unnecessary_allocnos): Nullify
3032         regno_allocno_map of the removed allocno.
3033
3034 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3035
3036         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
3037         to /dev/null.
3038         * configure: Regenerate.
3039
3040 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3041
3042         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
3043         unused.
3044         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
3045         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
3046         support in Sun ld.
3047         * configure: Regenerate.
3048
3049 2010-05-10  Richard Guenther  <rguenther@suse.de>
3050
3051         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
3052         marked if the entry identifier is marked.
3053
3054 2010-05-10  Richard Guenther  <rguenther@suse.de>
3055
3056         * c-common.c (struct c_common_attributes): Add fnspec attribute.
3057         (handle_fnspec_attribute): New function.
3058         * gimple.h (gimple_call_return_flags): Declare.
3059         (gimple_call_arg_flags): Likewise.
3060         * gimple.c (gimple_call_arg_flags): New function.
3061         (gimple_call_return_flags): Likewise.
3062         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
3063         New argument flags.
3064         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
3065         return value flags.
3066         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
3067         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
3068         main work to ...
3069         (make_heapvar_for): ... this new function.
3070         (handle_rhs_call): Handle fnspec attribute argument specifiers.
3071         (handle_lhs_call): Likewise.
3072         (find_func_aliases): Adjust.
3073
3074 2010-05-10  Richard Guenther  <rguenther@suse.de>
3075
3076         PR tree-optimization/44050
3077         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3078
3079 2010-05-10  Wei Guozhi  <carrot@google.com>
3080
3081         PR target/42879
3082         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
3083
3084 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3085
3086         PR c/10676
3087         * c-typeck.c (lookup_field): Take a type directly.  Update
3088         recursive calls.
3089         (build_component_ref): Update call to lookup_field.
3090         (set_init_label): Use lookup_field to find initialized field.
3091         Handle returned list of fields like a sequence of designators.
3092
3093 2010-05-09  Richard Guenther  <rguenther@suse.de>
3094
3095         PR middle-end/44024
3096         * fold-const.c (tree_single_nonzero_warnv_p): Properly
3097         handle &FUNCTION_DECL.
3098
3099 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3100
3101         PR c/4784
3102         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
3103         structures and unions recursively.
3104         (detect_field_duplicates): Move duplicate detection with a hash to
3105         detect_field_duplicates_hash.  Always use a hash if anonymous
3106         structures or unions are present.
3107         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
3108         give errors.
3109
3110 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3111
3112         PR target/44046
3113         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
3114         detect Atom, Core 2 and Core i7.
3115
3116 2010-05-09  Richard Guenther  <rguenther@suse.de>
3117
3118         * gcc.c (store_arg): Handle temporary file deletion for
3119         joined arguments.
3120
3121 2010-05-09  Richard Guenther  <rguenther@suse.de>
3122
3123         PR middle-end/44043
3124         * ipa-inline.c (estimate_function_body_sizes): Return after
3125         disregarding inline limits.
3126
3127 2010-05-09  Richard Guenther  <rguenther@suse.de>
3128
3129         * gcc.c (store_arg): Revert last change.
3130
3131 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
3132
3133         PR middle-end/28685
3134         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
3135         (optimize_ops_list): Call it.
3136
3137 2010-05-08  Richard Guenther  <rguenther@suse.de>
3138
3139         PR tree-optimization/44030
3140         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
3141         NECESSARY flag if we propagate from a inserted expression.
3142
3143 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3144
3145         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
3146         domain types as equal if they are both PLACEHOLDER_EXPRs.
3147
3148 2010-05-08  Richard Guenther  <rguenther@suse.de>
3149
3150         * lto-wrapper.c (run_gcc): Remove linker output from
3151         command line for LTRANS invocation.
3152
3153 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3154
3155         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3156         lto-macho as lto_binary_reader.
3157         * target.h (struct gcc_target): New hooks lto_start and lto_end.
3158         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
3159         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
3160         in lto_start and lto_end calls.
3161         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
3162         magic numbers.
3163         (scan_prog_file): Update is_elf_or_coff call.
3164         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3165
3166         * collect2.c (main): Fix enum comparison.
3167
3168         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3169         Add prototypes.
3170         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3171         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
3172         and TARGET_ASM_LTO_END.
3173         * darwin.c: Include obstack.h and lto-streamer.h.
3174         (lto_section_names_offset, lto_section_names_obstack,
3175         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
3176         global variables.
3177         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
3178         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
3179         to a temporary file.
3180         (darwin_asm_lto_end): New function.  Restore asm_out_file.
3181         (darwin_asm_named_section): For LTO sections, replace the name with
3182         the offset of the section name in a string table, and build this
3183         table.
3184         (darwin_file_start): Initialize global vars for LTO support.
3185         (darwin_file_end): If output to asm_out_file was redirected, append it
3186         to the proper asm_out_file here.  Add the section names section.
3187
3188 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3189
3190         * c-pragma.c (pending_weak_d, pending_weak): New.
3191         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
3192         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
3193         handle_pragma_weak): Update the uses of pending_weaks.
3194
3195 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3196
3197         PR documentation/44016
3198         * doc/standards.texi (Standards): Link to unversioned
3199         cxx0x_status.html page.
3200
3201 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
3202
3203         PR target/43708
3204         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
3205         in addition to TREE_USED, to avoid "set but unused" warnings.
3206
3207 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3208
3209         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3210         (is_loop_prefetching_profitable): Do not insert prefetches
3211         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3212         times the prefetch ahead distance.
3213
3214 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3215
3216         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3217         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3218         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3219         the unroll_factor.
3220
3221 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3222
3223         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3224         a diagnostic info when the insn-to-mem ratio is too small.
3225
3226 2010-05-07  Richard Guenther <rguenther@suse.de>
3227
3228         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3229         the linker plugin.
3230         (store_arg): Queue temp_filename for deletion instead of
3231         the whole argument.
3232
3233 2010-05-07  Richard Guenther  <rguenther@suse.de>
3234
3235         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3236         (run_gcc): Handle LTRANS phase invocation.
3237         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3238
3239 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
3240
3241         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3242         this is also meaningful on PARM_DECLs and RESULT_DECLs.
3243
3244 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3245
3246         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3247
3248 2010-05-07  Richard Guenther  <rguenther@suse.de>
3249
3250         PR tree-optimization/44020
3251         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3252         code when PRE is not yet initialized.
3253
3254 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3255
3256         * config/mips/dbxmdebug.h: Remove.
3257         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3258
3259 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3260
3261         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3262         with null pointer and also warn about ordered comparison of zero with
3263         pointer if -Wextra.
3264
3265 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3266
3267         * graphite-blocking.c
3268         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3269         * graphite-clast-to-gimple.c
3270         (clast_to_gcc_expression): Same.
3271         (precision_for_value): Same.
3272         (precision_for_interval): Same.
3273         (gcc_type_for_interval): Same.
3274         (graphite_create_new_guard): Same.
3275         (compute_bounds_for_level): Same.
3276         (graphite_create_new_loop_guard): Same.
3277         * graphite-interchange.c
3278         (build_linearized_memory_access): Same.
3279         (pdr_stride_in_loop): Same.
3280         (memory_strides_in_loop_1): Same.
3281         (memory_strides_in_loop): Same.
3282         (extend_scattering): Same.
3283         (psct_scattering_dim_for_loop_depth): Same.
3284         (pbb_number_of_iterations): Same.
3285         * graphite-poly.h
3286         (debug_iteration_domains): Same.
3287         * graphite-ppl.c
3288         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3289         (ppl_set_inhomogeneous_gmp): Same.
3290         (ppl_strip_loop): Same.
3291         (ppl_lexico_compare_linear_expressions): Same.
3292         (ppl_read_polyhedron_matrix): Same.
3293         (ppl_max_for_le_pointset): Same.
3294         * graphite-ppl.h
3295         (ppl_read_polyhedron_matrix): Same.
3296         (tree_int_to_gmp): Same.
3297         (gmp_cst_to_tree): Same.
3298         (ppl_set_inhomogeneous): Same.
3299         (ppl_set_inhomogeneous_tree): Same.
3300         (ppl_set_coef): Same.
3301         (ppl_set_coef_tree): Same.
3302         * graphite-sese-to-poly.c
3303         (build_pbb_scattering_polyhedrons): Same.
3304         (build_scop_scattering): Same.
3305         (scan_tree_for_params_right_scev): Same.
3306         (scan_tree_for_params): Same.
3307         (find_params_in_bb): Same.
3308         (find_scop_parameters): Same.
3309         (add_upper_bounds_from_estimated_nit): Same.
3310         (build_loop_iteration_domains): Same.
3311         (add_condition_to_domain): Same.
3312         (pdr_add_memory_accesses): Same.
3313
3314 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3315
3316         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3317         CLooG's value_* macros to their respective mpz_* counterparts.
3318         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3319         (graphite_create_new_loop_guard): Same.
3320         * graphite-interchange.c (build_linearized_memory_access): Same.
3321         (pdr_stride_in_loop): Same.
3322         (memory_strides_in_loop_1): Same.
3323         (1st_interchange_profitable_p): Same.
3324         * graphite-poly.c (extend_scattering): Same.
3325         (psct_scattering_dim_for_loop_depth): Same.
3326         (pbb_number_of_iterations): Same.
3327         (pbb_number_of_iterations_at_time): Same.
3328         * graphite-poly.h (new_1st_loop): Same.
3329         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3330         (oppose_constraint): Same.
3331         (insert_constraint_into_matrix): Same.
3332         (ppl_set_inhomogeneous_gmp): Same.
3333         (ppl_set_coef_gmp): Same.
3334         (ppl_strip_loop): Same.
3335         (ppl_lexico_compare_linear_expressions): Same.
3336         (ppl_max_for_le_pointset): Same.
3337         (ppl_min_for_le_pointset): Same.
3338         (ppl_build_realtion): Same.
3339         * graphite-ppl.h (gmp_cst_to_tree): Same.
3340         (ppl_set_inhomogeneous): Same.
3341         (ppl_set_inhomogeneous_tree): Same.
3342         (ppl_set_coef): Same.
3343         (ppl_set_coef_tree): Same.
3344         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3345         (build_scop_scattering): Same.
3346         (add_value_to_dim): Same.
3347         (scan_tree_for_params_right_scev): Same.
3348         (scan_tree_for_params_int): Same.
3349         (scan_tree_for_params): Same.
3350         (find_params_in_bb): Same.
3351         (find_scop_parameters): Same.
3352         (add_upper_bounds_from_estimated_nit): Same.
3353         (build_loop_iteration_domains): Same.
3354         (create_linear_expr_from_tree): Same.
3355         (add_condition_to_domain): Same.
3356         (pdr_add_memory_accesses): Same.
3357
3358 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3359             Jason Merrill  <jason@redhat.com>
3360
3361         * c-common.c (c_common_reswords): Add nullptr.
3362         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3363         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3364         (gen_type_die_with_usage): Likewise.
3365         * dbxout.c (dbxout_type): Likewise.
3366         * sdbout.c (plain_type_1): Likewise.
3367
3368 2010-05-06  Jason Merrill  <jason@redhat.com>
3369
3370         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3371         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3372         ret appropriately.
3373         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3374
3375         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3376         stripping WITH_SIZE_EXPR.
3377         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3378         change.
3379
3380 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3381
3382         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3383         list of obsolete configurations.
3384         Disabled check for obsolete configurations.
3385         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3386         Removed support for previous versions.
3387         * config/mips/iris.h: Removed.
3388         * config/mips/iris5.h: Removed.
3389         * config/mips/iris6.h: Merged old iris.h contents.
3390         (TARGET_IRIX): Removed.
3391         (DRIVER_SELF_SPECS): Removed mabi=32.
3392         (IDENT_ASM_OP): Removed undef.
3393         (STARTFILE_SPEC): Removed mabi=32.
3394         (ENDFILE_SPEC): Likewise.
3395         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3396         (MACHINE_TYPE): Update for IRIX 6.5.
3397         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3398         TARGET_IRIX by TARGET_IRIX6.
3399         (mips_file_start): Likewise.
3400         (mips_output_external): Remove IRIX 5/6 O32 support.
3401         (mips_output_function_prologue): Likewise.
3402         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3403         TARGET_IRIX6.
3404         (TARGET_CPU_CPP_BUILTINS): Likewise.
3405         (TARGET_IRIX): Removed.
3406         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3407         (MULTILIB_DIRNAMES): Removed 32.
3408         (MULTILIB_OSDIRNAMES): Removed ../lib.
3409         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3410         (Specific, mips-sgi-irix5): Document removal.
3411         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3412         Remove references to older IRIX 6 releases and the O32 ABI.
3413
3414 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3415
3416         PR bootstrap/43994
3417         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3418         instead of DF_REF_REAL_REG.
3419
3420 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3421
3422         PR target/43888
3423         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3424         handling to still return true for x64 targets.
3425
3426 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3427
3428         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3429
3430 2010-05-06  Jan Hubicka  <jh@suse.cz>
3431
3432         PR tree-optimization/43791
3433         * ipa-inline.c (update_caller_keys): Remove bogus
3434         disregard_inline_limits check.
3435
3436 2010-05-06  Michael Matz  <matz@suse.de>
3437
3438         PR tree-optimization/43984
3439         * tree-ssa-pre.c (inserted_phi_names): Remove.
3440         (inserted_exprs): Change to bitmap.
3441         (create_expression_by_pieces): Set bits, don't append to vector.
3442         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3443         (eliminate): Don't look at inserted_phi_names, remove deleted
3444         insns from inserted_exprs.
3445         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3446         (init_pre, fini_pre): Allocate and free bitmaps.
3447         (execute_pre): Insert insns on edges before elimination.
3448
3449 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3450
3451         * tree.c (initializer_zerop): Handle STRING_CST.
3452
3453 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3454
3455         PR 40989
3456         * doc/invoke.texi (Wimplicit): Document as C only.
3457         * opts.c (common_handle_option): Add argument kind.
3458         (handle_option): Rename as read_cmdline_option. Factor out code to...
3459         (handle_option): ... here. New.
3460         (handle_options): Rename as read_cmdline_options.
3461         (decode_options): Update call.
3462         (set_option): Use option index instead of option pointer. Classify
3463         diagnostics correctly.
3464         (enable_warning_as_error): Call handle_option.
3465         * opts.h (set_option): Update declaration.
3466         (handle_option): Declare.
3467         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3468         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3469         * c-opts.c (set_Wimplicit): Delete.
3470         (c_family_lang_mask): New static constant.
3471         (c_common_handle_option): Add argument kind. Use handle_option
3472         instead of set_Wimplicit.
3473         (c_common_post_options): warn_implicit and warn_implicit_int
3474         are disabled by default.
3475         * c-common.c (warn_implicit): Do not define here.
3476         * c-common.h (warn_implicit): Do not declare here.
3477         (c_common_handle_option): Update declaration.
3478         * lto-opts.c (lto_reissue_options): Update call to set_option.
3479
3480 2010-05-06  Richard Guenther  <rguenther@suse.de>
3481
3482         PR tree-optimization/43571
3483         * domwalk.c (walk_dominator_tree): Walk the dominator
3484         sons in more optimal order.
3485
3486 2010-05-06  Richard Guenther  <rguenther@suse.de>
3487
3488         PR tree-optimization/43934
3489         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3490         (stmt_cost): Likewise.
3491         (extract_true_false_args_from_phi): New helper.
3492         (determine_max_movement): For PHI nodes verify we can hoist them
3493         and compute their cost.
3494         (determine_invariantness_stmt): Handle PHI nodes.
3495         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3496         if-converted form using COND_EXPRs.
3497         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3498         (tree_ssa_lim): Likewise.
3499         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3500         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3501
3502 2010-05-06  Richard Guenther  <rguenther@suse.de>
3503
3504         PR tree-optimization/43987
3505         * tree-ssa-structalias.c (could_have_pointers): For possibly
3506         address-taken variables force pointers to be recorded.
3507         (create_variable_info_for_1): Likewise.
3508         (push_fields_onto_fieldstack): Pass in wheter all fields
3509         must have pointers.
3510         (find_func_aliases): Query types instead of vars whether
3511         they contain pointers where appropriate.
3512
3513 2010-05-06  Jan Hubicka  <jh@suse.cz>
3514
3515         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3516         (record_reference, mark_address, mark_load, mark_store): Record
3517         references.
3518         (record_references_in_initializer): Update call of record_references.
3519         (rebuild_cgraph_edges): Remove all references before rebuiding.
3520         * cgraph.c (cgraph_create_node): Clear ref list.
3521         (cgraph_remove_node): Remove references.
3522         (dump_cgraph_node): Dump references.
3523         (cgraph_clone_node): Clone references.
3524         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3525         (struct cgraph_node, varpool_node): Add ref_lst.
3526         * ipa-ref.c: New file.
3527         * ipa-ref.h: New file.
3528         * ipa-ref-inline.h: New file.
3529         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3530         (referenced_from_other_partition_p): New function.
3531         (lto_output_varpool_node): Take set arugment; call
3532         referenced_from_other_partition.
3533         (lto_output_ref): New.
3534         (add_references): New.
3535         (output_refs): New.
3536         (output_cgraph): Compute boundary based on references; output refs.
3537         (output_varpool): Accept cgraph_node_set argument.
3538         (input_ref): New.
3539         (input_refs): New.
3540         (input_cgraph): Call input_refs.
3541         * lto-section-in.c (lto_section_name): Add refs.
3542         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3543         (ipa-ref.o): New file.
3544         * varpool.c (varpool_node): Clear ipa ref list.
3545         (varpool_remove_node): Remove references.
3546         (dump_varpool_node): Dump references.
3547         (varpool_assemble_decl): Only compile finalized ones.
3548         (varpool_extra_name_alias): Initialize ref list.
3549         * lto-streamer.c (lto-get_section_name): Add .refs section.
3550         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3551         (referenced_from_other_partition_p): Declared.
3552
3553 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3554
3555         PR tree-optimization/43901
3556         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3557         type is not NULL if it's transformation phase, and return
3558         FALSE if it's analysis.
3559         (vectorizable_conversion, vectorizable_operation,
3560         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3561
3562 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3563
3564         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3565         Delete.
3566         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3567         New define.
3568         * config/mips/mips-protos.h
3569         (mips_small_register_classes_for_mode_p): Delete prototype.
3570
3571 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3572
3573         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3574         * config/arm/arm.c (multiple_operation_profitable_p,
3575         compute_offset_order): New static functions.
3576         (load_multiple_sequence, store_multiple_sequence): Use them.
3577         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3578         memory offsets, not register numbers.
3579         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3580
3581 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3582
3583         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3584         (get_pending_sizes, put_pending_size, put_pending_sizes):
3585         Update the uses of pending_sizes.
3586         * c-decl.c (store_parm_decls): Likewise.
3587         * c-tree.h (struct c_arg_info): Likewise.
3588         * tree.h: Update the prototype for get_pending_sizes and
3589         put_pending_sizes.
3590
3591 2010-05-05  Jason Merrill  <jason@redhat.com>
3592
3593         PR debug/43370
3594         * c-common.c (handle_aligned_attribute): Respect
3595         ATTR_FLAG_TYPE_IN_PLACE.
3596
3597         PR testsuite/43758
3598         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3599         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3600         (TARGET_INITIALIZER): Use it.
3601         * c-common.c (attribute_takes_identifier_p): Call it.
3602         * c-common.h: Update prototype.
3603         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3604         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3605
3606 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3607
3608         PR debug/43950
3609         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3610         DW_ID_down_case for Fortran compilation units.
3611
3612 2010-05-05  Jan Hubicka  <jh@suse.cz>
3613
3614         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3615         handle aliases.
3616
3617 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3618
3619         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3620         a variable-sized RESULT_DECL.
3621
3622 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3623
3624         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3625
3626 2010-05-05  Jason Merrill  <jason@redhat.com>
3627
3628         PR c++/43787
3629         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3630         returns GS_OK.
3631         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3632
3633 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3634             Jakub Jelinek  <jakub@redhat.com>
3635
3636         PR debug/43478
3637         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3638         (dead_debug_init, dead_debug_finish): New functions.
3639         (dead_debug_add, dead_debug_insert_before): Likewise.
3640         (df_note_bb_compute): Initialize a dead_debug object, add dead
3641         debug uses to it, insert debug bind insns before death insns,
3642         reset debug insns that refer to pending uses at the end.
3643         * rtl.h (make_debug_expr_from_rtl): New prototype.
3644         * varasm.c (make_debug_expr_from_rtl): New function.
3645
3646 2010-05-05  Jan Hubicka  <jh@suse.cz>
3647
3648         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3649         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3650         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3651         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3652         lto_varpool_encoder_encode_initializer_p,
3653         lto_set_varpool_encoder_encode_initializer): New functions.
3654         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3655         call output_varpool.
3656         (input_varpool_node): Do not always set analyzed.
3657         (input_cgraph_1): Return vector of cgraph nodes.
3658         (input_varpool_1): Return vector of varpools.
3659         (input_cgraph): Free the vectors.
3660         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3661         output only initializers needed.
3662         (lto_output): Only call output_cgraph.
3663         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3664         * lto-section-out.c (lto_new_out_decl_state): Initialize
3665         state->varpool_node_encoder.
3666         * lto-streamer.h (lto_varpool_encoder_d): New.
3667         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3668         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3669         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3670         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3671         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3672         Declare.
3673         (output_varpool, input_varpool): Remove declarations.
3674
3675 2010-05-05  Jan Hubicka  <jh@suse.cz>
3676
3677         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3678         with body can prevail.
3679
3680 2010-05-05  Jan Hubicka  <jh@suse.cz>
3681
3682         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3683         size.
3684
3685 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3686
3687         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3688
3689         * gengtype.h (erro_at_line): Constify pos argument.
3690
3691         * gengtype.c: Include hashtab.h.
3692         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3693         (error_at_line): Constify pos argument.
3694         (do_typedef): Initialize p->opt field.
3695         (get_file_gtfilename): Fix comment typo.
3696         (struct walk_type_data): Constify line field.
3697         (get_output_file_for_structure): New function.
3698         (write_local_func_for_structure): Constify orig_s argument.
3699         Use get_output_file_for_structure.
3700         (write_func_for_structure): Use get_output_file_for_structure.
3701         (INDENT): New define.
3702         (dump_pair, dump_type, dump_type_list, dump_typekind)
3703         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3704         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3705         functions.
3706         (seen_types): New variable.
3707         (main): New variable do_dump.  Process "-d" command line option.
3708         Call dump_everything if dump requested.
3709
3710 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3711
3712         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3713         in a temporary instead of invoking the macro multiple times.
3714         (track_expr_p): Likewise.
3715
3716 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3717
3718         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3719         per new semantics.
3720         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3721         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3722         conditions for printing notes.
3723         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3724         true, update documentation.
3725         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3726
3727 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3728
3729         PR c/43981
3730         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3731         on dimen.
3732
3733 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3734
3735         PR target/43799
3736         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3737         (*sse_prologue_save_insn1): Likewise.
3738         (SSE prologue save splitter): Likewise.
3739
3740 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3741
3742         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3743         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3744         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3745         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3746         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3747         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3748         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3749
3750 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3751
3752         * tree-sra.c (build_access_from_expr_1): The first parameter type
3753         changed to simple tree.
3754         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3755         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3756         renamed as well.
3757         (build_accesses_from_assign): Removed all parameters except for a
3758         simple gimple statement.  Now returns a simple bool.
3759         (scan_function): All non-analysis parts moved to separate functions
3760         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3761         parameters and updated both callers.
3762         (sra_modify_expr): Removed parameter data.
3763         (sra_modify_function_body): New function.
3764         (perform_intra_sra): Call sra_modify_function_body to modify the
3765         function body.
3766         (replace_removed_params_ssa_names): Parameter data changed into
3767         adjustments vector.
3768         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3769         changed the parameter dont_convert to convert with the opposite
3770         meaning.
3771         (sra_ipa_modify_assign): Parameter data changed into adjustments
3772         vector, return value changed to bool.
3773         (ipa_sra_modify_function_body): New function.
3774         (sra_ipa_reset_debug_stmts): Updated a comment.
3775         (modify_function): Use ipa_sra_modify_function_body to modify function
3776         body.
3777
3778 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3779
3780         PR middle-end/43671
3781         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3782         (canon_true_dependence): Likewise.
3783         (write_dependence_p): Likewise.
3784
3785 2010-05-04  Jan Hubicka  <jh@suse.cz>
3786
3787         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3788         * cgraphbuild.c: Include ipa-utils.h
3789         (record_reference_ctx): New struct.
3790         (record_reference): Simplify to work on initializers; not statements.
3791         (mark_address, mark_load, mark_store): New.
3792         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3793         walk PHI nodes too.
3794         (record_references_in_initializer): Update use of record_reference.
3795         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3796         walk PHI nodes too.
3797
3798 2010-05-04  Jan Hubicka  <jh@suse.cz>
3799
3800         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3801         node will be removed anyway.
3802         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3803         relink aliases of node into prevailing node.
3804         * varpool.c (varpool_remove_node): Remove aliases properly;
3805         when removing node, remove all its aliases too; remove DECL_INITIAL
3806         of removed node; ggc_free the varpool node.
3807
3808 2010-05-04  Richard Guenther  <rguenther@suse.de>
3809
3810         PR tree-optimization/43879
3811         * tree-ssa-structalias.c (alias_get_name): Use
3812         DECL_ASSEMBLER_NAME if available.
3813         (create_function_info_for): Return the varinfo node.
3814         (ipa_pta_execute): Associate same-body aliases and extra names
3815         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3816
3817 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3818
3819         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3820
3821 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3822
3823         PR bootstrap/43964
3824         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3825         only if HONOR_REG_ALLOC_ORDER is not defined.
3826
3827 2010-05-04  Richard Guenther  <rguenther@suse.de>
3828
3829         PR tree-optimization/43949
3830         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3831         TRUNC_MOD_EXPR.
3832
3833 2010-04-26  Jason Merrill  <jason@redhat.com>
3834
3835         * c.opt (-fstrict-enums): New.
3836         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3837
3838 2010-05-03  David Ung <davidu@mips.com>
3839             James E. Wilson  <wilson@codesourcery.com>
3840
3841         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3842         emit the trap instruction before the divide for TUNE_74K.
3843
3844 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3845
3846         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3847         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3848         based on the above, for new target hook.
3849
3850         * hooks.c (hook_bool_mode_true): New generic hook.
3851         * hooks.h (hook_bool_mode_true): Add prototype.
3852
3853         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3854         target hook.
3855         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3856         target hook, set to hook_bool_mode_false.
3857         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3858         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3859         with targetm.small_register_classes_for_mode_p.
3860         (find_reusable_reload): Likewise.
3861         (combine_reloads): Likewise.
3862         * reload1.c (reload_as_needed): Likewise.
3863         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3864         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3865         dead_or_predicable): Likewise.
3866         * regmove.c (optimize_reg_copy_1): Likewise.
3867         * calls.c (prepare_call_address): Likewise.
3868         (precompute_register_parameters): Likewise.
3869
3870         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3871         hook definition.
3872         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3873         implementation of the hook that considers all register classes
3874         small except for SH64.
3875         (sh_override_options): Use the new hook.
3876         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3877         Add prototype.
3878
3879         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3880         hook definition.
3881         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3882         implementation of the hook that considers all register classes
3883         small for THUMB1.
3884         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3885         Add prototype.
3886
3887         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3888         hook definition.
3889         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3890         implementation of the hook that considers all register classes
3891         small for MIPS16.
3892         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3893         Add prototype.
3894
3895         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3896         hook definition.
3897         * config/m32c/m32c.h: Likewise.
3898         * config/pdp11/pdp11.h: Likewise.
3899         * config/avr/avr.h: Likewise.
3900         * config/xtensa/xtensa.h: Likewise.
3901         * config/m68hc11/m68hc11.h: Likewise.
3902         * config/mn10300/mn10300.h: Likewise.
3903         * config/mcore/mcore.h: Likewise.
3904         * config/h8300/h8300.h: Likewise.
3905         * config/bfin/bfin.h: Likewise.
3906
3907         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3908         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3909
3910 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3911
3912         * double-int.h (tree_to_double_int): Remove macro.
3913         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3914         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3915         (tree_to_double_int): New function.
3916         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3917         Move ...
3918         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3919
3920 2010-05-03  Richard Guenther  <rguenther@suse.de>
3921
3922         PR tree-optimization/43971
3923         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3924         constraints in the !flag_delete_null_pointer_checks case.
3925
3926 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3927
3928         PR debug/43972
3929         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3930         result mode matches original rtl mode.
3931
3932 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3933
3934         PR target/43888
3935         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3936
3937 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3938
3939         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3940         when processing flag options.
3941
3942 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3943
3944         * gcov-iov.c (main): Change format string placeholder
3945         from %#08x to 0x%08x.
3946         * genchecksum.c (dosum): Change format string placeholder
3947         from %#02x to 0x%02x.
3948
3949 2010-05-02  Richard Guenther  <rguenther@suse.de>
3950
3951         PR tree-optimization/43879
3952         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3953
3954 2010-05-02  Bruno Haible  <bruno@clisp.org>
3955
3956         * doc/extend.texi (Function Attributes): Fix a typo.
3957
3958 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3959
3960         Revert:
3961         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3962         placeholder from 0x%x to %#x.
3963         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3964         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3965         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3966         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3967         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3968         * config/i386/i386.c (ix86_target_string): Ditto.
3969         * config/i386/i386.c (output_pic_addr_const): Ditto.
3970         (print_operand): Ditto.
3971
3972 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3973
3974         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3975         placeholder from 0x%x to %#x.
3976         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3977         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3978         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3979         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3980         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3981         * optc-gen.awk: Ditto.
3982         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3983         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3984         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3985         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3986
3987 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3988
3989         * target.h (struct calls): Add function_value_regno_p field.
3990         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3991         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3992         * targhooks.c (default_function_value_regno_p): New function.
3993         * targhooks.h (default_function_value_regno_p): Declare function.
3994         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3995         * builtins.c. (apply_result_size): (Ditto.).
3996         * combine.c. (likely_spilled_retval_p): (Ditto.).
3997         * mode-switching.c. Include 'target.h'.
3998         (create_pre_exit): Use function_value_regno_p hook.
3999         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
4000         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
4001         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
4002
4003         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
4004         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
4005         (ix86_function_value_regno_p): Declare as static, change argument
4006         type to const unsigned int.
4007         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
4008
4009 2010-05-01  Richard Guenther  <rguenther@suse.de>
4010
4011         PR tree-optimization/43949
4012         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
4013         types.
4014         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
4015
4016 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
4017
4018         * rtl.h (CONST_DOUBLE_P): Define.
4019         (rtx_to_double_int): Declare.
4020         * emit-rtl.c (rtx_to_double_int): New function.
4021         * dwarf2out.c (insert_double): New function.
4022         (loc_descriptor, add_const_value_attribute): Clean up, use
4023         rtx_to_double_int and insert_double functions.
4024
4025 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
4026
4027         * doc/extend.texi (Inline): Add missing return keyword to examples.
4028         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
4029         "command-line".
4030
4031 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4032
4033         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
4034         the variable part of the offset as well.  Use highest_pow2_factor for
4035         all alignment checks.
4036
4037 2010-04-30  Richard Guenther  <rguenther@suse.de>
4038
4039         PR tree-optimization/43879
4040         * tree-ssa-structalias.c (type_could_have_pointers): Functions
4041         can have pointers.
4042
4043 2010-04-30  Jan Hubicka  <jh@suse.cz>
4044
4045         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
4046         varpool.
4047         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
4048
4049 2010-04-30  Jan Hubicka  <jh@suse.cz>
4050
4051         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
4052         New.
4053         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
4054         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
4055         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
4056         cgraph_node_set_needs_ltrans_p): Remove.
4057
4058 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4059
4060         * sdbout.c: Include vec.h, do not include varray.h.
4061         (deferred_global_decls, sdbout_global_decl,
4062         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
4063         * toplev.c: Do not include varray.h.
4064         (dump_memory_report): Do not dump VARRAY statistics.
4065         * gengtype.c (open_base_file): Ignore varray.h.
4066         * Makefile.in: Update for abovementioned changes.
4067         Remove all traces of varray.c and varray.h.
4068         * varray.c: Remove file.
4069         * varray.h: Remove file.
4070
4071 2010-04-30  Jan Hubicka  <jh@suse.cz>
4072
4073         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
4074         references.
4075
4076 2010-04-30  Jan Hubicka  <jh@suse.cz>
4077
4078         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
4079         needed.
4080
4081 2010-04-30  Richard Guenther  <rguenther@suse.de>
4082
4083         * tree-ssa-structalias.c (get_constraint_for_1): Generate
4084         constraints for CONSTRUCTOR.
4085
4086 2010-04-30  Richard Guenther  <rguenther@suse.de>
4087
4088         PR lto/43946
4089         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
4090         first after all lowering passes.
4091
4092 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4093
4094         * toplev.c: Include varray.h for statistics dumping.
4095         * tree.h: Do not declare varray_head_tag.
4096         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
4097         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
4098         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
4099         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
4100         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
4101         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
4102         c-common.c, c-common.h, reg-stack.c, basic-block.h,
4103         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
4104         include varray.h.
4105         * Makefile.in: Update for abovementioned changes.
4106
4107 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
4108
4109         PR debug/43942
4110         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
4111
4112 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
4113
4114         * config/picochip/picochip.c (picochip_legitimize_address): Define.
4115         Use this function to do machine-specific conversion.
4116         (picochip_legitimize_reload_address): Likewise.
4117         (picochip_legitimate_address_p): Check valid base register only if
4118         strict.
4119         (picochip_check_conditional_copy): Check for modw only if opnd is
4120         register.
4121         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
4122         to call the function in c.
4123         * config/picochip/picochip-protos.h
4124         (picochip_legitimize_reload_address): Define.
4125         * config/picochip/picochip.md (supported_compare1): Define.
4126
4127 2010-04-30  Jan Hubicka  <jh@suse.cz>
4128
4129         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
4130         (cgraph_global_info): Remove inlined.
4131         (LTO_cgraph_tag_names): Remove.
4132         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
4133         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
4134         simplify cgraph tags and document.
4135         (lto_output_node): Use only LTO_cgraph_unavail_node and
4136         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
4137         for_functions_valid, global info, process and output flags.
4138         (input_overwrite_node): Initialize estimated stack size and
4139         estimated growth.  Do not read flags we no longer store.
4140         (input_node): Likewise do not read info no longer stored.
4141         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
4142         flag.
4143
4144 2010-04-30  Richard Guenther  <rguenther@suse.de>
4145
4146         PR tree-optimization/43879
4147         * tree-ssa-structalias.c (get_constraint_for_1): Properly
4148         handle non-zero initializers.
4149
4150 2010-04-30  Richard Guenther  <rguenther@suse.de>
4151
4152         * builtins.c (fold_builtin_1): Delete free (0).
4153
4154 2010-04-29  Jan Hubicka  <jh@suse.cz>
4155
4156         * gengtype.c (open_base_files): Add lto-streamer.h
4157         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
4158         (pass_ipa_cp): GGC collect.
4159         * toplev. (compile_file): Do not output symbols.
4160         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
4161         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
4162         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
4163         * lto-section-in.c: Include ggc.h
4164         (lto_new_in_decl_state): Alloc in GGC.
4165         (lto_delete_in_decl_state): Likewise.
4166         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
4167         Collect.
4168
4169 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4170
4171         PR target/42895
4172         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
4173         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
4174         (HONOR_REG_ALLOC_ORDER): Describe new macro.
4175         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
4176         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
4177         account only if HONOR_REG_ALLOC_ORDER is not defined.
4178         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
4179         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
4180
4181 2010-04-29  Jon Grant  <04@jguk.org>
4182
4183         * collect2.c (vflag): Change type from int to bool.
4184         (debug): Likewise.
4185         (helpflag): New global bool.
4186         (main): Set vflag and debug with boolean, not integer truth values.
4187         Accept new "--help" option and output usage text if found.
4188         * collect2.h (vflag): Update prototype.
4189         (debug): Likewise.
4190
4191 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4192
4193         PR bootstrap/43936
4194         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
4195
4196 2010-04-29  Richard Guenther  <rguenther@suse.de>
4197
4198         PR bootstrap/43935
4199         * plugin.h (invoke_plugin_callbacks): Annotate arguments
4200         with ATTRIBUTE_UNUSED.
4201
4202 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4203
4204         PR target/43921
4205         * config/i386/i386.c (get_some_local_dynamic_name): Replace
4206         INSN_P with NONDEBUG_INSN_P.
4207         (distance_non_agu_define): Likewise.
4208         (distance_agu_use): Likewise.
4209
4210 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4211
4212         From Dominique d'Humieres <dominiq@lps.ens.fr>
4213         PR bootstrap/43858
4214         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
4215         test_set.
4216
4217 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
4218
4219         * plugin.h (invoke_plugin_callbacks): New inline function.
4220         * plugin.c (flag_plugin_added): New global flag.
4221         (add_new_plugin): Initialize above flag.
4222         (invoke_plugin_callbacks): Rename to ...
4223         (invoke_plugin_callbacks_full): ... this.
4224
4225 2010-04-28  Jan Hubicka  <jh@suse.cz>
4226
4227         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
4228         (lto_varpool_replace_node): New.
4229         (lto_symtab_resolve_symbols): Resolve varpool nodes.
4230         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
4231         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
4232         * cgraph.h (varpool_node_ptr): New type.
4233         (varpool_node_ptr): New vector.
4234         (varpool_node_set_def): New structure.
4235         (varpool_node_set): New type.
4236         (varpool_node_set): New vector.
4237         (varpool_node_set_element_def): New structure.
4238         (varpool_node_set_element, const_varpool_node_set_element): New types.
4239         (varpool_node_set_iterator): New type.
4240         (varpool_node): Add prev pointers, add used_from_other_partition,
4241         in_other_partition.
4242         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
4243         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
4244         varpool_get_node, varpool_remove_node): Declare.
4245         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
4246         varpool_node_set_size): New inlines.
4247         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
4248         * tree-pass.h (varpool_node_set_def): Forward declare.
4249         (ipa_opt_pass_d): Summary writting takes vnode sets too.
4250         (ipa_write_optimization_summaries): Update prototype.
4251         * ipa-cp.c (ipcp_write_summary): Update.
4252         * ipa-reference.c (ipa_reference_write_summary): Update.
4253         * lto-cgraph.c (lto_output_varpool_node): New static function.
4254         (output_varpool): New function.
4255         (input_varpool_node): New static function.
4256         (input_varpool_1): New function.
4257         (input_cgraph): Input varpool.
4258         * ipa-pure-const.c (pure_const_write_summary): Update.
4259         * lto-streamer-out.c (lto_output): Update, output varpool too.
4260         (write_global_stream): Kill WPA hack.
4261         (produce_asm_for_decls): Update.
4262         (output_alias_pair_p): Handle variables.
4263         (output_unreferenced_globals): Output only needed partition of varpool.
4264         * ipa-inline.c (inline_write_summary): Update.
4265         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
4266         cgraph.
4267         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
4268         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
4269         varpool_node_set_new, varpool_node_set_add,
4270         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
4271         debug_varpool_node_set): New functions.
4272         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4273         (execute_one_pass): Process new decls too.
4274         (ipa_write_summaries_2): Pass around vsets.
4275         (ipa_write_summaries_1): Likewise.
4276         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4277         to add.
4278         (ipa_write_optimization_summaries_1): Pass around vsets.
4279         (ipa_write_optimization_summaries): Likewise.
4280         * varpool.c (varpool_get_node): New.
4281         (varpool_node): Update doubly linked lists.
4282         (varpool_remove_node): New.
4283         (dump_varpool_node): More dumping.
4284         (varpool_enqueue_needed_node): Update doubly linked lists.
4285         (decide_is_variable_needed): Kill ltrans hack.
4286         (varpool_finalize_decl): Kill lto hack.
4287         (varpool_assemble_decl): Skip decls in other partitions.
4288         (varpool_assemble_pending_decls): Update doubly linkes lists.
4289         (varpool_empty_needed_queue): Likewise.
4290         (varpool_extra_name_alias): Likewise.
4291         * lto-streamer.c (lto_get_section_name): Add vars section.
4292         * lto-streamer.h (lto_section_type): Update.
4293         (output_varpool, input_varpool): Declare.
4294
4295 2010-04-28  Mike Stump  <mikestump@comcast.net>
4296
4297         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4298
4299 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4300
4301         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4302         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4303         (lto_input_ts_type_tree_pointers): Likewise.
4304         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4305         (lto_output_ts_type_tree_pointers): Likewise.
4306
4307 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4308
4309         Uniquization of constants at the Tree level
4310         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4311         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4312         bit to the end.
4313         (tree_output_constant_def): Declare.
4314         * gimplify.c (gimplify_init_constructor): When using block copy, first
4315         uniquize the constant constructor on the RHS.
4316         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4317         DECL_IN_CONSTANT_POOL flag.
4318         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4319         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4320         constant pool.
4321         (assemble_variable): Deal with symbols belonging to the tree constant
4322         pool.
4323         (get_constant_section): Add ALIGN parameter and simplify.
4324         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4325         (assemble_constant_contents): Use the expression of the VAR_DECL.
4326         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4327         (tree_output_constant_def): New global function.
4328         (mark_constant): Use the expression of the VAR_DECL.
4329         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4330         its expression.
4331         (output_object_block): Likewise and assemble the expression.
4332
4333 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4334
4335         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4336         hash_tree, eq_tree): New tree hash table.
4337         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4338         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4339         lto_orig_address_remove): Reimplement.
4340
4341 2010-04-28  Xinliang David Li  <davidxl@google.com>
4342
4343         PR c/42643
4344         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4345         (compute_uninit_opnds_pos): New function.
4346         (is_non_loop_exit_postdominating): New function.
4347         (compute_control_dep_chain): New function.
4348         (find_pdom): New function.
4349         (convert_control_dep_chain_into_preds): New function.
4350         (find_predicates): New function.
4351         (find_control_equiv_block): New function.
4352         (collect_phi_def_edges): New function.
4353         (find_def_preds): New function.
4354         (find_dom): New function.
4355         (dump_predicates): New function.
4356         (get_cmp_code): New function.
4357         (is_value_included_in): New function.
4358         (find_matching_predicate_in_rest_chains): New function.
4359         (use_pred_not_overlap_with_undef_path_pred): New function.
4360         (is_use_properly_guarded): New function.
4361         (normalize_cond_1): New function.
4362         (is_and_or_or): New function.
4363         (normalize_cond): New function.
4364         (is_gcond_subset_of): New function.
4365         (is_subset_of_any): New function.
4366         (is_or_set_subset_of): New function.
4367         (is_and_set_subset_of): New function.
4368         (is_norm_cond_subset_of): New function.
4369         (is_pred_expr_subset_of): New function.
4370         (is_pred_chain_subset_of): New function.
4371         (is_included_in): New function.
4372         (is_superset_of): New function.
4373         (find_uninit_use): New function.
4374         (warn_uninitialized_phi): New function.
4375         (compute_possibly_undefined_names): New function.
4376         (ssa_undefined_value_p): New function.
4377         (execute_late_warn_uninitialized): New function.
4378         * tree-ssa.c (ssa_undefined_value_p): Removed.
4379         (warn_uninit): Changed to extern.
4380         (warn_uninitialized_phi): Removed.
4381         (warn_uninitialized_vars): Changed to extern.
4382         (execute_late_warn_uninitialized): Removed
4383         * tree-flow.h: Add new prototypes.
4384         * timevar.def: Add new time variable.
4385         * Makefile.in: Add new build file.
4386
4387 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4388
4389         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4390         type if available.
4391
4392 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4393
4394         PR target/22224
4395         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4396
4397 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4398
4399         * cgraph.h (struct cgraph_node): New field indirect_calls.
4400         (struct cgraph_indirect_call_info): New type.
4401         (struct cgraph_edge): Removed field indirect_call. New fields
4402         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4403         (cgraph_create_indirect_edge): Declare.
4404         (cgraph_make_edge_direct): Likewise.
4405         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4406         * ipa-prop.h (struct ipa_param_call_note): Removed.
4407         (struct ipa_node_params): Removed field param_calls.
4408         (ipa_create_all_structures_for_iinln): Declare.
4409         * cgraph.c: Described indirect edges and uids in initial comment.
4410         (cgraph_add_edge_to_call_site_hash): New function.
4411         (cgraph_edge): Search also among the indirect edges, use
4412         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4413         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4414         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4415         site hash.
4416         (initialize_inline_failed): Assign a reason to indirect edges.
4417         (cgraph_create_edge_1): New function.
4418         (cgraph_create_edge): Moved some functionality to
4419         cgraph_create_edge_1.
4420         (cgraph_create_indirect_edge): New function.
4421         (cgraph_edge_remove_callee): Add an assert checking for
4422         non-indirectness.
4423         (cgraph_edge_remove_caller): Special-case indirect edges.
4424         (cgraph_remove_edge): Likewise.
4425         (cgraph_set_edge_callee): New function.
4426         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4427         (cgraph_make_edge_direct): New function.
4428         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4429         the declaration of the call statement matches.
4430         (cgraph_node_remove_callees): Special-case indirect edges.
4431         (cgraph_clone_edge): Likewise.
4432         (cgraph_clone_node): Clone also the indirect edges.
4433         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4434         indirect_call, dump count of indirect_calls edges.
4435         * ipa-prop.c (iinlining_processed_edges): New variable.
4436         (ipa_note_param_call): Create indirect edges instead of
4437         creating notes.  New parameter node.
4438         (ipa_analyze_call_uses): New parameter node, pass it on to
4439         ipa_note_param_call.
4440         (ipa_analyze_stmt_uses): Likewise.
4441         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4442         (print_edge_addition_message): Work on edges rather than on notes.
4443         (update_call_notes_after_inlining): Likewise, renamed to
4444         update_indirect_edges_after_inlining.
4445         (ipa_create_all_structures_for_iinln): New function.
4446         (ipa_free_node_params_substructures): Do not free notes.
4447         (ipa_edge_duplication_hook): Propagate bits within
4448         iinlining_processed_edges bitmap.
4449         (ipa_node_duplication_hook): Do not duplicate notes.
4450         (free_all_ipa_structures_after_ipa_cp): Renamed to
4451         ipa_free_all_structures_after_ipa_cp.
4452         (free_all_ipa_structures_after_iinln): Renamed to
4453         ipa_free_all_structures_after_iinln.
4454         (ipa_write_param_call_note): Removed.
4455         (ipa_read_param_call_note): Removed.
4456         (ipa_write_indirect_edge_info): New function.
4457         (ipa_read_indirect_edge_info): Likewise.
4458         (ipa_write_node_info): Do not stream notes, do stream information
4459         in indirect edges.
4460         (ipa_read_node_info): Likewise.
4461         (lto_ipa_fixup_call_notes): Removed.
4462         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4463         * ipa-inline.c (pass_ipa_inline): Likewise.
4464         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4465         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4466         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4467         is_gimple_call.
4468         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4469         edges.
4470         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4471         (output_cgraph): Stream also indirect edges.
4472         (lto_output_edge): Added capability to stream indirect edges.
4473         (input_edge): Likewise.
4474         (input_cgraph_1): Likewise.
4475         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4476         of indirect edges.
4477
4478 2010-04-28  Richard Guenther  <rguenther@suse.de>
4479
4480         PR tree-optimization/43879
4481         PR tree-optimization/43909
4482         * tree-ssa-structalias.c (struct variable_info): Add
4483         only_restrict_pointers flag.
4484         (new_var_info): Initialize it.  Increment stats.total_vars here.
4485         (create_function_info_for): Do not increment stats.total_vars here.
4486         (get_function_part_constraint): Fix build with C++.
4487         (insert_into_field_list): Remove.
4488         (push_fields_onto_fieldstack): Properly merge fields.
4489         (create_variable_info_for): Split and simplify.
4490         (create_variable_info_for_1): New piece.
4491         (intra_create_variable_infos): Properly make restrict constraints
4492         from parameters.
4493
4494 2010-04-28  Richard Guenther  <rguenther@suse.de>
4495
4496         PR c++/43880
4497         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4498
4499 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4500             Jan Hubicka <hubicka@ucw.cz>
4501
4502         * doc/invoke.texi (-Wsuggest-attribute=const,
4503         -Wsuggest-attribute=pure): Document.
4504         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4505         (function_always_visible_to_compiler_p,
4506         suggest_attribute, warn_function_pure, warn_function_const):
4507         New functions.
4508         (check_call): Improve debug info.
4509         (analyze_function): Do not check availability.
4510         (add_new_function): Check availability.
4511         (propagate): Output warnings.
4512         (skip_function_for_local_pure_const): New function.
4513         (local_pure_const): Use it; output warnings.
4514         * common.opt (Wsuggest-attribute=const,
4515         Wsuggest-attribute=pure): New.
4516
4517 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4518
4519         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4520         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4521         or DW_CFA_def_cfa_offset{,_sf}.
4522
4523 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4524
4525         * tree.h: Fix truncated long macros.
4526
4527 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4528
4529         * collect2.c (TARGET_64BIT): Redefine to target's default.
4530         * tlink.c: Likewise.
4531         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4532         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4533         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4534         for underscoring __USER_LABEL_PREFIX__.
4535         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4536         (SUB_LINK_ENTRY32): New.
4537         (SUB_LINK_ENTRY64): New.
4538         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4539         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4540         (SUB_LINK_ENTRY64): New.
4541         (SUB_LINK_ENTRY): New.
4542         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4543         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4544         x64 target is choosen.
4545         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4546         * configure: Regenerated.
4547         * configure.ac (leading-mingw64-underscores): Option added.
4548
4549 2010-04-27  Jan Hubicka  <jh@suse.cz>
4550
4551         * doc/invoke.texi (-fipa-profile): Document.
4552         * opts.c (decode_options): Enable ipa-profile at -O1.
4553         * timevar.def (TV_IPA_PROFILE): Define.
4554         * common.opt (fipa-profile): Add.
4555         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4556         flag for clones.
4557         (cgraph_propagate_frequency): Handle only local ones.
4558         * tree-pass.h (pass_ipa_profile): Declare.
4559         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4560         (pass_ipa_profile): Use TV_IPA_PROFILE.
4561         * ipa.c (ipa_profile): New function.
4562         (gate_ipa_profile): Likewise.
4563         (pass_ipa_profile): New global variable.
4564         * passes.c (pass_ipa_profile): New.
4565
4566 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4567
4568         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4569
4570 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4571
4572         PR middle-end/43812
4573         * ipa.c (dissolve_same_comdat_group_list): New function.
4574         (function_and_variable_visibility): Call
4575         dissolve_same_comdat_group_list when comdat group contains external or
4576         newly local nodes.
4577         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4578         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4579
4580 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4581
4582         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4583         (const_hash_1) <VECTOR_CST>: New case.
4584         (compare_constant) <VECTOR_CST>: Likewise.
4585         <ADDR_EXPR>: Deal with LABEL_REFs.
4586         (copy_constant) <VECTOR_CST>: New case.
4587
4588 2010-04-27  Jan Hubicka  <jh@suse.cz>
4589
4590         * cgraph.c (cgraph_propagate_frequency): New function.
4591         * cgraph.h (cgraph_propagate_frequency): Declare.
4592         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4593         cgraph_propagate_frequency.
4594
4595 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4596
4597         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4598
4599 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4600
4601         PR target/40657
4602         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4603         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4604         here to determine which regs to push and how much stack to reserve.
4605
4606 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4607
4608         * doc/gimple.texi (gimple_statement_with_ops): Remove
4609         addresses_taken field.
4610         (gimple_statement_with_memory_ops): Likewise.
4611
4612 2010-04-27  Jan Hubicka  <jh@suse.cz>
4613
4614         * tree-inline.c (eni_inlining_weights): Remove.
4615         (estimate_num_insns): Special case more builtins.
4616
4617 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4618
4619         PR c/32207
4620         * c-typeck.c (build_binary_op): Move forward check for comparison
4621         pointer with null pointer constant and adjust the diagnostic message.
4622
4623 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4624
4625         PR lto/42776
4626         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4627         binutils supports extended .section directive needed by LTO, or
4628         warn if older binutils found.
4629         (LTO_BINARY_READER): New AC_SUBST'd variable.
4630         (LTO_USE_LIBELF): Likewise.
4631         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4632         variable.
4633         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4634         (LTO_USE_LIBELF): Likewise.
4635         * configure: Regenerate.
4636
4637         * collect2.c (is_elf): Rename from this ...
4638         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4639          object files in addition to ELF-formatted ones.
4640         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4641         symbol to be prefixed or not by an extra underscore.
4642
4643         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4644         * config/i386/winnt.c: Also #include lto-streamer.h
4645         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4646         LTO named sections.
4647         (i386_pe_asm_output_aligned_decl_common): Add comment.
4648         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4649
4650 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4651
4652         PR target/43889
4653         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4654         Add missing earlyclobber for second alternative.
4655
4656 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4657
4658         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4659         bits for artificial defs at the top of the block.
4660         * fwprop.c (single_def_use_enter_block): Don't call it.
4661
4662 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4663
4664         PR 43715
4665         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4666         instead of "$gcc_cv_objdump -T".
4667         Use "-undefined dynamic_lookup" on darwin.
4668         * gcc/configure: Regenerate.
4669
4670 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4671
4672         PR c/43893
4673         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4674
4675 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4676
4677         * c-parser.c (struct c_token): Move location field up.
4678         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4679         (struct c_declspecs): Convert typespec_word, storage_class, and
4680         default_int_p into bitfields.
4681         (struct c_declarator): Move loc field up.
4682
4683 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4684
4685         * cfgloop.h (struct loop): Move can_be_parallel field up.
4686         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4687         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4688         down.
4689         (struct iv_cand): Convert pos field into a bitfield.
4690         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4691         field up.
4692         (struct _stmt_vec_info): Shuffle fields for better packing.
4693
4694 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4695
4696         * varasm.c (IN_NAMED_SECTION): Remove guard.
4697         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4698         (IN_NAMED_SECTION_P): ...this.
4699         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4700         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4701
4702 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4703
4704         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4705         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4706         of shadowing it.  Fix comments.
4707
4708 2010-04-26  Jan Hubicka  <jh@suse.cz>
4709
4710         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4711         (cgraph_clone_node): Copy function frequency.
4712         * cgraph.h (node_frequency): New enum
4713         (struct cgraph_node): Add.
4714         * final.c (rest_of_clean_state): Update.
4715         * lto-cgraph.c (lto_output_node): Output node frequency.
4716         (input_overwrite_node): Input node frequency.
4717         * tre-ssa-loop-ivopts (computation_cost): Update.
4718         * lto-streamer-out.c (output_function): Do not output function
4719         frequency.
4720         * predict.c (maybe_hot_frequency_p): Update and handle functions
4721         executed once.
4722         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4723         attribute lookup.
4724         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4725         (compute_function_frequency): Set noreturn functions to be executed
4726         once.
4727         (choose_function_section): Update.
4728         * lto-streamer-in.c (input_function): Do not input function frequency.
4729         * function.c (allocate_struct_function): Do not initialize function
4730         frequency.
4731         * function.h (function_frequency): Remove.
4732         (struct function): Remove function frequency.
4733         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4734         (try_update): Update.
4735         * tree-inline.c (initialize_cfun): Do not update function frequency.
4736         * passes.c (pass_init_dump_file): Update.
4737         * i386.c (ix86_compute_frame_layout): Update.
4738         (ix86_pad_returns): Update.
4739
4740 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4741
4742         PR tree-optimization/43833
4743         * tree-vrp.c (range_int_cst_p): New.
4744         (range_int_cst_singleton_p): New.
4745         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4746         when both operands are constants.  Use range_int_cst_p in
4747         BIT_IOR_EXPR case.
4748
4749 2010-04-26  Jan Hubicka  <jh@suse.cz>
4750
4751         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4752
4753 2010-04-26  Richard Guenther  <rguenther@suse.de>
4754
4755         PR lto/43080
4756         * gimple.c (gimple_decl_printable_name): Deal gracefully
4757         with a NULL DECL_NAME.
4758
4759 2010-04-26  Richard Guenther  <rguenther@suse.de>
4760
4761         PR lto/42425
4762         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4763         if emitting debug information and it is either a function
4764         or a namespace decl.
4765
4766 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4767
4768         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4769         determine if the statement is vectorizable, and a macro to access it.
4770         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4771         Skip statements that can't be vectorized. If the analysis fails,
4772         mark the statement as unvectorizable if vectorizing basic block.
4773         (vect_compute_data_refs_alignment): Likewise.
4774         (vect_verify_datarefs_alignment): Skip statements marked as
4775         unvectorizable. Add print.
4776         (vect_analyze_group_access): Skip statements that can't be
4777         vectorized. If the analysis fails, mark the statement as
4778         unvectorizable if vectorizing basic block.
4779         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4780         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4781         generated stmts for SLP.
4782         (new_stmt_vec_info): Initialize the new field.
4783         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4784         statements marked as unvectorizable.
4785
4786 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4787
4788         * c-common.c (flag_isoc1x): New.
4789         (flag_isoc99): Update comment.
4790         * c-common.h (flag_isoc1x): New.
4791         (flag_isoc99): Update comment.
4792         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4793         __<type>_DECIMAL_DIG__.
4794         * c-opts.c (set_std_c1x): New.
4795         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4796         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4797         * c.opt (-std=c1x, -std=gnu1x): New options.
4798         * doc/cpp.texi: Mention -std=c1x.
4799         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4800         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4801         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4802         * doc/standards.texi: Mention C1X.
4803         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4804         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4805         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4806         Define for C1X.
4807
4808 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4809
4810         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4811         placeholder from 0x%x to %#x.
4812         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4813         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4814         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4815         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4816         * config/i386/i386.c (ix86_target_string): Ditto.
4817         (output_pic_addr_const): Ditto.
4818         (print_operand): Ditto.
4819
4820 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4821
4822         * combine.c (find_split_point): Add third argument.  Use it
4823         to find nested multiply-accumulate instructions.  Adjust calls.
4824         (try_combine): Adjust call to find_split_point.
4825
4826 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4827
4828         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4829
4830 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4831
4832         PR tree-optimization/41442
4833         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4834         (fold_binary_loc): Call it.
4835
4836 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4837
4838         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4839         * opts.c (common_handle_option): Allow disabling it.
4840         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4841
4842 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4843
4844         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4845         between modes if both types are integral.
4846
4847 2010-04-23  Richard Guenther  <rguenther@suse.de>
4848
4849         PR tree-optimization/43572
4850         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4851
4852 2010-04-23  Richard Guenther  <rguenther@suse.de>
4853
4854         PR lto/43455
4855         * tree-inline.c (tree_can_inline_p): Also check compatibility
4856         of return types.
4857
4858 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4859
4860         PR tree-optimization/43846
4861         * tree-sra.c (struct access): New flag grp_assignment_read.
4862         (build_accesses_from_assign): Set grp_assignment_read.
4863         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4864         (enum mark_read_status): New type.
4865         (analyze_access_subtree): Propagate grp_assignment_read, create
4866         accesses also if both direct_read and root->grp_assignment_read.
4867
4868 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4869
4870         PR middle-end/43835
4871         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4872         function does not have type attributes.
4873
4874 2010-04-23  Richard Guenther  <rguenther@suse.de>
4875
4876         PR lto/42653
4877         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4878         of FUNCTION_DECLs.
4879
4880 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4881
4882         * sese.h (create_if_region_on_edge): Remove.
4883
4884         * sese.c (create_if_region_on_edge): Make static.
4885
4886         * tree-inline.c: Do not include ggc.h.
4887
4888         * expr.c: Do not include ggc.h.
4889
4890         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4891         dependencies.
4892
4893 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4894
4895         PR target/43744
4896         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4897         in the middle of insns for casesi_worker_2.
4898
4899 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4900
4901         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4902
4903 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4904
4905         PR tree-optimization/43842
4906         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4907         loop unrolling in update of exit phis. Fix comment.
4908         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4909         least two reduction statements in the loop before starting SLP
4910         analysis.
4911
4912 2010-04-22  Nick Clifton  <nickc@redhat.com>
4913
4914         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4915
4916 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4917
4918         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4919         to simplify a + ~a.
4920
4921 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4922
4923         * tree-parloops.c (loop_parallel_p): New argument
4924         parloop_obstack.  Pass it down.
4925         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4926         pass it down, free it.
4927
4928         * tree-loop-linear.c (linear_transform_loops): Pass down
4929         lambda_obstack.
4930
4931         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4932         of type struct obstack *.
4933
4934         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4935         scratch_obstack.  Initialize it, pass down, free it.
4936
4937         * lambda.h (lambda_loop_new): Remove.
4938         (lambda_matrix_new, lambda_matrix_inverse)
4939         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4940         argument of type struct obstack *.
4941
4942         * lambda-trans.c (lambda_trans_matrix_new): New argument
4943         lambda_obstack.  Pass it down, use obstack allocation for ret.
4944         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4945         it down.
4946
4947         * lambda-mat.c (lambda_matrix_get_column)
4948         (lambda_matrix_project_to_null): Remove.
4949         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4950         allocation for mat.
4951         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4952         lambda_obstack.
4953
4954         * lambda-code.c (lambda_loop_new): New function.
4955         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4956         (lambda_compute_auxillary_space, lambda_compute_target_space)
4957         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4958         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4959         (build_access_matrix): New argument lambda_obstack.  Use obstack
4960         allocation for am.
4961         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4962         argument lambda_obstack.  Pass it down.
4963
4964 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4965
4966         * optabs.h (expand_widening_mult): Declare.
4967
4968 2010-04-22  Richard Guenther  <rguenther@suse.de>
4969
4970         PR tree-optimization/43845
4971         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4972         lookup the CALL_EXPR function and arguments.
4973
4974 2010-04-22  Nick Clifton  <nickc@redhat.com>
4975
4976         * config/stormy16/stormy16.c
4977         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4978         * config/stormy16/stormy16.h: Tidy up formatting.
4979         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4980         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4981         (ineqbranchsi): Delete pattern.
4982         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4983         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4984         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4985         stormy16-lib2-ucmpsi2.c.
4986
4987 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4988
4989         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4990         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4991         extra set merge_set_noclobber, and use it to relax the final test
4992         slightly.
4993         * df.h (df_simulate_find_noclobber_defs): Declare.
4994         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4995         conditional defs.
4996         (df_simulate_find_noclobber_defs): New function.
4997
4998 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4999
5000         * config/i386/i386.md: Use {} around multi-line preparation statements.
5001
5002 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5003
5004         * c-tree.h (push_init_level, pop_init_level, set_init_index)
5005         (process_init_element): New argument of type struct obstack *.
5006
5007         * c-typeck.c (push_init_level, pop_init_level, set_designator)
5008         (set_init_index, set_init_label, set_nonincremental_init)
5009         (set_nonincremental_init_from_string, find_init_member)
5010         (output_init_element, output_pending_init_elements)
5011         (process_init_element): New argument braced_init_obstack.  Pass it
5012         down.
5013         (push_range_stack, add_pending_init): New argument
5014         braced_init_obstack.  Use obstack allocation.
5015
5016         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
5017         braced_init_obstack.  Pass it down.
5018         (c_parser_braced_init): New variables ret, braced_init_obstack.
5019         Initialize obstack, pass it down and finally free it.
5020
5021 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
5022
5023         PR middle-end/29274
5024         * tree-pass.h (pass_optimize_widening_mul): Declare.
5025         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
5026         gate_optimize_widening_mul): New static functions.
5027         (pass_optimize_widening_mul): New.
5028         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
5029         <case MULT_EXPR>: Remove support for widening multiplies.
5030         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
5031         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
5032         simplify_gen_unary rather than directly building extensions.
5033         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
5034         WIDEN_MULT_EXPR.
5035         * expmed.c (expand_widening_mult): New function.
5036         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
5037
5038 2010-04-21  Jan Hubicka  <jh@suse.cz>
5039
5040         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
5041         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
5042         * lto-wpa-fixup.c: Remove.
5043         * Makefile.in (lto-wpa-fixup.o): Remove.
5044         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
5045         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
5046         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
5047
5048 2010-04-21  Jan Hubicka  <jh@suse.cz>
5049
5050         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
5051         add write_optimization_summary, read_optimization_summary.
5052         (ipa_write_summaries_of_cgraph_node_set): Remove.
5053         (ipa_write_optimization_summaries): Declare.
5054         (ipa_read_optimization_summaries): Declare.
5055         * ipa-cp.c (pass_ipa_cp): Update.
5056         * ipa-reference.c (pass_ipa_reference): Update.
5057         * ipa-pure-const.c (pass_ipa_pure_const): Update.
5058         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
5059         Update.
5060         * ipa-inline.c (pass_ipa_inline): Update.
5061         * ipa.c (pass_ipa_whole_program): Update.
5062         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
5063         * passes.c (ipa_write_summaries_1): Do not test wpa.
5064         (ipa_write_optimization_summaries_1): New.
5065         (ipa_write_optimization_summaries): New.
5066         (ipa_read_summaries): Do not test ltrans.
5067         (ipa_read_optimization_summaries_1): New.
5068         (ipa_read_optimization_summaries): New.
5069
5070 2010-04-21  Jan Hubicka  <jh@suse.cz>
5071
5072         * lto-cgraph.c (lto_output_node): Do not output comdat groups
5073         for boundary nodes.
5074         (output_cgraph): Do not arrange comdat groups for boundary nodes.
5075
5076 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5077
5078         PR debug/40040
5079         * dwarf2out.c (add_name_and_src_coords_attributes): Add
5080         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
5081
5082 2010-04-21  Jan Hubicka  <jh@suse.cz>
5083
5084         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
5085
5086 2010-04-21  Jan Hubicka  <jh@suse.cz>
5087
5088         * varpool.c (decide_is_variable_needed): Variable is always needed
5089         during ltrans.
5090
5091 2010-04-21  Jan Hubicka  <jh@suse.cz>
5092
5093         * opts.c (decode_options): Enable pure-const pass for whopr.
5094
5095 2010-04-21  Jan Hubicka  <jh@suse.cz>
5096
5097         * cgraph.c (dump_cgraph_node): Dump also assembler name.
5098         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
5099         at WPA dumping.
5100         (cgraph_decide_inlining): Do not expect callee to be removed in all
5101         cases.
5102
5103 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
5104
5105         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
5106
5107 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5108
5109         * config/i386/i386.md (x86_shrd): Add athlon_decode and
5110         amdfam10_decode attributes.
5111
5112 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5113
5114         PR middle-end/43570
5115         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
5116         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
5117         (lower_copyprivate_clauses): Use private var in outer
5118         context instead of original var.  Make sure the types
5119         are correct for VLAs.
5120
5121 2010-04-21  Richard Guenther  <rguenther@suse.de>
5122
5123         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
5124         to non-pointer objects.
5125
5126 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5127
5128         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
5129         last chain entry if it starts with the still current label.
5130         (add_location_or_const_value_attribute): Check that
5131         loc_list->first->next is NULL instead of comparing ->first with ->last.
5132         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
5133         to add_var_loc_to_decl.
5134
5135         * dwarf2out.c (output_call_frame_info): For dw_cie_version
5136         >= 4 add also address size and segment size fields into CIE header.
5137
5138         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
5139         long as address size is the same as sizeof (void *) and
5140         segment size is 0.
5141         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
5142         address size or segment size is unexpected, return DW_EH_PE_omit.
5143         (classify_object_over_fdes): If get_cie_encoding returned
5144         DW_EH_PE_omit, return -1.
5145         (init_object): If classify_object_over_fdes returned -1,
5146         pretend there were no FDEs at all.
5147
5148 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5149
5150         * config/i386/i386.md (bswap<mode>2): Macroize expander from
5151         bswap{si,di}2 using SWI48 mode iterator.
5152         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
5153         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
5154         set modrm attribute of bswap insn to 0 and remove length attribute.
5155         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
5156         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
5157         set mode attribute to <MODE> and remove length attribute.
5158
5159 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
5160
5161         PR rtl-optimization/43520
5162         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
5163         zero available registers.
5164
5165 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5166
5167         * builtins.c (fold_builtin_cproj): Fold more cases.
5168
5169 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5170
5171         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
5172         (fold_builtin_1): Fold builtin cproj.
5173         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
5174         Use ATTR_CONST_NOTHROW_LIST.
5175
5176 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
5177
5178         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
5179         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
5180         ffsi2_no_cmove for !TARGET_CMOVE.
5181         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
5182         (ffssi2): Remove expander.
5183         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
5184         mode iterator.
5185         (ctz<mode>2): Ditto from ctz{si,di}2.
5186         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
5187         mode iterator.
5188         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
5189         mode iterator.
5190
5191 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5192
5193         * dwarf2out.c (AT_linkage_name): Define.
5194         (clone_as_declaration): Handle DW_AT_linkage_name.
5195         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
5196         of DW_AT_MIPS_linkage_name.
5197         (move_linkage_attr): Likewise.
5198         (dwarf2out_finish): Likewise.
5199
5200 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
5201
5202         PR middle-end/41952
5203         * fold-const.c (fold_comparison): New folding rule.
5204
5205 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
5206
5207         * double-int.h (double_int_setbit): Declare.
5208         * double-int.c (double_int_setbit): New function.
5209         * rtl.h (immed_double_int_const): Declare.
5210         * emit-rtl.c (immed_double_int_const): New function.
5211         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
5212         and immed_double_int_const functions.
5213         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
5214         expand_copysign_bit):  (Ditto.).
5215         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
5216         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
5217         * dojump.c (prefer_and_bit_test): (Ditto.).
5218         * expr.c (convert_modes, reduce_to_bit_field_precision,
5219         const_vector_from_tree): (Ditto.).
5220         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5221
5222 2010-04-20  Jan Hubicka  <jh@suse.cz>
5223
5224         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
5225         (dump_cgraph_node): Dump new flags.
5226         * cgraph.h (struct cgraph_node): Add flags
5227         reachable_from_other_partition and in_other_partition.
5228         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
5229         other partition can not be removed.
5230         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
5231         the other partition must be output; silence sanity checking on
5232         leaking functions bodies from other paritition.
5233         * lto-cgraph.c (reachable_from_other_partition_p): New function.
5234         (lto_output_node): Output new flags; do not sanity check that inline
5235         clones are output; drop lto_forced_extern_inline_p code; do not mock
5236         visibility flags at partition boundaries.
5237         (add_node_to): New function.
5238         (output_cgraph): Use it to sort functions so masters appear before
5239         clones.
5240         (input_overwrite_node): Input new flags.
5241         * passes.c (ipa_write_summaries): Do not call
5242         lto_new_extern_inline_states.
5243         * lto-section-out.c (forced_extern_inline,
5244         lto_new_extern_inline_states lto_delete_extern_inline_states,
5245         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
5246         * lto-streamer.h (lto_new_extern_inline_states,
5247         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
5248         lto_forced_extern_inline_p): Kill.
5249
5250 2010-04-20  Richard Guenther  <rguenther@suse.de>
5251
5252         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
5253         from vars that can have pointers.
5254         (process_constraint): Dump useless constraints.
5255
5256 2010-04-20  Richard Guenther  <rguenther@suse.de>
5257
5258         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
5259         (dump_sa_points_to_info): Remove asserts.
5260         (init_base_vars): nothing_id isn't an escape point nor does it
5261         have pointers.
5262
5263 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5264
5265         * tree.h (TYPE_REF_IS_RVALUE): Define.
5266         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
5267         should_move_die_to_comdat, prune_unused_types_walk): Handle
5268         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
5269         (modified_type_die, gen_reference_type_die): Emit
5270         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
5271         if TYPE_REF_IS_RVALUE and -gdwarf-4.
5272
5273 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5274
5275         PR target/43635
5276         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5277         calls for -fpic -m31 if they have been sibcall optimized.
5278
5279 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5280
5281         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5282         ar.lc fixed and call-used.
5283
5284         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5285
5286 2010-04-19  Jan Hubicka  <jh@suse.cz>
5287
5288         * opts.c (decode_options): Disable whpr incompatible passes.
5289         * lto/lto.c (lto_1_to_1_map): Skip clones.
5290         (read_cgraph_and_symbols): Do not mark everything as needed.
5291         (do_whole_program_analysis): Do map only after optimizing;
5292         set proper cgraph_state; use passmanager.
5293
5294 2010-04-19  DJ Delorie  <dj@redhat.com>
5295
5296         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5297         POINTER_PLUS_EXPR and fix them.
5298
5299 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5300
5301         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5302         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5303         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5304         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5305         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5306         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5307         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5308         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5309         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5310         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5311         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5312
5313 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5314
5315         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5316         (check_cond_move_block): Likewise.
5317         (cond_move_process_if_block): Likewise.
5318         (noce_find_if_block): Improve formatting.
5319         (find_if_header): Pass 0 to memset and tweak conditions.
5320         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5321
5322 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5323
5324         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5325         for -gdwarf-4.
5326
5327         PR middle-end/43337
5328         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5329         with non-local decl doesn't need chain.
5330
5331 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5332
5333         * ira-color.c (allocno_reload_assign): Avoid accumulating
5334         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5335
5336 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5337
5338         * gimple.h (create_tmp_reg): Declare.
5339         * gimplify.c (create_tmp_reg): New function.
5340         (gimplify_return_expr): Use create_tmp_reg.
5341         (gimplify_omp_atomic): Likewise.
5342         (gimple_regimplify_operands): Likewise.
5343         * tree-dfa.c (make_rename_temp): Likewise.
5344         * tree-predcom.c (predcom_tmp_var): Likewise.
5345         (reassociate_to_the_same_stmt): Likewise.
5346         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5347         (get_replaced_param_substitute): Likewise.
5348         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5349         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5350         * tree-ssa-pre.c (get_representative_for): Likewise.
5351         (create_expression_by_pieces): Likewise.
5352         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5353         (create_tailcall_accumulator): Likewise.
5354
5355 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5356
5357         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5358         new_stmt.
5359         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5360
5361 2010-04-19  Richard Guenther  <rguenther@suse.de>
5362
5363         PR tree-optimization/43796
5364         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5365         from SCEV in the lattice.
5366         (vrp_visit_phi_node): Dump change.
5367
5368 2010-04-19  Richard Guenther  <rguenther@suse.de>
5369
5370         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5371         * configure: Re-generated.
5372
5373 2010-04-19  Richard Guenther  <rguenther@suse.de>
5374
5375         PR tree-optimization/43783
5376         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5377         constant ARRAY_REF operands two and three if possible.
5378
5379 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5380
5381         PR target/43766
5382         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5383
5384 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5385
5386         PR target/43662
5387         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5388
5389 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5390
5391         PR tree-optimization/37027
5392         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5393         and macro to access it.
5394         (vectorizable_reduction): Add argument.
5395         (vect_get_slp_defs): Likewise.
5396         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5397         statements for possible use in SLP.
5398         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5399         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5400         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5401         add new argument.
5402         (vectorizable_reduction): Likewise.
5403         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5404         vect_get_slp_defs.
5405         (vectorizable_type_demotion, vectorizable_type_promotion,
5406         vectorizable_store): Likewise.
5407         (vect_analyze_stmt): Update call to vectorizable_reduction.
5408         (vect_transform_stmt): Likewise.
5409         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5410         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5411         from different interleaving chains in same node.
5412         (vect_slp_rearrange_stmts): New function.
5413         (vect_supported_load_permutation_p): Allow load permutations for
5414         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5415         inside SLP nodes if necessary.
5416         (vect_analyze_slp_instance): Handle reductions.
5417         (vect_analyze_slp): Try to build SLP instances originating from groups
5418         of reductions.
5419         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5420         (vect_get_constant_vectors): Create initial vectors for reductions
5421         according to reduction code. Add new argument.
5422         (vect_get_slp_defs): Add new argument, pass it to
5423         vect_get_constant_vectors.
5424         (vect_schedule_slp_instance): Remove SLP tree root statements.
5425
5426 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5427
5428         * tree.h (ENUM_IS_SCOPED): Define.
5429         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5430         for ENUM_IS_SCOPED enums.
5431
5432 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5433
5434         * fold-const.c (fold_comparison): Use ssizetype.
5435         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5436         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5437         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5438         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5439
5440         * tree.h (initialize_sizetypes): Remove parameter.
5441         (build_common_tree_nodes): Remove second parameter.
5442         * stor-layout.c (initialize_sizetypes): Remove parameter.
5443         Always create an unsigned type.
5444         (set_sizetype): Assert that the passed type is unsigned and simplify.
5445         * tree.c (build_common_tree_nodes): Remove second parameter.
5446         Adjust call to initialize_sizetypes.
5447         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5448         build_common_tree_nodes.
5449
5450 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5451
5452         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5453
5454 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5455
5456         PR tree-optimization/43771
5457         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5458         load permutation doesn't have gaps.
5459
5460 2010-04-18  Jan Hubicka  <jh@suse.cz>
5461
5462         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5463         (sse_prologue_save_insn expander): Use new pattern.
5464         (sse_prologue_save_insn1): New pattern and splitter.
5465         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5466         blocks.
5467         * i386.c (setup_incoming_varargs_64): Do not compute jump
5468         destination here.
5469         (ix86_gimplify_va_arg): Update alignment needed.
5470         (ix86_local_alignment): Do not align all local arrays to 128bit.
5471
5472 2010-04-17  Jan Hubicka  <jh@suse.cz>
5473
5474         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5475
5476 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5477
5478         * arm.md (negdi2): Remove redundant code to force values into a
5479         register.
5480
5481 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5482
5483         * arm/bpabi.S: Add EABI alignment attributes to objects.
5484         * arm/bpabi-v6m.S: Likewise.
5485         * arm/crti.asm: Likewise.
5486         * arm/crtn.asm: Likewise.
5487         * arm/lib1funcs.asm: Likewise.
5488         * arm/libunwind.S: Likewise.
5489
5490 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5491
5492         * arm-protos.h (tune_params): New structure.
5493         * arm.c (current_tune): New variable.
5494         (arm_constant_limit): Delete.
5495         (struct processors): Add pointer to the tune parameters.
5496         (arm_slowmul_tune): New tuning option.
5497         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5498         (all_cores): Adjust to pick up the tuning model.
5499         (arm_constant_limit): New function.
5500         (arm_override_options): Select the appropriate tuning model.  Delete
5501         initialization of arm_const_limit.
5502         (arm_split_constant): Use the new constant-limit model.
5503         (arm_rtx_costs): Pick up the current tuning model.
5504         * arm.md (is_strongarm, is_xscale): Delete.
5505         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5506         for Xscale variant architectures.
5507         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5508
5509 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5510
5511         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5512         can_shift.
5513         (arm_rtx_costs_1): Remove unused variable extra_cost.
5514         (arm_unwind_emit_set): Use variable offset.
5515         (thumb1_output_casesi): Remove unused variable flags.
5516
5517 2010-04-16  Jeff Law  <law@redhat.com>
5518
5519         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5520         needing assignment rather than doing a two-phase assignment.  Remove
5521         unused variable 'm'.
5522
5523 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5524
5525         PR bootstrap/43767
5526         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5527
5528 2010-04-16  Doug Kwan  <dougkwan@google.com>
5529
5530         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5531         (next_operand_entry_id): New static variable.
5532         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5533         (add_to_ops_vec): Assigned unique ID to operand entry.
5534         (struct oecount_s): New field ID.
5535         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5536         (undistribute_ops_list): Assign unique IDs to oecounts.
5537         (init_reassoc): reset next_operand_entry_id.
5538
5539 2010-04-16  Doug Kwan  <dougkwan@google.com>
5540
5541         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5542         missing left parenthesis.
5543
5544 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5545
5546         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5547         *btdi_rex64 using SWI48 mode iterator.
5548         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5549         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5550         *jcc_btdi_mask_rex64.
5551
5552 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5553
5554         * double-int.h (tree_to_double_int): Convert to macro.
5555         * double-int.c (tree_to_double_int): Remove.
5556
5557 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5558
5559         PR debug/43762
5560         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5561         with want_address 2 and in case a single element list might be
5562         possible, call it again with want_address 0.
5563
5564 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5565
5566         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5567         case 'W' print operands for HI mode.
5568         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5569         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5570         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5571         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5572
5573         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5574
5575         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5576         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5577         #xx:3 and #xx:4 mode.
5578
5579         * config/h8300/h8300.md (inverted load with HImode dest): Add
5580         support for H8300SX.
5581
5582         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5583         satisfy 'U' constraint.
5584
5585 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5586
5587         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5588         * configure: Regenerate.
5589         * config.in: Regenerate.
5590         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5591         works.
5592
5593 2010-04-16  Richard Guenther  <rguenther@suse.de>
5594
5595         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5596         (struct tree_decl_common): ... here.
5597         (DECL_PT_UID): Adjust.
5598         (SET_DECL_PT_UID): Likewise.
5599         (DECL_PT_UID_SET_P): Likewise.
5600
5601 2010-04-16  Richard Guenther  <rguenther@suse.de>
5602
5603         PR tree-optimization/43572
5604         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5605         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5606         * tree-flow.h (is_call_clobbered): Remove.
5607         * tree-flow-inline.h (is_call_clobbered): Likewise.
5608         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5609         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5610         (execute_return_slot_opt): Adjust.
5611         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5612         check for call clobbered vars here.
5613         (find_tail_calls): Move tailcall verification to the
5614         proper place.
5615
5616 2010-04-16  Diego Novillo  <dnovillo@google.com>
5617
5618         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5619
5620 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5621
5622         PR target/40603
5623         * config/arm/arm.md (cbranchqi4): New pattern.
5624         * config/arm/predicates.md (const0_operand,
5625         cbranchqi4_comparison_operator): New predicates.
5626
5627 2010-04-16  Richard Guenther  <rguenther@suse.de>
5628
5629         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5630         (dump_gimple_stmt): Likewise.
5631
5632 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5633
5634         * recog.h (struct recog_data): New field is_operator.
5635         (struct insn_operand_data): New field is_operator.
5636         * recog.c (extract_insn): Set recog_data.is_operator.
5637         * genoutput.c (output_operand_data): Emit code to set the
5638         is_operator field.
5639         * reload.c (find_reloads): Use it rather than testing for an
5640         empty constraint string.
5641
5642         PR target/41514
5643         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5644         If the previous insn is a cbranchsi4_insn with the same arguments,
5645         omit the compare instruction.
5646
5647         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5648         register, inputs must be low registers and we need a low register
5649         scratch.  Handle alternative 2 like alternative 3.
5650
5651 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5652
5653         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5654         don't call get_addr on both.  If one expression is a VALUE and
5655         the other a REG, check VALUE's locs if the REG isn't among them.
5656
5657 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5658
5659         * config/sh/sh.h (sh_frame_pointer_required): New function.
5660         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5661         (flag_omit_frame_pointer) Set.
5662         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5663         (rounded_frame_size): Adjust size with outgoing_args_size.
5664         (sh_set_return_address): Must return from stack pointer.
5665         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5666         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5667         (ACCUMULATE_OUTGOING_ARGS): Define.
5668         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5669         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5670
5671 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5672
5673         PR target/43471
5674         * config/sh/sh.c (sh_legitimize_reload_address): Use
5675         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5676         Remove a unneeded check for offset_base.
5677
5678 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5679
5680         * configure: Regenerated.
5681
5682 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5683
5684         * config/s390/s390.c (s390_call_save_register_used): Switch back
5685         to HARD_REGNO_NREGS.
5686
5687 2010-04-15  Richard Guenther  <rguenther@suse.de>
5688
5689         * alias.c (alias_set_subset_of): Handle alias-set zero
5690         child properly.
5691
5692 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5693             Julian Brown  <julian@codesourcery.com>
5694
5695         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5696         alternatives according to use of high and low regs.
5697         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5698         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5699         optimizing for size on Thumb-2.
5700
5701 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5702
5703         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5704
5705 2010-04-15  Richard Guenther  <rguenther@suse.de>
5706
5707         * tree-ssa-structalias.c (struct variable_info): Add
5708         is_fn_info flag.
5709         (new_var_info): Initialize it.
5710         (dump_constraints): Support printing last added constraints.
5711         (debug_constraints): Adjust.
5712         (dump_constraint_graph): Likewise.
5713         (make_heapvar_for): Check for NULL cfun.
5714         (get_function_part_constraint): New function.
5715         (get_fi_for_callee): Likewise.
5716         (find_func_aliases): Properly implement IPA PTA constraints.
5717         (process_ipa_clobber): New function.
5718         (find_func_clobbers): Likewise.
5719         (insert_into_field_list_sorted): Remove.
5720         (create_function_info_for): Properly allocate vars for IPA mode.
5721         Do not use insert_into_field_list_sorted.
5722         (create_variable_info_for): Properly generate constraints for
5723         global vars in IPA mode.
5724         (dump_solution_for_var): Always dump the solution.
5725         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5726         (find_what_var_points_to): Adjust.
5727         (pt_solution_set): Change.
5728         (pt_solution_ior_into): New function.
5729         (pt_solution_empty_p): Export.
5730         (pt_solution_includes_global): Adjust.
5731         (pt_solution_includes_1): Likewise.
5732         (pt_solutions_intersect_1): Likewise.
5733         (dump_sa_points_to_info): Check some invariants.
5734         (solve_constraints): Move constraint dumping ...
5735         (compute_points_to_sets): ... here.
5736         (ipa_pta_execute): ... and here.
5737         (compute_may_aliases): Do not re-compute points-to info
5738         locally if IPA info is available.
5739         (ipa_escaped_pt): New global var.
5740         (ipa_pta_execute): Properly implement IPA PTA.
5741         * tree-into-ssa.c (dump_decl_set): Support dumping
5742         decls not in referenced-vars.
5743         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5744         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5745         (dump_points_to_solution): Likewise.
5746         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5747         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5748         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5749         (copy_decl_to_var): Copy DECL_PT_UID.
5750         (copy_result_decl_to_var): Likewise.
5751         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5752         (copy_node_stat): Copy it.
5753         * tree.h (DECL_PT_UID): New macro.
5754         (SET_DECL_PT_UID): Likewise.
5755         (DECL_PT_UID_SET_P): Likewise.
5756         (struct tree_decl_minimal): Add pt_uid member.
5757         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5758         (pt_solution_empty_p): Declare.
5759         (pt_solution_set): Adjust.
5760         (ipa_escaped_pt): Declare.
5761         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5762         * gimple-pretty-print.c (pp_points_to_solution): New function.
5763         (dump_gimple_call): Dump call clobber/use information.
5764         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5765         * tree-pass.h (TDF_ALIAS): New dump option.
5766         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5767         * doc/invoke.texi (-fipa-pta): Update documentation.
5768
5769 2010-04-15  Richard Guenther  <rguenther@suse.de>
5770
5771         * Makefile.in (OBJS-common): Add gimple-fold.o.
5772         (gimple-fold.o): New rule.
5773         * tree.h (maybe_fold_offset_to_reference,
5774         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5775         prototypes ...
5776         * gimple.h: ... here.
5777         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5778         may_propagate_address_into_dereference): Move prototypes ...
5779         * gimple.h: ... here.
5780         * tree-ssa-ccp.c (get_symbol_constant_value,
5781         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5782         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5783         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5784         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5785         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5786         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5787         gimplify_and_update_call_from_tree): Move ...
5788         * gimple-fold.c: ... here.  New file.
5789         (ccp_fold_builtin): Rename to ...
5790         (gimple_fold_builtin): ... this.
5791         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5792
5793 2010-04-15  Richard Guenther  <rguenther@suse.de>
5794
5795         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5796         fit_double_type, force_fit_type_double, add_double_with_sign,
5797         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5798         lrotate_double, rrotate_double, div_and_round_double): Move ...
5799         * double-int.c: ... here.
5800         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5801         add_double, neg_double, mul_double_with_sign, mul_double,
5802         lshift_double, rshift_double, lrotate_double, rrotate_double,
5803         div_and_round_double): Move prototypes ...
5804         * double-int.h: ... here.
5805
5806 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5807
5808         PR target/43742
5809         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5810         matching constraints to ensure inputs match the output.
5811
5812 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5813
5814         PR target/43742
5815         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5816         in an input-only operand.
5817
5818 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5819
5820         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5821         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5822         (double_int_negative_p): Convert to static inline function.
5823         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5824         (double_int_negative_p): Remove.
5825         * tree.h (lshift_double, rshift_double):
5826         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5827         * fold-const.c (fold_convert_const_int_from_real,
5828         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5829         (lshift_double): Change type of arith argument to bool.
5830         (rshift_double): Change type of arith argument to bool. Correct
5831         comment.
5832         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5833
5834 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5835
5836         PR target/21803
5837         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5838         at the start and end of the then/else blocks, and omit them from the
5839         conversion.
5840         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5841         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5842         (flow_find_head_matching_sequence): New function.
5843         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5844         * basic-block.h (flow_find_cross_jump,
5845         flow_find_head_matching_sequence): Declare functions.
5846
5847 2010-04-14  Jason Merrill  <jason@redhat.com>
5848
5849         PR c++/36625
5850         * c-common.c (attribute_takes_identifier_p): New fn.
5851         * c-common.h: Declare it.
5852
5853 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5854
5855         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5856         splitter condition.
5857         (*udivmod<mode>4): Ditto.
5858
5859 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5860
5861         * config/i386/i386.md (maxmin_int): Rename code attribute from
5862         maxminiprefix and update all users.
5863         (maxmin_float): Ditto from maxminfprefix.
5864         (logic): Ditto from logicprefix.
5865         (absneg_mnemonic): Ditto from absnegprefix.
5866         * config/i386/mmx.md: Update all users of maxminiprefix,
5867         maxminfprefix and logicprefix for rename.
5868         * config/i386/sse.md: Ditto.
5869         * config/i386/sync.md (sync_<code><mode>): Update for
5870         logicprefix rename.
5871
5872 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5873
5874         PR 42966
5875         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5876         warnings converted to errors.
5877
5878 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5879
5880         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5881         used insn_type variable.
5882         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5883         to avoid set-but-not-used warning.
5884
5885 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5886
5887         * df-core.c (df_ref_debug): Change format string placeholder
5888         from 0x%x to %#x.
5889         * dwarf2asm.c (dw2_asm_output_data_raw,
5890         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5891         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5892         * dwarf2out.c (output_cfi, output_cfi_directive,
5893         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5894         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5895         Ditto.
5896         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5897         * print-rtl.c (print_rtx): Ditto.
5898
5899 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5900
5901         PR middle-end/42694
5902         * builtins.c (expand_builtin_pow_root): New function to expand pow
5903         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5904         series of sqrt and cbrt calls under -ffast-math.
5905         (expand_builtin_pow): Call it.
5906
5907 2010-04-14  Michael Matz  <matz@suse.de>
5908
5909         PR tree-optimization/42963
5910         * tree-cfg.c (touched_switch_bbs): New static variable.
5911         (group_case_labels_stmt): New function broken out from ...
5912         (group_case_labels): ... here, use the above.
5913         (start_recording_case_labels): Allocate touched_switch_bbs.
5914         (end_recording_case_labels): Deallocate it, call
5915         group_case_labels_stmt.
5916         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5917
5918 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5919
5920         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5921         from insn template.
5922
5923 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5924
5925         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5926
5927 2010-04-13  Jan Hubicka  <jh@suse.cz>
5928
5929         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5930         of optimized out static functions.
5931         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5932         cost computation.  Also sanity check for overflows.
5933         (update_caller_keys): Update cgraph_edge_badness call; properly
5934         update fibheap and sanity check that it is up to date.
5935         (add_new_edges_to_heap): Update cgraph_edge_badness.
5936         (cgraph_decide_inlining_of_small_function): Likewise;
5937         add sanity checking that badness in heap is up to date;
5938         improve dumping of reason; Update badness of calls to the
5939         offline copy of function currently inlined; dump badness
5940         of functions not inlined because of unit growth limits.
5941
5942 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5943
5944         PR middle-end/32628
5945         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5946         because of sign-extension change when converting to sizetype here...
5947         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5948
5949         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5950         the folding to constants.  Remove redundant final conversion.
5951         (fold_binary) <associate>: Do not associate if the re-association of
5952         constants alone overflows.
5953         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5954         to the end of the list.
5955         (multiple_of_p) <COND_EXPR>: New case.
5956
5957 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5958
5959         * opt-functions.awk (opt_sanitized_name): New.
5960         (opt_enum): New.
5961         * optc-gen.awk: Use it
5962         * opth-gen.awk: Use it.
5963
5964 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5965
5966         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5967         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5968         children.  Call replace_uses_with_default_def_ssa_name to handle
5969         SSA_NAES on lhs.
5970
5971 2010-04-13  Michael Matz  <matz@suse.de>
5972
5973         PR middle-end/43730
5974         * builtins.c (expand_builtin_interclass_mathfn): Also create
5975         a register if the predicate doesn't match.
5976
5977 2010-04-13  Diego Novillo  <dnovillo@google.com>
5978
5979         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5980         * c-pch.c: Include timevar.h.
5981         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5982         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5983         * ggc-common.c: Include timevar.h.
5984         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5985         * timevar.def (TV_PCH_SAVE): Define.
5986         (TV_PCH_CPP_SAVE): Define.
5987         (TV_PCH_PTR_REALLOC): Define.
5988         (TV_PCH_PTR_SORT): Define.
5989         (TV_PCH_RESTORE): Define.
5990         (TV_PCH_CPP_RESTORE): Define.
5991
5992 2010-04-13  Michael Matz  <matz@suse.de>
5993
5994         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5995         into MINUS_EXPRs.
5996         (can_reassociate_p): New function.
5997         (break_up_subtract_bb, reassociate_bb): Use it.
5998
5999 2010-04-13  Richard Guenther  <rguenther@suse.de>
6000
6001         PR bootstrap/43737
6002         * builtins.c (c_readstr): Fix assert.
6003
6004 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
6005
6006         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
6007         when generating cltd insn.
6008
6009         (*ashl<mode>3_1): Remove special handling for register operand 2.
6010         (*ashlsi3_1_zext): Ditto.
6011         (*ashlhi3_1): Ditto.
6012         (*ashlhi3_1_lea): Ditto.
6013         (*ashlqi3_1): Ditto.
6014         (*ashlqi3_1_lea): Ditto.
6015         (*<shiftrt_insn><mode>3_1): Ditto.
6016         (*<shiftrt_insn>si3_1_zext): Ditto.
6017         (*<shiftrt_insn>qi3_1_slp): Ditto.
6018         (*<rotate_insn><mode>3_1): Ditto.
6019         (*<rotate_insn>si3_1_zext): Ditto.
6020         (*<rotate_insn>qi3_1_slp): Ditto.
6021
6022 2010-04-13  Richard Guenther  <rguenther@suse.de>
6023
6024         * tree-ssa-structalias.c (callused_id): Remove.
6025         (call_stmt_vars): New.
6026         (get_call_vi): Likewise.
6027         (lookup_call_use_vi): Likewise.
6028         (lookup_call_clobber_vi): Likewise.
6029         (get_call_use_vi): Likewise.
6030         (get_call_clobber_vi): Likewise.
6031         (make_transitive_closure_constraints): Likewise.
6032         (handle_const_call): Adjust to do per-call call-used handling.
6033         (handle_pure_call): Likewise.
6034         (find_what_var_points_to): Remove general callused handling.
6035         (init_base_vars): Likewise.
6036         (init_alias_vars): Initialize call_stmt_vars.
6037         (compute_points_to_sets): Process call-used and call-clobbered
6038         vars for call statements.
6039         (delete_points_to_sets): Free call_stmt_vars.
6040
6041 2010-04-13  Richard Guenther  <rguenther@suse.de>
6042
6043         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6044         Only add RW dependence for dependence distance zero.
6045         Adjust maximal vectorization factor according to dependences.
6046         Move alignment handling ...
6047         (vect_find_same_alignment_drs): ... here.  New function.
6048         (vect_analyze_data_ref_dependences): Adjust.
6049         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
6050         (vect_analyze_data_refs): Adjust minimal vectorization factor
6051         according to data references.
6052         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
6053         dependences before determining the vectorization factor.
6054         Analyze alignment after determining the vectorization factor.
6055         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
6056         dependences before alignment.
6057         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
6058         Adjust prototype.
6059         (vect_analyze_data_refs): Likewise.
6060         (MAX_VECTORIZATION_FACTOR): New define.
6061
6062 2010-04-13  Duncan Sands  <baldrick@free.fr>
6063
6064         * except.h (lang_eh_type_covers): Remove.
6065         * except.c (lang_eh_type_covers): Likewise.
6066
6067 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6068             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6069
6070         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
6071         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
6072         UNITS_PER_LONG where it is ABI relevant.
6073         (s390_return_addr_rtx): Likewise.
6074         (s390_back_chain_rtx): Likewise.
6075         (s390_frame_area): Likewise.
6076         (s390_frame_info): Likewise.
6077         (s390_initial_elimination_offset): Likewise.
6078         (save_gprs): Likewise.
6079         (s390_emit_prologue): Likewise.
6080         (s390_emit_epilogue): Likewise.
6081         (s390_function_arg_advance): Likewise.
6082         (s390_function_arg): Likewise.
6083         (s390_va_start): Likewise.
6084         (s390_gimplify_va_arg): Likewise.
6085         (s390_function_profiler): Likewise.
6086         (s390_optimize_prologue): Likewise.
6087         (s390_rtx_costs): Likewise.
6088         (s390_secondary_reload): Likewise.
6089         (s390_promote_function_mode): Likewise.
6090         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
6091         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
6092         registers available.
6093         (s390_unwind_word_mode): New function.
6094         (s390_function_value): Split 64 bit values into register pair if
6095         used as return value.
6096         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
6097         function call parameters.  Handle parallels.
6098         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
6099         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
6100         (DWARF_CIE_DATA_ALIGNMENT): New macro.
6101         (s390_expand_setmem): Remove unused variable src_addr.
6102         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
6103         deal with 64 bit registers.
6104         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
6105         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
6106         (UNITS_PER_LONG): New macro.
6107         * libjava/include/s390-signal.h: Define extended ucontext
6108         structure containing the upper halfs of the 64 bit registers.
6109
6110 2010-04-13  Simon Baldwin  <simonb@google.com>
6111
6112         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
6113
6114 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
6115
6116         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
6117         rvalue on the RHS if the LHS is of a non-renamable type.
6118         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
6119
6120 2010-04-13  Matthias Klose  <doko@ubuntu.com>
6121
6122         * gcc.c (cc1_options): Handle -iplugindir before processing
6123         the cc1 spec. Only add -iplugindir once.
6124         (cpp_unique_options): Add -iplugindir option if -fplugin* options
6125         found.
6126         * common.opt (iplugindir): Remove `Separate' property, initialize.
6127         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
6128         option.
6129         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
6130         (distclean): Remove plugin dir.
6131         * doc/invoke.texi: Document -iplugindir.
6132
6133 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
6134
6135         * doc/plugins.texi (Loading Plugins): Document short
6136         -fplugin=foo option.
6137         (Plugin API): Mention default_plugin_dir_name function.
6138
6139         * gcc.c (find_file_spec_function): Add new declaration.
6140         (static_spec_func): Use it for "find-file".
6141         (find_file_spec_function): Add new function.
6142         (cc1_options): Add -iplugindir option if -fplugin* options found.
6143
6144         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
6145
6146         * plugin.c (add_new_plugin): Updated comment, and handle short
6147         plugin name.
6148         (default_plugin_dir_name): Added new function.
6149
6150         * common.opt (iplugindir): New option to set the plugin directory.
6151
6152 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
6153
6154         * config/i386/i386.md (any_rotate): New code iterator.
6155         (rotate_insn): New code attribute.
6156         (rotate): Ditto.
6157         (SWIM124): New mode iterator.
6158         (<rotate_insn>ti3): New expander.
6159         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
6160         any_rotate code iterator.
6161         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
6162         using any_rotate code iterator and SWIM124 mode iterator.
6163         (ix86_rotlti3): New insn_and_split pattern.
6164         (ix86_rotrti3): Ditto.
6165         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
6166         ix86_rotl{di,ti}3 patterns.
6167         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
6168         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
6169         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
6170         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
6171         code iterator and SWI mode iterator.
6172         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
6173         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
6174         code iterator.
6175         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
6176         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
6177         (bswap rotatert splitter): Add splitter.
6178         (bswap splitter): Macroize splitter using any_rotate code iterator.
6179         Add insn predicate to split only for TARGET_USE_XCHGB or when
6180         optimizing function for size.
6181
6182 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6183
6184         * config/pa/pa.c (emit_move_sequence): Remove use of
6185         deleted variable flag_argument_noalias.
6186
6187 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6188
6189         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
6190         configurations.
6191         Add to unsupported targets list.
6192         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
6193         sparc*-sun-solaris2.[567]* from target lists.
6194         * configure: Regenerate.
6195         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
6196         removal.
6197         Remove Solaris 7 patch references.
6198         (Specific, sparc-sun-solaris2.7): Removed.
6199         (sparc-sun-solaris2*): Update Solaris 7 example.
6200         (sparc64-*-solaris2*): Likewise.
6201
6202 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6203
6204         * config.build (alpha*-dec-osf4*): Remove.
6205         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
6206         of obsolete configurations.
6207         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
6208         support.
6209         * config/alpha/t-osf4: Renamed to ...
6210         * config/alpha/t-osf5: ... this.
6211         * config/alpha/osf.h: Renamed to ...
6212         * config/alpha/osf5.h: ... this.
6213         Merged old osf5.h contents.
6214         Update comments.
6215         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
6216         (EXTRA_SPECS): Removed.
6217         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
6218         reflect removal of Tru64 UNIX V4.0/V5.0 support.
6219         Document that.
6220
6221 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6222
6223         * doc/contrib.texi (Contributors, Rainer Orth): Update.
6224
6225 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
6226
6227         PR/43702
6228         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
6229         __thiscall convention.
6230
6231 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6232
6233         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
6234         orig_base.
6235         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
6236
6237 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6238
6239         * function.c (assign_parms_initialize_all): Add unused attribute
6240         to fntype.
6241
6242 2010-04-12  Richard Guenther  <rguenther@suse.de>
6243
6244         * gsstruct.def (GSS_CALL): New.
6245         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
6246         * gimple.h: Include tree-ssa-alias.h.
6247         (struct gimple_statement_call): New.
6248         (union gimple_statement_struct_d): Add gimple_call member.
6249         (gimple_call_reset_alias_info): Declare.
6250         (gimple_call_use_set): New function.
6251         (gimple_call_clobber_set): Likewise.
6252         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
6253         * gimple.c (gimple_call_reset_alias_info): New function.
6254         (gimple_build_call_1): Call it.
6255         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6256         * tree-inline.c (remap_gimple_stmt): Likewise.
6257         (expand_call_inline): Remove callused handling.
6258         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
6259         * tree-dfa.c (dump_variable): Likewise.
6260         * tree-parloops.c (parallelize_loops): Likewise.
6261         * tree-ssa.c (init_tree_ssa): Likewise.
6262         (delete_tree_ssa): Likewise.
6263         * tree-flow-inline.h (is_call_used): Remove.
6264         * tree-flow.h (struct gimple_df): Remove callused member.
6265         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
6266         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
6267         (ref_maybe_used_by_call_p_1): Simplify.
6268         (call_may_clobber_ref_p_1): Likewise.
6269         * tree-ssa-structalias.c (compute_points_to_sets): Set
6270         the call stmt used and clobbered sets.
6271         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
6272         (find_tail_calls): Verify the tail call.
6273
6274 2010-04-12  Richard Guenther  <rguenther@suse.de>
6275
6276         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6277         single-iteration always-inline inlining.
6278         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6279         (cgraph_decide_inlining): Do not handle always-inline specially.
6280         (try_inline): Remove always-inline cycle detection special case.
6281         Do not recurse on always-inlines.
6282         (cgraph_early_inlining): Do not iterate if not optimizing.
6283         (cgraph_gate_early_inlining): remove.
6284         (pass_early_inline): Run unconditionally.
6285         (gate_cgraph_decide_inlining): New function.
6286         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6287         not inlining or optimizing.
6288         (cgraph_decide_inlining_of_small_functions): Also consider
6289         always-inline functions.
6290         (cgraph_default_inline_p): Return true for nodes which should
6291         disregard inline limits.
6292         (estimate_function_body_sizes): Assume zero size and time for
6293         nodes which are marked as disregarding inline limits.
6294         (cgraph_decide_recursive_inlining): Do not perform recursive
6295         inlining on always-inline nodes.
6296
6297 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6298
6299         PR bootstrap/43699
6300         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6301         for exprs satisfying handled_component_p.
6302
6303 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6304
6305         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6306         non-constant aggregate elements.
6307
6308         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6309         is a real initialization.
6310
6311 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6312
6313         PR c/36774
6314         * c-decl.c (start_function): Move forward check for nested function.
6315
6316 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6317
6318         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6319         * config/sh/sh.c: Include reload.h.
6320         (sh_legitimize_reload_address): New.
6321         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6322         sh_legitimize_reload_address.
6323
6324 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6325
6326         * config/sh/sh.md (*movqi_pop): New insn pattern.
6327         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6328
6329 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6330
6331         * config/i386/i386.md (any_shiftrt): New code iterator.
6332         (shiftrt_insn): New code attribute.
6333         (shiftrt): Ditto.
6334         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6335         using any_shiftrt code iterator.
6336         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6337         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6338         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6339         pattern from corresponding peephole2 patterns.
6340         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6341         using any_shiftrt code iterator.
6342         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6343         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6344         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6345         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6346         *{ashr,lshr}<mode>3_cmp_zext.
6347         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6348
6349 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6350
6351         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6352         scratch register.
6353         (*lshr<mode>3_cconly): Ditto.
6354
6355 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6356
6357         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6358         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6359         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6360         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6361         DWI mode iterator.
6362         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6363         from corresponding peephole2 patterns.
6364         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6365         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6366         and *lshrdi3_1_rex64 using SWI mode iterator.
6367         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6368         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6369         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6370         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6371         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6372         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6373         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6374         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6375         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6376         SWI mode iterator.
6377
6378 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6379
6380         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6381         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6382         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6383         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6384         DWI mode iterator.
6385         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6386         from corresponding peephole2 patterns.
6387         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6388         (ashrsi3_cvt): Rename from ashrsi3_31.
6389         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6390         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6391         and x86_64_shift_adj_3 using SWI48 mode iterator.
6392         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6393         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6394         and *ashrdi3_1_rex64 using SWI mode iterator.
6395         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6396         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6397         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6398         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6399         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6400         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6401         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6402         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6403         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6404         SWI mode iterator.
6405         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6406         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6407         x86_shift<mode>_adj_3 expanders.
6408
6409 2010-04-10  Wei Guozhi  <carrot@google.com>
6410
6411         PR target/42601
6412         * config/arm/arm.c (arm_pic_static_addr): New function.
6413         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6414         a static symbol.
6415         (arm_output_addr_const_extra): Output expression for new pattern.
6416         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6417
6418 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6419
6420         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6421         not enabled.
6422
6423         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6424         * web.c: Include "insn-config.h" and "recog.h".
6425         (union_match_dups): New function.
6426         (web_main): Call it.
6427         (union_defs): Don't try to recognize match_dups.
6428
6429         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6430         if doing so would replace the entire pattern.
6431
6432 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6433
6434         PR target/43707
6435         PR target/43709
6436         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6437         and splitter pattern.  Change splitter operand 1 predicate to
6438         nonmemory_operand.
6439
6440 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6441
6442         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6443         lattices are addresses of CONST_DECLs with the same initial value.
6444         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6445         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6446
6447 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6448             Bernd Schmidt  <bernds@codesourcery.com>
6449
6450         * loop-invariant.c (replace_uses): New static function.
6451         (move_invariant_reg): Use it to ensure we can replace the uses.
6452
6453 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6454
6455         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6456         function template.
6457         (picochip_override_options): Enable section anchors only above -O1.
6458         (picochip_reorg): Fixed a couple of build warnings.
6459
6460 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6461
6462         * configure.ac (plugin -rdynamic test): Log result.
6463         * configure: Regenerate.
6464         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6465         (RDYNAMIC_SPEC): Define.
6466         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6467
6468 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6469
6470         * configure.ac: Determine Sun ld version numbers.
6471         (comdat_group): Restrict GNU ld version checks to gld.
6472         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6473         (enable_comdat): Support --enable-comdat.
6474         * configure: Regenerate.
6475         * doc/install.texi (Configuration): Document --enable-comdat.
6476
6477 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6478
6479         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6480         * config/sol2-gld.h: ... here.
6481         * config.gcc (sparc*-*-solaris2*): Reflect this.
6482         (i[34567]86-*-solaris2*): Use it.
6483
6484 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6485
6486         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6487         setup_clocks_p.
6488         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6489
6490 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6491
6492         PR 42965
6493         * diagnostic.c (diagnostic_initialize): Initialize
6494         some_warnings_are_errors.
6495         (diagnostic_finish): New.
6496         (diagnostic_action_after_output): Call it before exiting.
6497         (diagnostic_report_diagnostic): Do not print message here. Set
6498         some_warnings_are_errors.
6499         * diagnostic.h (diagnostic_context): Delete
6500         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6501         (diagnostic_finish): Declare.
6502         * toplev.c (toplev_main): Call it before exit.
6503
6504 2010-04-09  Jason Merrill  <jason@redhat.com>
6505
6506         PR c++/42623
6507         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6508         for incomplete type.
6509
6510         PR c++/41788
6511         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6512         based on a warning flag.
6513
6514 2010-04-09  Richard Guenther  <rguenther@suse.de>
6515
6516         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6517
6518 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6519
6520         PR bootstrap/43684
6521         * varasm.c (default_assemble_visibility): Wrap vars that are
6522         set, but unused, by targets without GAS.
6523         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6524         Remove set, but unused, vars.
6525         (rs6000_legitimize_tls_address): Likewise.
6526         (altivec_expand_dst_builtin): Likewise.
6527         * config/darwin.c (machopic_classify_symbol): Likewise.
6528         (machopic_indirection_name): Likewise.
6529
6530 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6531
6532         * config/i386/i386.md (DWI): New mode iterator.
6533         (S): New mode attribute.
6534         (shift_operand): Ditto.
6535         (shift_immediate_operand): Ditto.
6536         (ashl_input_operand): Ditto.
6537         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6538         using SDWIM mode iterator.
6539         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6540         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6541         DWI mode iterator.
6542         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6543         from corresponding peephole2 patterns.
6544         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6545         and x86_64_shift_adj_1 using SWI48 mode iterator.
6546         (x86_shift<mode>_adj_2): Ditto.
6547         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6548         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6549         using SWI48 mode iterator.
6550         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6551         *ashldi3_cmp_rex64 using SWI mode iterator.
6552         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6553         *ashldi3_cconly_rex64 using SWI mode iterator.
6554         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6555         x86_shift<mode>_adj_{1,2}.
6556         (ix86_split_ashr): Ditto.
6557         (ix86_split_lshr): Ditto.
6558
6559 2010-04-09  Richard Guenther  <rguenther@suse.de>
6560
6561         * target.h (builtin_conversion): Pass in input and output types.
6562         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6563         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6564         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6565         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6566
6567         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6568         Handle AVX modes.
6569         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6570
6571 2010-04-09  Richard Guenther  <rguenther@suse.de>
6572
6573         PR target/43152
6574         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6575
6576 2010-04-09  Richard Guenther  <rguenther@suse.de>
6577
6578         * tree-vectorizer.h (struct _stmt_vec_info): Document
6579         that vectype is the type of the LHS.
6580         (supportable_widening_operation, supportable_narrowing_operation):
6581         Get both input and output vector types as arguments.
6582         (vect_is_simple_use_1): Declare.
6583         (get_same_sized_vectype): Likewise.
6584         * tree-vect-loop.c (vect_determine_vectorization_factor):
6585         Set STMT_VINFO_VECTYPE to the vector type of the def.
6586         (vectorizable_reduction): Adjust.
6587         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6588         Adjust.  Specify the output vector type.
6589         (vect_pattern_recog_1): Adjust.
6590         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6591         (vectorizable_call): Adjust.
6592         (vectorizable_conversion): Likewise.
6593         (vectorizable_operation): Likewise.
6594         (vectorizable_type_demotion): Likewise.
6595         (vectorizable_type_promotion): Likewise.
6596         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6597         the def.
6598         (vect_is_simple_use_1): New function.
6599         (supportable_widening_operation): Get both input and output
6600         vector types.
6601         (supportable_narrowing_operation): Likewise.
6602         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6603
6604 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6605
6606         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6607         __thiscall and _thiscall as predefined macros.
6608         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6609         thiscall attribute handling.
6610         (ix86_comp_type_attributes): Likewise.
6611         (ix86_function_regparm): Likewise.
6612         (ix86_return_pops_args): Likewise.
6613         (init_cumulative_args): Likewise.
6614         (find_drap_reg): Likewise.
6615         (ix86_static_chain): Likewise.
6616         (x86_this_parameter): Likewise.
6617         (x86_output_mi_thunk): Likewise.
6618         (ix86_attribute_table): Add description for thiscall attribute.
6619         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6620         * doc/extend.texi: Add documentation for thiscall.
6621
6622 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6623
6624         PR c++/28584
6625         * c.opt (Wint-to-pointer-cast): Available in C++.
6626         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6627
6628 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6629
6630         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6631         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6632         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6633         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6634         function type instead.  Reorder and simplify checks.
6635
6636         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6637
6638 2010-04-08  Jing Yu  <jingyu@google.com>
6639             Zdenek Dvorak  <ook@ucw.cz>
6640
6641         PR tree-optimization/42720
6642         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6643         loop unswitch conditions here from ...
6644         (tree_unswitch_single_loop): ... here.
6645
6646 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6647
6648         * tree-if-conv.c: Fix comments and simplify logic.
6649
6650 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6651
6652         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6653         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6654         (main_tree_if_conversion): Update call to tree_if_conversion.
6655
6656 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6657
6658         PR 42485
6659         * doc/invoke.texi (-b,-V): Delete.
6660         * doc/tm.texi: Do not mention -b.
6661         * gcc.c (display_help): Delete -b and -V.
6662         (process_command): Delete -b and -V.
6663         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6664
6665 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6666             Wolfgang Gellerich  <gellerich@de.ibm.com>
6667
6668         Implement target hook for loop unrolling
6669         * target.h (loop_unroll_adjust): Add a new target hook function.
6670         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6671         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6672         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6673         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6674         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6675         target hook.
6676         (decide_unroll_stupid): Likewise.
6677
6678 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6679
6680         PR target/43643
6681         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6682
6683 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6684
6685         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6686         (Specific, *-*-solaris2*): Likewise.
6687         Don't prefer Sun as over GNU as.
6688
6689 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6690
6691         * config/s390/s390.c (override_options): Adjust the z10 defaults
6692         for max-unroll-times, max-completely-peeled-insns
6693         and max-completely-peel-times.
6694
6695 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6696
6697         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6698         instructions for z10.
6699         (s390_expand_setmem): Likewise.
6700         (s390_expand_cmpmem): Likewise.
6701
6702 2010-04-08  Richard Guenther  <rguenther@suse.de>
6703
6704         PR tree-optimization/43679
6705         * tree-ssa-pre.c (eliminate): Only propagate copies.
6706
6707 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6708
6709         PR bootstrap/43681
6710         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6711         set but not used variable warning.
6712
6713 2010-04-08  Wei Guozhi  <carrot@google.com>
6714
6715         PR target/41653
6716         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6717         (arm_size_rtx_costs): Call the new function when optimized for size.
6718
6719 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6720
6721         PR debug/43670
6722         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6723         op0 is not a MEM, just return NULL instead of assertion
6724         failure.
6725         (discover_nonconstant_array_refs): Don't walk debug stmts.
6726
6727 2010-04-08  Doug Kwan  <dougkwan@google.com>
6728
6729         * configure.ac: Recognize gold and do not use its version number
6730         to test ld features.
6731         * configure: Regenerate.
6732
6733 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6734
6735         PR middle-end/40815
6736         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6737         (negate_value): Move code to push elements to broken_up_substracts ...
6738         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6739         negative pair to plus_negates.
6740         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6741
6742 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6743
6744         * doc/install.texi (Configuration): Move description of
6745         --enable-lto, --with-libelf*, --enable-gold from Java section to
6746         general section.
6747
6748         * doc/generic.texi (Working with declarations)
6749         (Function Properties, C and C++ Trees): Fix typos.
6750         * doc/sourcebuild.texi (Top Level): Likewise.
6751
6752 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6753
6754         PR c/18624
6755         * tree.h (DECL_READ_P): Define.
6756         (struct tree_decl_common): Add decl_read_flag.
6757         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6758         a set but not used warning.
6759         (merge_decls): Merge DECL_READ_P flag.
6760         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6761         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6762         * c-common.c (handle_used_attribute, handle_unused_attribute):
6763         Likewise.
6764         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6765         New prototypes.
6766         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6767         New functions.
6768         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6769         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6770         c_parser_binary_expression, c_parser_cast_expression,
6771         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6772         Call default_function_array_read_conversion instead of
6773         default_function_array_conversion where needed.
6774         (c_parser_unary_expression, c_parser_conditional_expression,
6775         c_parser_postfix_expression_after_primary, c_parser_initelt):
6776         Likewise.  Call mark_exp_read where needed.
6777         (c_parser_statement_after_labels, c_parser_asm_operands,
6778         c_parser_typeof_specifier, c_parser_sizeof_expression,
6779         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6780         where needed.
6781         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6782         New.
6783         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6784         (warn_unused_but_set_parameter): Default to warn_unused
6785         && extra_warnings.
6786         * doc/invoke.texi: Document -Wunused-but-set-variable and
6787         -Wunused-but-set-parameter.
6788
6789         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6790         used count variable.
6791         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6792         when operandN variables aren't used in the body of the expander
6793         or splitter.
6794         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6795         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6796         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6797         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6798         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6799         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6800         * tree.c (PROCESS_ARG): Likewise.
6801
6802 2010-04-07  Simon Baldwin  <simonb@google.com>
6803
6804         * diagnostic.h (diagnostic_override_option_index): New macro to
6805         set a diagnostic's option_index.
6806         * c-tree.h (c_cpp_error): Add warning reason argument.
6807         * opts.c (_warning_as_error_callback): New.
6808         (register_warning_as_error_callback): Store callback for
6809         warnings enabled via enable_warning_as_error.
6810         (enable_warning_as_error): Call callback, minor code tidy.
6811         * opts.h (register_warning_as_error_callback): Declare.
6812         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6813         response to -Werror=.
6814         (c_common_init_options): Register warning_as_error_callback in opts.c.
6815         * common.opt: Add -Wno-cpp option.
6816         * c-common.c (struct reason_option_codes_t): Map cpp warning
6817         reason codes to gcc option indexes.
6818         * (c_option_controlling_cpp_error): New function, lookup the gcc
6819         option index for a cpp warning reason code.
6820         * (c_cpp_error): Add warning reason argument, call
6821         c_option_controlling_cpp_error for diagnostic_override_option_index.
6822         * doc/invoke.texi: Document -Wno-cpp.
6823
6824 2010-04-07  Richard Guenther  <rguenther@suse.de>
6825
6826         * ipa-reference.c (mark_load): Use get_base_address.
6827         (mark_store): Likewise.
6828
6829         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6830         inserting GIMPLE_NOPs into the IL.
6831         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6832         Explicitly strip handled components and indirect references.
6833
6834         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6835         folding address expressions.
6836         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6837         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6838         operand_equal_p to compare decls.
6839         (ptr_deref_may_alias_decl_p): Likewise.
6840         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6841         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6842         Handle reversed comparison ops.
6843         * tree-sra.c (asm_visit_addr): Use get_base_address.
6844         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6845         * ipa-reference.c (mark_address): Use get_base_address.
6846
6847 2010-04-07  Richard Guenther  <rguenther@suse.de>
6848
6849         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6850         Propagate constants everywhere.
6851
6852 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6853
6854         PR debug/43516
6855         * tree.c (MAX_INT_CACHED_PREC): Define.
6856         (nonstandard_integer_type_cache): New array.
6857         (build_nonstandard_integer_type): Cache results for precision
6858         <= MAX_INT_CACHED_PREC.
6859
6860 2010-04-07  Richard Guenther  <rguenther@suse.de>
6861
6862         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6863         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6864         * common.opt: Likewise.
6865         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6866         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6867         (nonoverlapping_memrefs_p): Likewise.
6868         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6869         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6870         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6871         OPT_fargument_noalias_global for backward compatibility.
6872
6873 2010-04-07  Richard Guenther  <rguenther@suse.de>
6874
6875         PR tree-optimization/43270
6876         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6877         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6878         * tree-ssa-pre.c (phi_translate_1): Adjust.
6879         (fully_constant_expression): Split out vn_reference handling to ...
6880         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6881         Fold reads from constant strings.
6882         (vn_reference_lookup): Handle fully constant references.
6883         (vn_reference_lookup_pieces): Likewise.
6884         * Makefile.in (expmed.o-warn): Add -Wno-error.
6885
6886 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6887
6888         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6889
6890 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6891
6892         PR driver/41594
6893         * gcc.c: Add -static-libstdc++ to list of recognized options.
6894
6895 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6896
6897         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6898
6899 2010-04-07  Richard Guenther  <rguenther@suse.de>
6900
6901         PR middle-end/42617
6902         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6903         bases build simple mem attributes to retain points-to information.
6904
6905 2010-04-07  Richard Guenther  <rguenther@suse.de>
6906
6907         PR middle-end/42617
6908         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6909         preserve points-to related information.
6910
6911 2010-04-07  Richard Guenther  <rguenther@suse.de>
6912
6913         PR middle-end/42617
6914         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6915         discard plain indirect references.
6916         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6917         * tree.c (tree_nop_conversion): Likewise.
6918
6919 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6920
6921         PR debug/43628
6922         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6923
6924 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6925
6926         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6927         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6928
6929 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6930
6931         * tree-if-conv.c: Fix indentation and comments.
6932
6933 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6934
6935         * tree-if-conv.c: Sort static functions in topological order.
6936
6937 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6938
6939         * tree-if-conv.c: Fix indentation and comments.
6940
6941 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6942
6943         PR middle-end/43519
6944         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6945         lang_hooks.types.type_for_size instead of
6946         build_nonstandard_integer_type.
6947         When converting an unsigned type to signed, double its precision.
6948         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6949         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6950         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6951         use lb <= ub.
6952
6953 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6954
6955         PR middle-end/43519
6956         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6957         POINTER_PLUS_EXPR for pointer types.
6958
6959 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6960
6961         PR middle-end/43519
6962         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6963         * graphite-clast-to-gimple.c: Include langhooks.h.
6964         (max_signed_precision_type): New.
6965         (max_precision_type): Takes two types as arguments.
6966         (precision_for_value): New.
6967         (precision_for_interval): New.
6968         (gcc_type_for_interval): New.
6969         (gcc_type_for_value): New.
6970         (gcc_type_for_clast_term): New.
6971         (gcc_type_for_clast_red): New.
6972         (gcc_type_for_clast_bin): New.
6973         (gcc_type_for_clast_expr): Split up into several functions.
6974         (gcc_type_for_clast_eq): Rewritten.
6975         (compute_bounds_for_level): New.
6976         (compute_type_for_level_1): New.
6977         (compute_type_for_level): New.
6978         (gcc_type_for_cloog_iv): Removed.
6979         (gcc_type_for_iv_of_clast_loop): Rewritten.
6980         (graphite_create_new_loop): Compute the lower and upper bound types
6981         with gcc_type_for_clast_expr.
6982         (graphite_create_new_loop_guard): Same.
6983         (find_cloog_iv_in_expr): Removed.
6984         (compute_cloog_iv_types_1): Removed.
6985         (compute_cloog_iv_types): Removed.
6986         (gloog): Do not call compute_cloog_iv_types.
6987         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6988         GBB_CLOOG_IV_TYPES.
6989         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6990         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6991         (GBB_CLOOG_IV_TYPES): Removed.
6992
6993 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6994
6995         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6996         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6997         (detect_commutative_reduction): Same.
6998
6999 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7000
7001         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
7002         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
7003         argument.
7004         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
7005         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
7006         (rewrite_commutative_reductions_out_of_ssa): Same.
7007         * passes.c (execute_function_todo): Call verify_ssa for every pass
7008         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
7009         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
7010         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
7011         with an extra argument.
7012         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
7013         verify_ssa only when the extra argument is true.
7014         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
7015         with an extra argument.
7016         (tree_transform_and_unroll_loop): Same.
7017
7018 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7019
7020         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
7021         for all the passes of the LNO having LOOP_CLOSED_SSA.
7022         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
7023         * tree-loop-distribution.c (pass_loop_distribution): Same.
7024         * tree-pass.h (TODO_verify_loops): Removed.
7025         * tree-ssa-loop.c (pass_tree_loop_init): Same.
7026         (pass_lim): Same.
7027         (pass_tree_unswitch): Same.
7028         (pass_predcom): Same.
7029         (pass_vectorize): Same.
7030         (pass_linear_transform): Same.
7031         (pass_graphite_transforms): Same.
7032         (pass_iv_canon): Same.
7033         (pass_complete_unroll): Same.
7034         (pass_complete_unrolli): Same.
7035         (pass_parallelize_loops): Same.
7036         (pass_loop_prefetch): Same.
7037         (pass_iv_optimize): Same.
7038
7039 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
7040
7041         PR middle-end/32824
7042         * passes.c (init_optimization_passes): Move pass_lim before
7043         pass_copy_prop and pass_dce_loop.
7044
7045 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7046
7047         PR target/43667
7048         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
7049         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
7050         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
7051         MULTI_* defines for 4 argument vpermil2p* builtins.
7052
7053 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7054
7055         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
7056         * config/i386/i386.c (x86_maybe_negate_const_int): New.
7057         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
7058         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
7059         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
7060         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
7061         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
7062         Use x86_maybe_negate_const_int to output insn mnemonic.
7063         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
7064         check from instruction predicate.  Update comments.
7065         * config/i386/sync.md (sync_add<mode>): Use
7066         x86_maybe_negate_const_int to output insn mnemonic.
7067
7068 2010-04-06  Jan Hubicka  <jh@suse.cz>
7069
7070         PR tree-optimization/42906
7071         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
7072         IGNORE_SELF argument.  Set visited_control_parents for fully
7073         processed BBs.
7074         (find_obviously_necessary_stmts): Update call of
7075         mark_control_dependent_edges_necessary.
7076         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
7077
7078 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7079
7080         * config/i386/i386.md: Remove comment about 'e' and 'E'
7081         operand modifier.
7082
7083 2010-04-06  Richard Guenther  <rguenther@suse.de>
7084
7085         PR tree-optimization/43627
7086         * tree-vrp.c (extract_range_from_unary_expr): Widenings
7087         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
7088         not varying.
7089
7090 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7091
7092         * BASE-VER: Change to 4.6.0.
7093
7094         PR target/43638
7095         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
7096         handling.
7097
7098 2010-04-06  Richard Guenther  <rguenther@suse.de>
7099
7100         PR middle-end/43661
7101         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
7102
7103 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7104
7105         * doc/invoke.texi (Optimize Options): Document that LTO
7106         won't remove object access purely due to incompatible
7107         declarations.
7108
7109 2010-04-04  Matthias Klose  <doko@ubuntu.com>
7110
7111         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
7112         Initialize variable.
7113
7114 2010-04-03  Richard Guenther  <rguenther@suse.de>
7115
7116         PR middle-end/42509
7117         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
7118         require a non-NULL MEM_OFFSET.
7119
7120 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
7121
7122         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
7123         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
7124         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
7125         config/alpha/predicates.md, config/arm/arm.md,
7126         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
7127         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
7128         config/darwin9.h, config/darwin.c, config/darwin.h,
7129         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
7130         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
7131         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
7132         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
7133         config/mips/mips.md, config/mn10300/mn10300.c,
7134         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
7135         config/rs6000/aix.h, config/rs6000/dfp.md,
7136         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
7137         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
7138         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
7139         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
7140         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
7141         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
7142         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
7143         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
7144         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
7145         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
7146         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
7147         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
7148         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
7149         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
7150         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
7151         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
7152         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
7153         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
7154         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
7155         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
7156         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
7157         opt-functions.awk, opth-gen.awk, params.def, passes.c,
7158         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
7159         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
7160         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
7161         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
7162         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
7163         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
7164         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
7165         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
7166         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
7167         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
7168         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
7169         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
7170         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
7171         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
7172
7173 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7174
7175         PR other/43620
7176         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
7177         * aclocal.m4: Regenerate.
7178
7179 2010-04-02  Richard Guenther  <rguenther@suse.de>
7180
7181         PR tree-optimization/43629
7182         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
7183         if we have seen a constant value.
7184
7185 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
7186
7187         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
7188
7189 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
7190
7191         PR target/43469
7192         * arm.c (legitimize_tls_address): Adjust call to
7193         gen_tls_load_dot_plus_four.
7194         (arm_note_pic_base): New function.
7195         (arm_cannot_copy_insn_p): Use it.
7196         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
7197         constraint.
7198
7199 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7200
7201         PR bootstrap/43531
7202
7203         Revert:
7204         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7205
7206         * Makefile.in ($(out_object_file)): Depend on
7207         gt-$(basename $(notdir $(out_file))).h.
7208
7209 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
7210
7211         * config.gcc (lm32-*-rtems*): Add t-lm32.
7212
7213 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
7214
7215         * config.gcc: Add lm32-*-rtems*.
7216         * config/lm32/rtems.h: New file.
7217
7218 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
7219
7220         PR target/42609
7221         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
7222
7223 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
7224
7225         * dwarf2out.c (output_compilation_unit_header): For
7226         -gdwarf-4 use version 4 instead of version 3.
7227         (output_line_info): For version 4 and above emit additional
7228         maximum ops per insn header field.
7229         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
7230
7231         * dwarf2out.c (is_c_family, is_java): Remove.
7232         (lower_bound_default): New function.
7233         (add_bound_info, gen_descr_array_type_die): Use it.
7234
7235 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
7236
7237         PR debug/43325
7238         * dwarf2out.c (gen_variable_die): Allow debug info for variable
7239         re-declaration when it happens in a function.
7240
7241 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
7242
7243         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
7244         (cgraph_remove_function_insertion_hook): Same.
7245         (cgraph_call_function_insertion_hooks): Same.
7246
7247 2010-04-01  Richard Guenther  <rguenther@suse.de>
7248
7249         PR middle-end/43614
7250         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
7251         and TREE_THIS_VOLATILE.
7252         (copy_ref_info): Likewise.
7253         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
7254         * tree.c (build6_stat): Ignore side-effects of all but arg5
7255         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
7256         TARGET_MEM_REF.
7257
7258 2010-04-01  Richard Guenther  <rguenther@suse.de>
7259
7260         PR tree-optimization/43607
7261         * ipa-type-escape.c (check_call): Do not access non-existing
7262         arguments.
7263
7264 2010-04-01  Richard Guenther  <rguenther@suse.de>
7265
7266         PR middle-end/43602
7267         Revert
7268         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7269                     Jack Howarth <howarth@bromo.med.uc.edu>
7270
7271         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7272         variables TLS.
7273
7274 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7275
7276         * doc/install.texi (Prerequisites): Document libelf usability on
7277         IRIX 5/6 and Solaris 2.
7278         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7279         Update GNU as, GNU ld requirements.
7280         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7281         Document Sun Studio compiler download.
7282         Update and simplify as, ld recommendations.
7283         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7284
7285 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7286
7287         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7288         with_tune_32 to pentium4.
7289
7290 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7291
7292         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7293
7294 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7295
7296         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7297         obsoletion, removal.
7298         Update IDO URL.
7299         Document GNU as requirement.
7300         Update configure requirements.
7301         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7302         Recomment IRIX 6.5.18+.
7303         Document IDF/IDL requirement.
7304         Document GNU as requirement.
7305         Document GNU ld bootstrap failure.
7306         Remove freeware.sgi.com reference.
7307
7308 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7309
7310         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7311         UNIX V4.0, V5.0 obsoletion, removal.
7312         Remove --with-gc=simple reference.
7313         Update VM requirements during bootstrap.
7314         Remove -oldas bootstrap description.
7315         Update binutils reference.
7316         Remove comparison failure note.
7317
7318 2010-03-31  Richard Guenther  <rguenther@suse.de>
7319             Zdenek Dvorak  <ook@ucw.cz>
7320             Sebastian Pop  <sebastian.pop@amd.com>
7321
7322         PR middle-end/43464
7323         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7324         with multiple arguments.
7325         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7326
7327 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7328
7329         * graphite-dependences.c (print_pddr): Call print_pdr with an
7330         extra argument.
7331         * graphite-poly.c (debug_pdr): Add an extra argument for the
7332         verbosity level.
7333         (print_pdr): Same.
7334         (print_pbb_domain): Same.
7335         (print_pbb): Same.
7336         (print_scop_context): Same.
7337         (print_scop): Same.
7338         (print_cloog): Same.
7339         (debug_pbb_domain): Same.
7340         (debug_pbb): Same.
7341         (print_pdrs): Same.
7342         (debug_pdrs): Same.
7343         (debug_scop_context): Same.
7344         (debug_scop): Same.
7345         (debug_cloog): Same.
7346         (print_scop_params): Same.
7347         (debug_scop_params): Same.
7348         (print_iteration_domain): Same.
7349         (print_iteration_domains): Same.
7350         (debug_iteration_domain): Same.
7351         (debug_iteration_domains): Same.
7352         (print_scattering_function): Same.
7353         (print_scattering_functions): Same.
7354         (debug_scattering_function): Same.
7355         (debug_scattering_functions): Same.
7356         * graphite-poly.h (debug_pdr): Update declaration.
7357         (print_pdr): Same.
7358         (print_pbb_domain): Same.
7359         (print_pbb): Same.
7360         (print_scop_context): Same.
7361         (print_scop): Same.
7362         (print_cloog): Same.
7363         (debug_pbb_domain): Same.
7364         (debug_pbb): Same.
7365         (print_pdrs): Same.
7366         (debug_pdrs): Same.
7367         (debug_scop_context): Same.
7368         (debug_scop): Same.
7369         (debug_cloog): Same.
7370         (print_scop_params): Same.
7371         (debug_scop_params): Same.
7372         (print_iteration_domain): Same.
7373         (print_iteration_domains): Same.
7374         (debug_iteration_domain): Same.
7375         (debug_iteration_domains): Same.
7376         (print_scattering_function): Same.
7377         (print_scattering_functions): Same.
7378         (debug_scattering_function): Same.
7379         (debug_scattering_functions): Same.
7380
7381 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7382
7383         * graphite-poly.c (print_scattering_function_1): New.
7384         (print_scattering_function): Call it.
7385         (print_scop_params): Remove spaces at the end of lines.
7386         (print_cloog): New.
7387         (debug_cloog): New.
7388         * graphite-poly.h (print_cloog): Declared.
7389         (debug_cloog): Declared.
7390
7391 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7392
7393         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7394         in loop->header.
7395         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7396         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7397         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7398         to switch between adding the IV bump in loop->latch or in loop->header.
7399
7400 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7401
7402         * graphite-poly.c (print_scattering_function): Pretty print following
7403         the scoplib format.
7404         (print_pdr): Same.
7405         (print_pbb_domain): Same.
7406         (dump_gbb_cases): Same.
7407         (dump_gbb_conditions): Same.
7408         (print_pdrs): Same.
7409         (print_pbb): Same.
7410         (print_scop_params): Same.
7411         (print_scop_context): Same.
7412         (print_scop): Same.
7413         (print_pbb_body): New.
7414         (lst_indent_to): New.
7415         (print_lst): Start new lines with a #.
7416         * graphite-poly.h (pbb_bb): New.
7417         (pbb_index): Use pbb_bb.
7418         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7419         disjuncts.
7420         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7421
7422 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7423
7424         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7425         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7426         and 0 instead of 1 for dw_val_class_flag.
7427         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7428         dw_val_class_range_list, dw_val_class_loc_list,
7429         dw_val_class_lineptr and dw_val_class_macptr, use
7430         DW_FORM_flag_present for dw_val_class_flag and
7431         DW_FORM_exprloc for dw_val_class_loc.
7432         (output_die): For -gdwarf-4 print dw_val_class_loc
7433         size as uleb128 instead of 1 or 2 bytes and don't print
7434         anything for dw_val_class_flag.
7435
7436         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7437         instead of cselib_lookup following by tweaking locs->setting_insn.
7438
7439         PR bootstrap/43596
7440         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7441         even before returning from label, setjmp call or volatile asm
7442         handling.
7443
7444 2010-03-31  Richard Guenther  <rguenther@suse.de>
7445
7446         PR middle-end/43600
7447         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7448         temporary data on stack.
7449
7450 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7451
7452         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7453         (PUSHSECTION_ASM_OP): Remove.
7454         (POPSECTION_ASM_OP): Remove.
7455         (PUSHSECTION_FORMAT): Remove.
7456         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7457         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7458         * config/sol2.c (solaris_output_init_fini): Use it.
7459
7460 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7461
7462         PR 43574
7463         * opt-functions.awk (var_type_struct): Use signed char type
7464         for simple variables.
7465
7466 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7467
7468         * config/sol2.c: Include output.h.
7469         (solaris_assemble_visibility): New function.
7470         * config/t-sol2 (sol2.o): Add output.h dependency.
7471         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7472         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7473         Redefine.
7474
7475 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7476
7477         PR target/43580
7478         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7479         V2SImode or XFmode on PRE_DEC.
7480
7481         PR debug/43557
7482         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7483         BLKmode.
7484
7485 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7486
7487         PR 43562
7488         * reload.h (caller_save_initialized_p): Declare.
7489         * toplev.c (backend_init_target): Don't call
7490         init_caller_save but set caller_save_initialized_p to false.
7491         * caller-save.c (caller_save_initialized_p): Define.
7492         (init_caller_save): Check caller_save_initialized_p.
7493         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7494
7495 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7496
7497         PR target/39048
7498         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7499         and soft-fp/t-softfp to tmake_file.
7500         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7501         (LIBGCC2_TF_CEXT): Define.
7502         (TF_SIZE): Define.
7503
7504 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7505
7506         PR debug/42977
7507         * cselib.c (n_useless_values): Document handling of debug locs.
7508         (n_useless_debug_values, n_debug_values): New variables.
7509         (new_elt_loc_list): Don't add to debug values, keep count.
7510         (promote_debug_loc): New.
7511         (cselib_reset_table): Zero new variables.
7512         (entry_and_rtx_equal_p): Promote debug locs.
7513         (discard_useless_locs): Increment n_useless_debug_values for
7514         debug values.
7515         (remove_useless_values): Adjust n_useless_values and n_debug_values
7516         with n_useless_debug_values.
7517         (add_mem_for_addr): Promote debug locs.
7518         (cselib_lookup_mem): Likewise.
7519         (cselib_lookup_addr): Renamed to...
7520         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7521         (cselib_log_lookup): ... this.  Turn into...
7522         (cselib_lookup_addr): ... new wrapper.
7523         (cselib_lookup_from_insn): New.
7524         (cselib_invalidate_regno): Increment n_useless_debug_values for
7525         debug values.
7526         (cselib_invalidate_mem): Likewise.
7527         (cselib_process_insn): Take n_deleted and n_debug_values into
7528         account to guard remove_useless_value call.
7529         (cselib_finish): Zero n_useless_debug_values.
7530         * cselib.h (cselib_lookup_from_insn): Declare.
7531         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7532         (sched_analyze_2): Likewise.
7533
7534 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7535
7536         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7537         functions.
7538         (adjust_mems): Replace narrowing SUBREG of expression containing
7539         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7540         with operations in the narrower mode.
7541
7542         PR debug/43593
7543         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7544         regs_invalidated_by_call instead all call_used_reg_set registers.
7545
7546 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7547
7548         PR middle-end/43430
7549         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7550         pointer comparisons with types_compatible_p.
7551         * tree-vect-stmts.c (vectorizable_call): Same.
7552         (vectorizable_condition): Same.
7553
7554 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7555
7556         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7557         stack check if the mask would be zero.
7558
7559 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7560             Jack Howarth <howarth@bromo.med.uc.edu>
7561
7562         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7563         variables TLS.
7564
7565 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7566
7567         PR other/25232
7568         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7569         and __unordtf2.
7570         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7571         Include ___unordxf2 and ___unordtf2.
7572         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7573         GCC_4.4.0 here.
7574
7575 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7576
7577         * config/lm32/t-lm32: New file.
7578         * config.gcc: Use the above file when targetting lm32.
7579
7580 2010-03-28  Duncan Sands  <baldrick@free.fr>
7581
7582         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7583
7584 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7585
7586         PR middle-end/43431
7587         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7588         Improve vectorization cost model diagnostic.
7589
7590 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7591
7592         PR middle-end/43436
7593         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7594         compute_data_dependences_for_loop returns false, early exit
7595         and output an extra diagnostic for the failed data reference
7596         analysis.
7597
7598 2010-03-29  Richard Guenther  <rguenther@suse.de>
7599
7600         PR tree-optimization/43560
7601         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7602         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7603
7604 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7605
7606         PR 43564
7607         * toplev.c (process_options): Set optimization_default_node
7608         and optimization_current_node.
7609         * opts.c (decode_options): Don't set optimization_default_node
7610         and optimization_current_node.
7611
7612 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7613
7614         * config/rtems.h: Abandon -qrtems_debug.
7615
7616 2010-03-28  Jan Hubicka  <jh@suse.cz>
7617
7618         PR tree-optimization/43505
7619         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7620         map should not be copied.
7621
7622 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7623
7624         PR middle-end/41674
7625         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7626         cdtors, set DECL_PRESERVE_P.
7627         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7628         should be preseved.
7629
7630 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7631
7632         PR tree-optimization/43528
7633         * stor-layout.c (place_field): Check that constant fits into
7634         unsigned HWI when skipping calculation of MS bitfield layout.
7635
7636 2010-03-27  Jan Hubicka  <jh@suse.cz>
7637
7638         PR middle-end/43391
7639         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7640         notice_global_symbol work.
7641
7642 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7643
7644         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7645         instead of dwarf2out_decl.
7646         (struct var_loc_node): Remove section_label field.
7647         (dwarf2out_function_decl): New function.
7648         (dwarf2out_var_location): Don't set section_label field.
7649         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7650
7651 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7652
7653         PR tree-optimization/43544
7654         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7655         First argument for builtin vectorized function hook is now a
7656         tree to be able to distinguish between machine specific and
7657         standard builtins.
7658         * targhooks.c (default_builtin_vectorized_function): Ditto.
7659         * targhooks.h (default_builtin_vectorized_function): Ditto.
7660         * target.h (struct gcc_target): Ditto.
7661         * tree-vect-stmts.c (vectorizable_function): Ditto.
7662         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7663         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7664         Ditto.
7665
7666 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7667
7668         PR c/43381
7669         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7670         nested binding iff it is a FUNCTION_DECL.
7671         (store_parm_decls_newstyle): Pass nested=true to bind for
7672         FUNCTION_DECLs amongst parameters.
7673
7674 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7675
7676         * var-tracking.c (vt_expand_loc_callback): Don't run
7677         cselib_expand_value_rtx_cb in dummy mode if
7678         cselib_dummy_expand_value_rtx_cb returned false.
7679
7680         * var-tracking.c (emit_note_insn_var_location): For one part
7681         notes with offset 0, don't add EXPR_LIST around the location.
7682         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7683         add_location_or_const_value_attribute): Adjust for that change.
7684
7685         PR debug/43540
7686         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7687         into first operand and location into second.
7688         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7689         dw_cfi_oprnd_loc for DW_CFA_expression.
7690         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7691         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7692         assume first argument is regnum and second argument is location.
7693
7694 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7695
7696         PR target/42113
7697         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7698         of scratch register to DImode.  Split to DImode comparison operator.
7699         Use SImode subreg of scratch register in the multiplication.
7700         (*cmp_sadd_sidi): Ditto.
7701         (*cmp_ssub_si): Ditto.
7702         (*cmp_ssub_sidi): Ditto.
7703
7704 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7705
7706         PR target/43524
7707         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7708         Remove invalid assert and wrong comment.
7709
7710 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7711
7712         PR debug/43516
7713         * flags.h (final_insns_dump_p): New extern.
7714         * final.c (final_insns_dump_p): New variable.
7715         (rest_of_clean_state): Set it before -fdump-final-insns=
7716         dumping, clear afterwards.
7717         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7718         MEM_ALIAS_SET on MEMs.
7719
7720 2010-03-26  David S. Miller  <davem@davemloft.net>
7721
7722         * configure.ac: Fix sparc GOTDATA_OP bug check.
7723         * configure: Rebuild.
7724
7725 2010-03-26  Alan Modra  <amodra@gmail.com>
7726
7727         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7728
7729 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7730
7731         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7732         TLS_SECTION_ASM_FLAG.
7733
7734 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7735
7736         PR bootstrap/43511
7737         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7738         Clear first_function_block_is_cold.
7739
7740         PR c/43385
7741         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7742         argument if the argument is truth_value_p.
7743
7744 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7745
7746         * config/rs6000/constraints.md: Update copyright year for my changes.
7747
7748         PR target/43484
7749         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7750         used in reg+reg addressing, swap registers.
7751
7752 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7753
7754         PR debug/43293
7755         * target.h (struct gcc_target): Add code_end hook.
7756         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7757         if not yet defined.
7758         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7759         * toplev.c (compile_file): Call targetm.asm_out.code_end
7760         hook before unwind info/debug info output.
7761         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7762         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7763         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7764         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7765         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7766         * config/i386/i386.c (ix86_file_end): Renamed to...
7767         (ix86_code_end): ... this.  Make static.  Don't call
7768         file_end_indicate_exec_stack.  Emit unwind info using
7769         final_start_function/final_end_function.
7770         (darwin_x86_file_end): Remove.
7771         (TARGET_ASM_CODE_END): Define.
7772         * config/i386/i386.h (TARGET_ASM_FILE_END,
7773         NEED_INDICATE_EXEC_STACK): Don't define.
7774         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7775         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7776         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7777         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7778
7779         PR target/43498
7780         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7781         at the beginning and final_end_function at the end.
7782         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7783
7784 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7785
7786         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7787         and Sun as TLS syntax.
7788         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7789         * configure: Regenerate.
7790         * config.in: Regenerate.
7791         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7792         (default_elf_asm_named_section): Use it.
7793         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7794         (i386_output_dwarf_dtprel): Likewise.
7795         (output_addr_const_extra): Likewise.
7796         (output_pic_addr_const): Lowercase @GOTTPOFF.
7797         (output_addr_const_extra): Likewise.
7798         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7799         (output_addr_const_extra): Likewise.
7800         (output_pic_addr_const): Lowercase @INDNTPOFF.
7801         (output_addr_const_extra): Likewise.
7802         (output_pic_addr_const): Lowercase @NTPOFF.
7803         (output_addr_const_extra): Likewise.
7804         (output_pic_addr_const): Lowercase @TPOFF.
7805         (output_addr_const_extra): Likewise.
7806         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7807         (*tls_global_dynamic_64): Likewise.
7808         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7809         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7810
7811         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7812         (ASM_OUTPUT_TLS_COMMON): Use it.
7813         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7814
7815         PR target/38118
7816         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7817         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7818         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7819         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7820         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7821         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7822
7823 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7824
7825         * config/i386/i386.c (override_options): Don't accept
7826         -mtls-dialect=sun any longer.
7827         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7828         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7829         (*tls_local_dynamic_base_32_sun): Likewise.
7830         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7831
7832 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7833
7834         PR debug/43508
7835         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7836         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7837
7838         PR debug/43479
7839         * ira.c (adjust_cleared_regs): New function.
7840         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7841
7842         PR debug/19192
7843         PR debug/43479
7844         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7845         from gimple_block.
7846         * expr.c (expand_expr_real): Restore previous
7847         curr_insn_source_location and curr_insn_block after
7848         expand_expr_real_1 call.
7849         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7850         instead of expand_expr_real_1.
7851
7852 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7853
7854         PR rtl-optimization/43413
7855         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7856         hard regs too.
7857
7858 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7859
7860         PR target/43348
7861         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7862         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7863
7864 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7865
7866         * config/i386/i386.c (ix86_target_string): Add -mfma.
7867         Fix a typo in comment.
7868
7869 2010-03-22  Mike Stump  <mikestump@comcast.net>
7870
7871         PR target/23071
7872         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7873         Don't overly align based upon packed packed fields.
7874
7875 2010-03-22  Jason Merrill  <jason@redhat.com>
7876
7877         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7878         Use () rather than [], and move before the element type.
7879
7880 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7881
7882         * doc/configfiles.texi (Configuration Files): Removed
7883         fixinc/Makefile*, intl/Makefile.*.
7884         * doc/makefile.texi: Fixed markup. Abstract from version
7885         control system used.
7886         (Makefile): Removed obsolete gcc/java/parse.y example.
7887         * doc/sourcebuild.texi: Likewise.
7888         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7889         libgomp, libssp.  Removed fastjar.
7890         (Miscellaneous Docs): Clarify location.
7891         Added COPYING3, COPYING3.LIB.
7892         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7893
7894 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7895
7896         PR target/38085
7897         * config/i386/i386.c (x86_function_profiler)
7898         [!NO_PROFILE_COUNTERS]: Fix typo.
7899         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7900         instead of callq.
7901
7902 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7903             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7904
7905         * doc/sourcebuild.texi (Test Directives): Split into six
7906         subsections, with most of the current text in new subsections
7907         Directives, Selectors, and Final Actions.
7908         (Directives): Split list of test directives into multiple
7909         subsubsections.
7910         (Selectors): Describe use and syntax of selectors.
7911         (Effective-Target Keywords): Describe all existing keywords.
7912         (Add Options): Describe features for dg-add-options.
7913         (Require Support): Describe variants of dg-require-support.
7914         (Final Actions): Describe commands to use in dg-final.
7915
7916 2010-03-22  Michael Matz  <matz@suse.de>
7917
7918         PR middle-end/43475
7919         * recog.c (validate_replace_rtx_group): Replace also in
7920         REG_EQUAL and REG_EQUIV notes.
7921
7922 2010-03-22  Richard Guenther  <rguenther@suse.de>
7923
7924         PR tree-optimization/43390
7925         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7926         sure vector extracts are type correct.
7927
7928 2010-03-22  Richard Guenther  <rguenther@suse.de>
7929
7930         PR middle-end/40106
7931         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7932         x * sqrt (x) even when optimizing for size if the target
7933         has native support for sqrt.
7934
7935 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7936
7937         * varasm.c (make_decl_rtl_for_debug): Also clear
7938         flag_mudflap for the duration of make_decl_rtl call.
7939
7940         PR debug/43443
7941         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7942         locs from preserved VALUEs.
7943
7944 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7945
7946         PR middle-end/42718
7947         * pa.md (movmemsi): Set align to one if zero.
7948         (movmemdi): Likewise.
7949
7950 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7951
7952         PR target/42321
7953         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7954         with their corresponding prologue pushes.
7955
7956 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7957
7958         PR target/43156
7959         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7960         at the begining or end.
7961         (spu_expand_epilogue): Likewise.
7962
7963 2010-03-20  Richard Guenther  <rguenther@suse.de>
7964
7965         PR rtl-optimization/43438
7966         * combine.c (make_extraction): Properly zero-/sign-extend an
7967         extraction of the low part of a CONST_INT.  Also handle
7968         CONST_DOUBLE.
7969
7970 2010-03-19  Mike Stump  <mikestump@comcast.net>
7971
7972         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7973         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7974         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7975
7976 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7977
7978         PR c/43211
7979         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7980         an error.
7981
7982 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7983
7984         PR rtl-optimization/42258
7985         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7986         use that may match DEF.
7987
7988         PR target/40697
7989         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7990         the cost of loading the constant rather than assuming
7991         COSTS_N_INSNS (1).
7992         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7993         outer code is AND, do the same tests as the andsi3 expander and
7994         return COSTS_N_INSNS (1) if and is cheap.
7995
7996         * optabs.c (avoid_expensive_constant): Fix formatting.
7997
7998 2010-03-19  Michael Matz  <matz@suse.de>
7999
8000         PR c++/43116
8001         * attribs.c (decl_attributes): When rebuilding a function pointer
8002         type use the same qualifiers as the original pointer type.
8003
8004 2010-03-19  Martin Jambor  <mjambor@suse.cz>
8005
8006         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
8007         and is_gimple_ip_invariant_address.
8008
8009 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8010
8011         Revert
8012         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8013
8014         * config/arm/arm.c (arm_override_options): Turn off
8015         flag_dwarf2_cfi_asm for AAPCS variants.
8016
8017 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8018
8019         PR target/43399
8020         * config/arm/arm.c (emit_multi_reg_push): Update comments.
8021         Use PRE_MODIFY instead of PRE_DEC.
8022         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
8023         (vfp_emit_fstmd): Likewise.
8024
8025 2010-03-19  Michael Matz  <matz@suse.de>
8026
8027         PR target/43305
8028         * builtins.c (expand_builtin_interclass_mathfn,
8029         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
8030         if that fails.
8031
8032 2010-03-19  Richard Guenther  <rguenther@suse.de>
8033
8034         PR tree-optimization/43415
8035         * tree-ssa-pre.c (phi_translate): Split out worker to ...
8036         (phi_translate_1): ... this.
8037         (phi_translate): Move all caching here.  Cache all NARY
8038         and REFERENCE translations.
8039
8040 2010-03-19  David S. Miller  <davem@davemloft.net>
8041
8042         With help from Eric Botcazou.
8043         * config/sparc/sparc.c: Include dwarf2out.h.
8044         (emit_pic_helper): Delete.
8045         (pic_helper_symbol_name): Delete.
8046         (pic_helper_emitted_p): Delete.
8047         (pic_helper_needed): New.
8048         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
8049         (get_pc_thunk_name): New.
8050         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
8051         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
8052         Set pic_helper_needed to true.  Don't call emit_pic_helper.
8053         (sparc_expand_prologue): Update load_pic_register call.
8054         (sparc_output_mi_thunk): Likewise.
8055         (sparc_file_end): Emit a hidden comdat symbol for the PIC
8056         thunk if possible.  Output CFI information as needed.
8057
8058 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8059             Jack Howarth <howarth@bromo.med.uc.edu>
8060
8061         PR target/36399
8062         * config/i386/i386.h: Fix ABI on darwin x86-32.
8063
8064 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
8065
8066         * tree.h: Declare make_decl_rtl_for_debug.
8067         * varasm.c (make_decl_rtl_for_debug): New.
8068         * dwarf2out.c (rtl_for_decl_location): Call it.
8069         * cfgexpand.c (expand_debug_expr): Call it.
8070
8071 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8072
8073         PR bootstrap/43399
8074         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
8075         mem_mode.
8076
8077         PR bootstrap/43403
8078         * var-tracking.c (vt_init_cfa_base): Do nothing if
8079         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
8080
8081 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
8082
8083         PR debug/42873
8084         * var-tracking.c (canonicalize_vars_star): New.
8085         (dataflow_post_merge_adjust): Use it.
8086
8087 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8088
8089         PR debug/43058
8090         * var-tracking.c (non_suitable_const): New function.
8091         (add_uses): For DEBUG_INSNs with constants, don't record any
8092         value, instead just the constant value itself.
8093         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
8094         is not VAR_LOC_UNKNOWN_P, set var to the constant.
8095         (emit_notes_in_bb): Likewise.
8096         (emit_note_insn_var_location): For onepart variables if
8097         cur_loc is a VOIDmode constant, use DECL_MODE.
8098
8099 2010-03-18  Martin Jambor  <mjambor@suse.cz>
8100
8101         PR middle-end/42450
8102         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
8103         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
8104         all non-clones.  Moved call redirection...
8105         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8106         (cgraph_materialize_all_clones): Dispose of all
8107         combined_args_to_skip bitmaps.
8108         (verify_cgraph_node): Do not check for edges pointing to wrong
8109         nodes in inline clones.
8110         * tree-inline.c (copy_bb): Call
8111         cgraph_redirect_edge_call_stmt_to_callee.
8112         * ipa.c (cgraph_remove_unreachable_nodes): Call
8113         cgraph_node_remove_callees even when there are used clones.
8114
8115 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8116
8117         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
8118
8119 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8120
8121         PR target/43383
8122         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
8123         for 32bit.
8124
8125 2010-03-18  Michael Matz  <matz@suse.de>
8126
8127         PR middle-end/43419
8128         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
8129         into sqrt(x) if we need to preserve signed zeros.
8130
8131 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
8132             Eric Botcazou  <ebotcazou@adacore.com>
8133
8134         PR rtl-optimization/43360
8135         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
8136         note if we don't know its invariant status.
8137
8138 2010-03-18  Michael Matz  <matz@suse.de>
8139
8140         PR tree-optimization/43402
8141         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
8142         PHI chains of ssa names registered for update.
8143
8144 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
8145
8146         PR target/42427
8147         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
8148         non-offsettable and pre_modify update addressing.
8149         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
8150         and "2" alternatives "#".
8151         (*movdd_softfloat32): Make all alternatives "#";
8152         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
8153         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
8154         (*movdf_softfloat32): Make all alternatives "#";
8155         (movdi): Use the new DIFD mode iterator to create a common splitter
8156         for movdi, movdf and movdd patterns.
8157
8158 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
8159
8160         * common.opt (dumpdir): Remove redundant tab.
8161
8162 2010-03-17  Martin Jambor  <mjambor@suse.cz>
8163
8164         PR tree-optimization/43347
8165         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
8166         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
8167
8168 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
8169
8170         PR rtl-optimization/42216
8171         * regrename.c (create_new_chain): New function, broken out from...
8172         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
8173         appending a use to an empty chain.
8174         (build_def_use): Remove previous changes that convert OP_INOUT to
8175         OP_OUT operands; instead detect the case where an OP_INOUT operand
8176         uses a previously untracked register and create an empty chain for it.
8177
8178 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8179
8180         * doc/extend.texi (Function Attributes): Rewrite unfinished
8181         sentence in ms_abi documentation.
8182
8183 2010-03-17  Alan Modra  <amodra@gmail.com>
8184
8185         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
8186         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
8187         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
8188         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
8189
8190 2010-03-16  Richard Henderson  <rth@redhat.com>
8191
8192         PR middle-end/43365
8193         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
8194         (lower_try_finally): Save and restore eh_seq around the expansion
8195         of the try-finally.
8196
8197 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8198
8199         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
8200         statements before splitting block.
8201
8202 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8203
8204         * doc/sourcebuild.texi (Testsuites): Fix markup.
8205         Use pathnames relative to gcc/testsuite.
8206         (Test Directives): Move description of how timeout is determined.
8207         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
8208         (C Tests): Correct gcc.misc-tests directory.
8209         Framework tests now live in gcc.test-framework.
8210
8211 2010-03-16  Richard Guenther  <rguenther@suse.de>
8212
8213         PR middle-end/43379
8214         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
8215         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
8216
8217 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8218             Alexandre Oliva  <aoliva@redhat.com>
8219
8220         PR tree-optimization/42917
8221         * lambda-code.c (remove_iv): Skip debug statements.
8222         (lambda_loopnest_to_gcc_loopnest): Likewise.
8223         (not_interesting_stmt): Debug statements are not interesting.
8224
8225 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
8226
8227         PR debug/43051
8228         PR debug/43092
8229         * cselib.c (cselib_preserve_constants,
8230         cfa_base_preserved_val): New static variables.
8231         (preserve_only_constants): New function.
8232         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
8233         clear its REG_VALUES.  If cselib_preserve_constants, don't
8234         empty the whole hash table, but preserve there VALUEs with constants,
8235         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
8236         (cselib_preserve_cfa_base_value): New function.
8237         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
8238         (cselib_init): Change argument to int bitfield.  Set
8239         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
8240         is in it.
8241         (cselib_finish): Clear cselib_preserve_constants and
8242         cfa_base_preserved_val.
8243         * cselib.h (enum cselib_record_what): New enum.
8244         (cselib_init): Change argument to int.
8245         (cselib_preserve_cfa_base_value): New prototype.
8246         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
8247         * dse.c (dse_step1): Likewise.
8248         * cfgcleanup.c (thread_jump): Likewise.
8249         * sched-deps.c (sched_analyze): Likewise.
8250         * gcse.c (local_cprop_pass): Likewise.
8251         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
8252         If FN is non-NULL, call the callback always and whenever it returns
8253         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
8254         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
8255         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
8256         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
8257         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
8258         * var-tracking.c: Include recog.h.
8259         (bb_stack_adjust_offset): Remove.
8260         (vt_stack_adjustments): Don't call it, instead just gather the
8261         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
8262         (adjust_stack_reference): Remove.
8263         (compute_cfa_pointer): New function.
8264         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
8265         (struct adjust_mem_data): New type.
8266         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
8267         functions.
8268         (get_address_mode): New function.
8269         (replace_expr_with_values): Use it.
8270         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
8271         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
8272         (adjust_sets): Remove.
8273         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8274         Use get_address_mode.
8275         (get_adjusted_src): Remove.
8276         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8277         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8278         (add_with_sets): Don't call adjust_sets.
8279         (fp_setter, vt_init_cfa_base): New functions.
8280         (vt_initialize): Change return type to bool.  Move most of pool etc.
8281         initialization to the beginning of the function from end.  Pass
8282         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8283         If !frame_pointer_needed, call vt_stack_adjustment before mos
8284         vector is filled, call vt_init_cfa_base if argp/framep has been
8285         eliminated to sp.  If frame_pointer_needed and argp/framep has
8286         been eliminated to hard frame pointer, set
8287         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8288         encountering fp setter in the prologue.  For MO_ADJUST, call
8289         log_op_type before pusing the op into mos vector, not afterwards.
8290         Call adjust_insn before cselib_process_insn/add_with_sets,
8291         call cancel_changes (0) afterwards.
8292         (variable_tracking_main_1): Adjust for vt_initialize calling
8293         vt_stack_adjustments and returning whether it succeeded or not.
8294
8295 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8296
8297         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8298         debug statements.
8299
8300 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8301
8302         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8303         has been set.
8304         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8305         drap_reg has not been set.
8306
8307 2010-03-15  Michael Matz  <matz@suse.de>
8308
8309         PR middle-end/43300
8310         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8311         use it to expand block copies.
8312         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8313         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8314         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8315
8316 2010-03-15  Richard Guenther  <rguenther@suse.de>
8317
8318         PR tree-optimization/43367
8319         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8320         elimination check.
8321
8322 2010-03-15  Richard Guenther  <rguenther@suse.de>
8323
8324         PR tree-optimization/43317
8325         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8326
8327 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8328
8329         PR tree-optimization/43141
8330         * tree-sra.c (create_abstract_origin): New function.
8331         (modify_function): Call create_abstract_origin.
8332
8333 2010-03-15  Chris Demetriou  <cgd@google.com>
8334
8335         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8336         wasn't copied.
8337
8338 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8339
8340         PR middle-end/43354
8341         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8342         call insert_out_of_ssa_copy for default definitions.
8343
8344 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8345
8346         * graphite-clast-to-gimple.c (my_long_long): Defined.
8347         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8348         * graphite-sese-to-poly.c (my_long_long): Defined.
8349         (scop_ivs_can_be_represented): Use it.
8350
8351 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8352
8353         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8354         graphite-max-bbs-per-function, and loop-block-tile-size.
8355         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8356         with "maximum".
8357         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8358
8359 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8360
8361         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8362         forward declaration.
8363         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8364         (add_upper_bounds_from_estimated_nit): New.
8365         (build_loop_iteration_domains): Use it.
8366
8367 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8368
8369         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8370
8371 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8372
8373         PR middle-end/43306
8374         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8375         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8376
8377 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8378
8379         * graphite.c (graphite_initialize): To bound the number of bbs per
8380         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8381         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8382         * doc/invoke.texi: Document it.
8383
8384 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8385
8386         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8387         * graphite-sese-to-poly.h (build_poly_scop): Same.
8388
8389 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8390
8391         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8392         the number of parameters in the scop.  Use as an upper bound
8393         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8394         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8395         * doc/invoke.texi: Document it.
8396
8397 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8398
8399         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8400         * doc/c-tree.texi: Remove.
8401         * doc/generic.texi: Merge c-tree.texi here.
8402         * doc/gccint.texi (Trees): Remove menu entry.
8403         (c-tree.texi): Remove @include.
8404         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8405         * doc/languages.texi (Reading RTL): Ditto.
8406
8407 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8408
8409         PR target/42869
8410         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8411
8412 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8413
8414         PR middle-end/42431
8415         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8416         code added to work around reload clobbering CONST insns.
8417
8418 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8419
8420         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8421         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8422         (cselib_preserve_only_values): Remove retain argument, don't
8423         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8424         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8425         * var-tracking.c (micro_operation): Move insn field before union.
8426         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8427         (struct variable_tracking_info_def): Remove n_mos field, change
8428         mos into a vector of micro_operations.
8429         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8430         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8431         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8432         changing into a vector.
8433         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8434         come before all other uops generated by add_stores.
8435         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8436         argument removal.
8437         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8438         a vector.  Run just one pass over the bbs instead of separate counting
8439         and computation phase.
8440         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8441
8442         PR debug/43329
8443         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8444         into *nonlocalized_list vector.
8445         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8446         even if origin is non-NULL.
8447         (gen_variable_die): Likewise.
8448         (process_scope_var): Don't change origin.
8449         (gen_decl_die): Likewise.
8450         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8451         before adding new edges instead of after it, fix moving over
8452         debug stmts.
8453
8454 2010-03-11  David S. Miller  <davem@davemloft.net>
8455
8456         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8457         of four.
8458         * configure: Rebuild.
8459
8460 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8461
8462         PR tree-optimization/43257
8463         * tree.c (assign_assembler_name_if_neeeded): New function.
8464         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8465         above new function.
8466         * tree.h (assign_assembler_name_if_neeeded): Declare.
8467         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8468         the function if needed.
8469
8470 2010-03-11  Chris Demetriou  <cgd@google.com>
8471
8472         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8473         include/stdint-gcc.h, and include/stdint.h world-readable.
8474
8475 2010-03-11  Richard Guenther  <rguenther@suse.de>
8476
8477         PR tree-optimization/43255
8478         * tree-vrp.c (process_assert_insertions_for): Do not insert
8479         asserts for trivial conditions.
8480
8481 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8482
8483         PR tree-optimization/43280
8484         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8485         generation.  Move calculation of size out of the if branch.
8486         (find_bswap): Modify compare number generation.
8487
8488 2010-03-11  Richard Guenther  <rguenther@suse.de>
8489
8490         PR lto/43200
8491         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8492         (input_gimple_stmt): Fixup handled component types during
8493         operand read.  Also fix up decls in ADDR_EXPRs.
8494
8495 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8496
8497         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8498         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8499
8500 2010-03-10  Jan Hubicka  <jh@suse.cz>
8501
8502         PR c/43288
8503         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8504         * varasm.c (get_variable_section): Don't do that here...
8505         (make_decl_rtl): ... and here.
8506         (do_assemble_alias): Produce decl RTL.
8507         (assemble_alias): Likewise.
8508
8509 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8510
8511         PR debug/43290
8512         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8513         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8514         of fde->vdrap_reg.
8515         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8516         (based_loc_descr): Only express drap or vdrap regno based expressions
8517         using DW_OP_fbreg when not optimizing.
8518         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8519         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8520         REG_CFA_SET_VDRAP note.
8521
8522 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8523
8524         PR tree-optimization/43236
8525         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8526         error in calculation of base address in reverse iteration case.
8527         (generate_builtin): Take number of latch executions if the statement
8528         is in the latch.
8529
8530 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8531
8532         PR middle-end/42859
8533         * tree-eh.c: Include pointer-set.h.
8534         (lower_eh_dispatch): Filter out duplicate case labels and
8535         remove the unneeded edge when the label is unused.  Return
8536         true when some edges are removed.
8537         (execute_lower_eh_dispatch): When any lowering resulted in
8538         removing an edge, also delete unreachable blocks.
8539
8540 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8541
8542         PR bootstrap/43287
8543         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8544         UNSPEC_MACHOPIC_OFFSET.
8545
8546 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8547
8548         PR target/43294
8549         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8550         (m68k_delegitimize_address): New function.
8551
8552 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8553
8554         PR debug/43299
8555         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8556
8557         PR debug/43299
8558         * var-tracking.c (adjust_sets): New function.
8559         (count_with_sets, add_with_sets): Use it.
8560         (get_adjusted_src): New inline function.
8561         (add_stores): Use it.
8562
8563         PR debug/43304
8564         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8565         call cselib_dummy_expand_value_rtx_cb instead of
8566         cselib_expand_value_rtx_cb.
8567
8568         PR debug/43293
8569         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8570         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8571         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8572         and .cfi_endproc around the pic thunks.
8573         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8574         all queued unwind info register saves are saved before the call.
8575         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8576         considered as sp-=4 for unwind info and the pop as sp+=4 which
8577         also clobbers dest, but doesn't actually restore it.
8578
8579         PR debug/43290
8580         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8581         RTX_FRAME_RELATED_P.
8582
8583 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8584
8585         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8586         whitespaces in output template.
8587
8588 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8589
8590         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8591         out array boundary.
8592
8593 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8594
8595         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8596         builtins.exp in a separate job.
8597
8598 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8599
8600         * graphite-sese-to-poly.c (add_param_constraints): Use
8601         lower_bound_in_type and upper_bound_in_type.
8602
8603 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8604
8605         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8606         instead of unsigned_type_node.
8607
8608 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8609             Reza Yazdani  <reza.yazdani@amd.com>
8610
8611         PR middle-end/43065
8612         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8613         on pointer type parameters.
8614
8615 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8616
8617         PR middle-end/42644
8618         PR middle-end/42130
8619         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8620         handle conversions from pointer to integers.
8621         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8622         induction variable, to be able to work with code generated by CLooG.
8623         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8624         (build_poly_scop): Bail out if we cannot codegen a loop.
8625
8626 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8627
8628         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8629         code generation with gloog_error.
8630
8631 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8632
8633         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8634         Call fold_convert on all the returned values.
8635         (expand_scalar_variables_expr): Pass to
8636         expand_scalar_variables_ssa_name the type of the resulting expression.
8637
8638 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8639
8640         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8641         ppl_min_for_le_pointset.
8642         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8643         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8644
8645 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8646
8647         * graphite-dependences.c (map_into_dep_poly): Removed.
8648         (dependence_polyhedron_1): Use combine_context_id_scat.
8649
8650 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8651
8652         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8653         (struct poly_bb): Same.
8654         (combine_context_id_scat): New.
8655
8656 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8657
8658         PR middle-end/42326
8659         * sese.c (name_defined_in_loop_p): Return false for default
8660         definitions.
8661
8662 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8663
8664         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8665         and clean up the logic.
8666
8667 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8668
8669         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8670         early return.
8671
8672 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8673
8674         * var-tracking.c (remove_cselib_value_chains): Define only for
8675         ENABLE_CHECKING.
8676         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8677         delete_slot_part, emit_notes_for_differences_1): Don't call
8678         remove_cselib_value_chains here.
8679         (set_slot_part, emit_notes_for_differences_2): Don't call
8680         add_cselib_value_chains here.
8681         (preserved_values): New vector.
8682         (preserve_value): New function.
8683         (add_uses, add_stores, vt_add_function_parameters): Use it
8684         instead of cselib_preserve_value.
8685         (changed_values_stack): New vector.
8686         (check_changed_vars_0): New function.
8687         (check_changed_vars_1, check_changed_vars_2): Use it.
8688         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8689         changed_values_stack VALUEs.
8690         (vt_emit_notes): For all preserved_values call
8691         add_cselib_value_chains.  If ENABLE_CHECKING call
8692         remove_cselib_value_chains before verifying value_chains is empty.
8693         Initialize and free changed_values_stack.
8694         (vt_initialize): Initialize preserved_values.
8695         (vt_finalize): Free preserved_values.
8696
8697 2010-03-08  Richard Guenther  <rguenther@suse.de>
8698
8699         PR tree-optimization/43269
8700         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8701         region detection.
8702
8703 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8704
8705         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8706         (ipa_is_param_called): Removed.
8707         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8708         (ipa_print_node_params): Do not print the called flag.
8709         (ipa_write_node_info): Do not stream the called flag.
8710         (ipa_read_node_info): Likewise.
8711
8712 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8713
8714         PR debug/43176
8715         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8716         * cselib.c (struct expand_value_data): Add dummy field.
8717         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8718         dummy to false.
8719         (cselib_dummy_expand_value_rtx_cb): New function.
8720         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8721         any rtl.
8722         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8723         * var-tracking.c: Include pointer-set.h.
8724         (variable): Change n_var_parts to char from int.  Add
8725         cur_loc_changed and in_changed_variables fields.
8726         (variable_canonicalize): Remove.
8727         (shared_var_p): New inline function.
8728         (unshare_variable): Maintain cur_loc_changed and
8729         in_changed_variables fields.  If var was in changed_variables,
8730         replace it there with new_var.  Just copy cur_loc instead of
8731         resetting it to something else.
8732         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8733         (dataflow_set_union): Don't call variable_canonicalize.
8734         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8735         of their DEBUG_EXPR_TREE_DECLs.
8736         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8737         and in_changed_variables and cur_loc_changed is false.
8738         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8739         and cur_loc_changed.  Don't update cur_loc here.
8740         (variable_merge_over_src): Don't call variable_canonicalize.
8741         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8742         removing loc that is equal to cur_loc, clear cur_loc,
8743         set cur_loc_changed and ensure variable_was_changed is called.
8744         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8745         compare pointers in cur_loc check, if it is equal to loc,
8746         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8747         (variable_different_p): Remove compare_current_location argument,
8748         don't compare cur_loc.
8749         (dataflow_set_different_1): Adjust variable_different_p caller.
8750         (variable_was_changed): If dv had some var in changed_variables
8751         already, reset in_changed_variables flag for it and propagate
8752         cur_loc_changed over to the new variable.  On empty var
8753         always set cur_loc_changed.  Set in_changed_variables on whatever
8754         var is added to changed_variables.
8755         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8756         Use shared_var_p.  When removing loc that is equal to cur_loc,
8757         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8758         end, don't set it to something else, just call variable_was_changed.
8759         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8760         loc being removed, clear cur_loc and set cur_loc_changed.
8761         Set cur_loc_changed if all locations have been removed.
8762         (struct expand_loc_callback_data): New type.
8763         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8764         allocated.  Always create SUBREGs if simplify_subreg failed.
8765         Prefer to use cur_loc, when that fails and still in
8766         changed_variables (and seen first time) recompute it.  Set
8767         cur_loc_changed of variables which had to change cur_loc and
8768         compute elcd->cur_loc_changed if any of the subexpressions used
8769         had to change cur_loc.
8770         (vt_expand_loc): Adjust to pass arguments in
8771         expand_loc_callback_data structure.
8772         (vt_expand_loc_dummy): New function.
8773         (emitted_notes): New variable.
8774         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8775         that weren't used for any other decl in current
8776         emit_notes_for_changes call call vt_expand_loc_dummy to update
8777         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8778         first loc_chain location if NULL before.  Always use just
8779         cur_loc instead of first loc_chain location.  When cur_loc_changed
8780         is false, when not --enable-checking=rtl just don't emit any note.
8781         When rtl checking, compute the note and assert it is the same
8782         as previous note.  Clear cur_loc_changed and in_changed_variables
8783         at the end before removing from changed_variables.
8784         (check_changed_vars_3): New function.
8785         (emit_notes_for_changes): Traverse changed_vars to call
8786         check_changed_vars_3 on each changed var.
8787         (emit_notes_for_differences_1): Clear cur_loc_changed and
8788         in_changed_variables.  Recompute cur_loc of new_var.
8789         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8790         (vt_emit_notes): Initialize and destroy emitted_notes.
8791
8792 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8793
8794         PR rtl-optimization/42220
8795         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8796         Use verify_reg_tracked to determine if we should use OP_OUT rather
8797         than OP_INOUT.
8798         (build_def_use): If we see an in-out operand for a register that we
8799         know nothing about, treat is an output if possible, fail the block if
8800         not.
8801
8802 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8803
8804         PR debug/42897
8805         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8806         permanently.
8807
8808 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8809
8810         PR debug/42897
8811         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8812         uses of relevant DEFs that are dead outside the loop too.
8813
8814 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8815
8816         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8817         Reverted:
8818         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8819         PR debug/41371
8820         * var-tracking.c (values_to_unmark): New variable.
8821         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8822         values_to_unmark vector.  Moved body to...
8823         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8824         instead queue it into values_to_unmark vector.
8825         (vt_find_locations): Free values_to_unmark vector.
8826
8827 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8828
8829         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8830         (site.exp): Export them when plugins are enabled.
8831
8832 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8833
8834         PR middle-end/42326
8835         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8836         that contain scevs.
8837         (chrec_fold_multiply): Same.
8838
8839 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8840
8841         PR c/43248
8842         * c-decl.c (build_compound_literal): Return early if init is
8843         an error_mark_node.
8844
8845 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8846
8847         PR tree-optimization/43164
8848         PR tree-optimization/43191
8849         * tree-sra.c (type_consists_of_records_p): Reject records with
8850         zero-size bit-fields at the end.
8851
8852 2010-03-04  Mike Stump  <mikestump@comcast.net>
8853
8854         * Makefile.in (TAGS): Remove *.y.
8855
8856 2010-03-04  Richard Guenther  <rguenther@suse.de>
8857
8858         PR tree-optimization/40761
8859         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8860         in reverse order.
8861         (my_rev_post_order_compute): New function.
8862         (init_pre): Call it.
8863
8864 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8865
8866         PR middle-end/43209
8867         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8868         decrease the cost of an IV candidate when the cost is infinite.
8869
8870 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8871
8872         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8873         Use '3DNow!' for the extension of that name, ensure normal space
8874         after the string.
8875         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8876
8877 2010-03-03  Jeff Law  <law@redhat.com>
8878
8879         * PR middle-end/32693
8880         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8881         than gen_rtx_SUBREG.
8882         (extract_bit_field_1): Likewise.
8883
8884 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8885
8886         * doc/sourcebuild.texi (Test directives): Document that arguments
8887         include-opts and exclude-opts are now optional for dg-skip-if,
8888         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8889
8890 2010-03-03  Jason Merrill  <jason@redhat.com>
8891
8892         PR c++/12909
8893         * cgraph.h (varpool_node): Add extra_name field.
8894         * varpool.c (varpool_extra_name_alias): New.
8895         (varpool_assemble_decl): Emit extra name aliases.
8896         (varpool_mark_needed_node): Look past an extra name alias.
8897         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8898         * lto-streamer-in.c (lto_input_tree): Read it.
8899         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8900
8901 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8902
8903         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8904         (sparc*-*-solaris2*): ...this.
8905
8906 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8907
8908         PR debug/43229
8909         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8910         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8911         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8912         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8913
8914         PR debug/43237
8915         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8916         fallthrough to default handling, just with want_address 0 instead of 2.
8917         For single element lists, add_AT_loc directly, otherwise create an
8918         artificial variable DIE and stick location list to it.
8919
8920         PR debug/43177
8921         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8922         (VAL_EXPR_HAS_REVERSE): Define.
8923         (reverse_op): New function.
8924         (add_stores): For reversible operations add an extra MO_VAL_USE.
8925
8926 2010-03-02  Jason Merrill  <jason@redhat.com>
8927
8928         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8929
8930 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8931
8932         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8933         (sparc64-*-linux*): Likewise.
8934         (sparc64-*-solaris2*): Include assembler files before linker ones.
8935         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8936         * config/sparc/gas.h: Delete.
8937         * config/sparc/sol2-64.h: Add copyright notice.
8938         * config/sparc/sol2-gas-bi.h: Likewise.
8939         * config/sparc/sol2-gld.h: Likewise.
8940         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8941         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8942         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8943         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8944         (sparc_elf_asm_named_section): Rename into...
8945         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8946
8947 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8948
8949         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8950
8951 2010-03-02  Jeff Law  <law@redhat.com>
8952
8953         PR middle-end/42431
8954         * reload1.c (rtx_p, substitute_stack): Declare.
8955         (substitute): Record addresses of changed rtxs.
8956         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8957         Restore the original rtx when complete.
8958         (reload): Free subsitute_stack when complete.
8959
8960 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8961
8962         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8963         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8964         new chapter.
8965         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8966         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8967         Torture Tests): Change from subsection to section.
8968
8969 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8970             Steven Bosscher  <steven@gcc.gnu.org>
8971
8972         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8973         instead of bb.
8974
8975 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8976
8977         PR middle-end/42640
8978         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8979         the assignment from the new induction variable to the assignment
8980         of the value from the original loop PHI function.
8981
8982 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8983             Daniel Jacobowitz  <dan@codesourcery.com>
8984
8985         * doc/sourcebuild.texi (Test directives): Clarify options to
8986         dg-skip-if.
8987
8988 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8989
8990         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8991         Disable cfi directives unless GCC and gas agree on using read-only
8992         .eh_frame sections for 64-bit.
8993         * configure: Regenerate.
8994
8995 2010-03-01  Richard Guenther  <rguenther@suse.de>
8996
8997         PR tree-optimization/43220
8998         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8999         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
9000
9001 2010-03-01  Richard Guenther  <rguenther@suse.de>
9002             Martin Jambor  <mjambor@suse.cz>
9003
9004         PR middle-end/41250
9005         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
9006         gimplified parameters.
9007
9008 2010-03-01  Christian Bruel  <christian.bruel@st.com>
9009
9010         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
9011
9012 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
9013
9014         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
9015
9016 2010-03-01  Richard Guenther  <rguenther@suse.de>
9017
9018         PR middle-end/43213
9019         * expr.c (expand_assignment): Use the alias-oracle to tell
9020         if the rhs aliases the result decl.
9021
9022 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9023
9024         PR pch/14940
9025         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
9026         to sol_gt_pch_get_address.
9027         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
9028         64-bit, SPARC and x86.
9029         (sol_gt_pch_get_address): New function.
9030
9031 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
9032
9033         * toplev.h (inform_n, error_n): Declare.
9034         * diagnostic.c (inform_n, error_n): New function.
9035
9036 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
9037
9038         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
9039         has no rtl yet when processing local_decls, queue it and recheck
9040         if deferred stack allocation hasn't assigned it rtl.
9041
9042 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9043
9044         * config/sh/sh.c (unspec_bbr_uid): New.
9045         (gen_block_redirect): Use it instead of INSN_UID.
9046         (gen_far_branch): Likewise.
9047
9048 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9049
9050         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
9051         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
9052
9053 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9054
9055         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
9056         (Warning Options): -Wno-conversion-null is valid for
9057         Objective-C++ as well.
9058         * doc/tm.texi (Named Address Spaces): Likewise.
9059         * doc/plugins.texi (Plugins): Replace TABs with spaces.
9060         * doc/tree-ssa.texi (Tree SSA): Likewise.
9061
9062 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9063
9064         PR bootstrap/43202
9065         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
9066         by default.  Don't set the default arch for
9067         i[34567]86-*-darwin*|x86_64-*-darwin*.
9068
9069 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9070
9071         PR bootstrap/43202
9072         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
9073         default.  Set the default 32bit/64bit archs with $with_arch
9074         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
9075
9076 2010-02-27  Richard Guenther  <rguenther@suse.de>
9077
9078         PR tree-optimization/43186
9079         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
9080         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
9081         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
9082         unroller iterations.
9083
9084 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9085
9086         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
9087         required and i[34567]86-*-* targets don't support 64bit ISA.
9088
9089 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
9090
9091         PR ada/43096
9092         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9093         the same alias set.
9094
9095 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9096
9097         * config.gcc: Set the default arch at least to Prescott for
9098         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
9099         if SSE math is enabled.
9100
9101 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9102
9103         * diagnostic.c (diagnostic_initialize): Update.
9104         (diagnostic_report_diagnostic): Test inhibit_notes_p for
9105         informative notes.
9106         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
9107         (diagnostic_inhibit_notes): New.
9108         * toplev.c (process_options): inhibit notes with -fcompare-debug.
9109
9110 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9111
9112         PR c/20631
9113         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
9114         * doc/standards.texi: Likewise.
9115         * doc/extend.texi: Likewise.
9116         * doc/trouble.texi: Likewise.
9117         * doc/cppopts.texi: Likewise.
9118         * doc/install.texi: Likewise.
9119         * c.opt (std=c90,std=gnu90): New options.
9120         * c-opts.c (c_common_handle_option): Handle them.
9121
9122 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9123
9124         PR c/24577
9125         * c-decl.c (undeclared_variable): Use an informative note.
9126
9127 2010-02-26  Richard Guenther  <rguenther@suse.de>
9128
9129         PR tree-optimization/43186
9130         * gimple.h (gimple_fold): Remove.
9131         * gimple.c (gimple_fold): Remove.  Inline into single user ...
9132         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
9133         Try harder for conditions.
9134
9135 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9136
9137         PR debug/43190
9138         * function.c (used_types_insert): Don't skip through named pointer
9139         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
9140         and it is different from the main variant's type.
9141
9142 2010-02-26  Nick Clifton  <nickc@redhat.com>
9143
9144         * config/rx/rx.md (sminsi3): Remove bogus alternative.
9145
9146 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9147
9148         * config.gcc: Support --with-fpmath=sse for x86.
9149
9150         * config/i386/ssemath.h: New.
9151
9152         * doc/install.texi (--with-fpmath=sse): Documented.
9153
9154 2010-02-26  Richard Guenther  <rguenther@suse.de>
9155
9156         PR tree-optimization/43188
9157         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
9158         vector types of over-aligned element type.
9159
9160 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
9161
9162         PR target/43175
9163         * config/i386/i386.c (expand_vec_perm_blend): Use correct
9164         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
9165
9166 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
9167
9168         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
9169
9170 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9171
9172         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
9173         * var-tracking.c: Include diagnostic.h.
9174         (debug_dv): New function.
9175         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
9176
9177         PR debug/43160
9178         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
9179         (add_value_chain, add_value_chains, remove_value_chain,
9180         remove_value_chains): Handle DEBUG_EXPRs.
9181         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
9182
9183         PR debug/43161
9184         * regcprop.c (struct queued_debug_insn_change): New type.
9185         (struct value_data_entry): Add debug_insn_changes field.
9186         (struct value_data): Add n_debug_insn_changes field.
9187         (debug_insn_changes_pool): New variable.
9188         (free_debug_insn_changes, apply_debug_insn_changes,
9189         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
9190         (kill_value_one_regno): Call free_debug_insn_changes if needed.
9191         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
9192         fields.
9193         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
9194         changes for them.
9195         (copyprop_hardreg_forward_1): Don't call apply_change_group for
9196         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
9197         changes, call cprop_find_used_regs via note_stores.
9198         (copyprop_hardreg_forward): When copying vd from predecessor
9199         which has any queued DEBUG_INSN changes, make sure the pointers are
9200         cleared.  At the end call df_analyze and then if there are any
9201         DEBUG_INSN changes queued at the end of some basic block for still
9202         live registers, apply them.
9203         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
9204
9205 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
9206
9207         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
9208         (arm*-*-*): Ditto.
9209
9210 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9211
9212         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
9213         targets.  Set the default with_cpu/with_arch from arch/cpu.
9214         Allow x86-64 and native for with_cpu/with_arch.
9215
9216 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
9217
9218         * ebitmap.c: Change calls to verify_popcount with calls to
9219         sbitmap_verify_popcount.
9220         (ebitmap_clear_bit): Fixed map->cacheindex test and
9221         map>cache update when bit clearing results in an empty
9222         element.
9223
9224 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9225
9226         PR target/43154
9227         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
9228         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
9229         and support both V2DF and V2DI modes.
9230         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
9231         support both V2DF and V2DI modes.
9232         (general): Delete trailing whitespace from a few patterns.
9233
9234         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9235         V2DF/V2DI interleave high/low builtins.
9236
9237         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
9238         new VSX builtins.
9239
9240         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
9241         interleave high/low functions.
9242
9243 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
9244
9245         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
9246         #pragma extern_prefix.
9247
9248 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
9249
9250         PR debug/43166
9251         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
9252         BLKmode, assert op0 is a MEM and just adjust its mode.
9253
9254         PR debug/43165
9255         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
9256         if bitpos isn't multiple of mode's bitsize.
9257
9258 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9259
9260         * c.opt (-ftemplate-depth=): New.
9261         (-ftemplate-depth-): Deprecate.
9262         * optc-gen.awk: Handle -ftemplate-depth=.
9263         * opth-gen.awk: Likewise.
9264         * c-opts.c (c_common_handle_option): Likewise.
9265         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
9266
9267 2010-02-24  Jason Merrill  <jason@redhat.com>
9268
9269         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
9270
9271 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9272
9273         * cfg.c (alloc_aux_for_block): Remove inline.
9274         (alloc_aux_for_edge): Likewise.
9275
9276 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9277
9278         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9279
9280 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9281
9282         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9283         * config/i386/sol2-gas.h: New file.
9284         * config.gcc (i[34567]86-*-solaris2*): Use it.
9285
9286 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9287
9288         PR c/43128
9289         * c-typeck.c (ep_convert_and_check): New.
9290         (build_conditional_expr): Use it.
9291         (build_binary_op): Likewise.
9292
9293 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9294
9295         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9296
9297         PR debug/43150
9298         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9299         bounds even for -O+.
9300         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9301         expr needs to have DECL_NAME set.
9302
9303 2010-02-24  Nick Clifton  <nickc@redhat.com>
9304
9305         * config/mep/mep.c: Include gimple.h.
9306         (mep_function_uses_sp): Delete unused function.
9307         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9308         parameters.  Use unsigned integers to count args.  Return a
9309         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9310
9311 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9312
9313         PR target/43107
9314         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9315         greater or equal to nelt instead of 2 * nelt.
9316         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9317         with nelt - 1.
9318
9319 2010-02-23  Jason Merrill  <jason@redhat.com>
9320
9321         PR debug/42800
9322         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9323         in cfun->local_decls even if they have register types.
9324
9325         PR c++/42837
9326         * stor-layout.c (place_field): Don't warn about unnecessary
9327         DECL_PACKED if the type is packed.
9328
9329 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9330
9331         PR target/43139
9332         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9333         GOTOFF relocs, even when the base reg isn't pic pointer.
9334
9335 2010-02-23  Michael Matz  <matz@suse.de>
9336
9337         PR debug/43077
9338         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9339         (expand_gimple_basic_block): Generate and use debug temps if there
9340         are debug uses left after the last real use of TERed ssa names.
9341         Unlink debug immediate uses when they are expanded.
9342
9343 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9344
9345         PR 43123
9346         * config/i386/i386.c (override_options): Reorganise to provide
9347         better error messages.
9348
9349 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9350
9351         PR middle-end/43083
9352         * graphite-scop-detection.c (create_single_exit_edge): Move
9353         the call to find_single_exit_edge to....
9354         (create_sese_edges): ...here.  Don't handle multiple edges
9355         exiting the function.
9356         (build_graphite_scops): Don't handle multiple edges
9357         exiting the function.
9358
9359 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9360
9361         PR middle-end/43097
9362         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9363         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9364
9365 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9366
9367         PR middle-end/43026
9368         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9369
9370 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9371
9372         PR c++/43126
9373         * c-typeck.c (convert_arguments): Print declaration location.
9374         * c-common.c (validate_nargs): Rename as
9375         builtin_function_validate_nargs.
9376         (check_builtin_function_arguments): Update.
9377
9378 2010-02-22  Richard Guenther  <rguenther@suse.de>
9379
9380         PR lto/43045
9381         * tree-inline.c (declare_return_variable): Use the type of
9382         the call stmt lhs if available.
9383
9384 2010-02-22  Duncan Sands  <baldrick@free.fr>
9385
9386         * passes.c (register_pass): Always consider all pass lists when
9387         ref_pass_instance_number is zero.
9388
9389 2010-02-22  Richard Guenther  <rguenther@suse.de>
9390
9391         PR tree-optimization/42749
9392         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9393         parameter.  Do arithmetic in the original type.
9394         (update_accumulator_with_ops): Likewise.
9395         (adjust_accumulator_values): Adjust.
9396
9397 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9398
9399         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9400         (QI to BLKmode splitter): New splitter.
9401
9402 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9403
9404         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9405         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9406
9407 2010-02-22  Richard Guenther  <rguenther@suse.de>
9408
9409         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9410
9411 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9412
9413         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9414         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9415         ($(T)crti.o, $(T)crtn.o): Remove rules.
9416
9417 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9418
9419         PR fortran/35259
9420         * doc/invoke.texi (-fassociative-math): Document that this
9421         option is automatically enabled for Fortran.
9422
9423 2010-02-20  David S. Miller  <davem@davemloft.net>
9424
9425         * configure.ac: Test if linker and assembler properly support
9426         GOTDATA_OP relocations.
9427         * configure: Rebuild.
9428         * config.in: Likewise.
9429         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9430         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9431         (movsi_high_pic): Likewise.
9432         (movdi_lo_sum_pic): Likewise.
9433         (movdi_high_pic): Likewise.
9434         (movsi_pic_gotdata_op): New pattern.
9435         (movdi_pic_gotdata_op): Likewise.
9436         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9437         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9438
9439 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9440
9441         PR target/43067
9442         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9443         attribute to ssemul.
9444         (xop_mulv2div2di3_high): Ditto.
9445
9446 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9447
9448         PR c++/35669
9449         * c.opt (Wconversion-null): New option.
9450         * doc/invoke.texi (Wconversion-null): Document.
9451
9452 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9453
9454         * common.opt (Wlarger-than-): Add Undocumented.
9455
9456 2010-02-19  Mike Stump  <mikestump@comcast.net>
9457
9458         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9459
9460 2010-02-19  Jason Merrill  <jason@redhat.com>
9461
9462         PR target/40332
9463         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9464         * configure: Likewise.
9465
9466 2010-02-20  Alan Modra  <amodra@gmail.com>
9467
9468         PR middle-end/42344
9469         * cgraph.h (cgraph_make_decl_local): Declare.
9470         * cgraph.c (cgraph_make_decl_local): New function.
9471         (cgraph_make_node_local): Use it.
9472         * cgraphunit.c (cgraph_function_versioning): Likewise.
9473         * ipa.c (function_and_variable_visibility): Likewise.
9474
9475 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9476
9477         PR bootstrap/43121
9478         * except.c (sjlj_emit_function_enter): Don't call
9479         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9480         directly.
9481         * rtl.h (add_reg_br_prob_note): Remove prototype.
9482
9483 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9484
9485         PR 41779
9486         * c-common.c (conversion_warning): Remove widening conversions
9487         before checking the conversion of integers to reals.
9488
9489 2010-02-19  Mike Stump  <mikestump@comcast.net>
9490
9491         PR middle-end/43125
9492         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9493
9494         PR objc/43061
9495         * cgraphunit.c (process_function_and_variable_attributes): Check
9496         DECL_PRESERVE_P instead of looking up attribute "used".
9497         * ipa-pure-const.c (check_decl): Likewise.
9498         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9499         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9500         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9501         instead of attribute "used".
9502         * config/sol2-c.c (solaris_pragma_init): Likewise.
9503         (solaris_pragma_fini): Likewise.
9504
9505 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9506
9507         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9508         Use XCNEW instead of xcalloc.
9509         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9510         XNEW instead of xmalloc.
9511         (get_fields): Use XNEWVEC instead of xmalloc.
9512
9513         PR debug/43084
9514         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9515         populate vars array.
9516         (create_new_general_access): For debug stmts just reset value.
9517         (get_stmt_accesses): For accesses within debug stmts just record them
9518         using add_access_to_acc_sites instead of preventing the peeling or
9519         counting them as accesses.
9520
9521         PR middle-end/42233
9522         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9523
9524 2010-02-19  Richard Guenther  <rguenther@suse.de>
9525
9526         PR tree-optimization/42916
9527         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9528         instructions.
9529
9530 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9531
9532         * configure.ac: Replace all uses of changequote in macro arguments
9533         with proper quoting.
9534
9535 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9536
9537         PR middle-end/42233
9538         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9539
9540 2010-02-19  Richard Guenther  <rguenther@suse.de>
9541
9542         PR tree-optimization/42944
9543         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9544         test for aliasing with errno.
9545
9546 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9547
9548         PR middle-end/42233
9549         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9550         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9551         * dojump.c: Include output.h.
9552         (inv): New inline function.
9553         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9554         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9555         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9556         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9557         argument, pass it down to other calls.
9558         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9559         add REG_BR_PROB note to the conditional jump.
9560         * cfgexpand.c (add_reg_br_prob_note): Removed.
9561         (expand_gimple_cond): Don't call it, add the probability
9562         as last argument to jumpif_1/jumpifnot_1.
9563         * Makefile.in (dojump.o): Depend on output.h.
9564         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9565         callers.
9566         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9567         * stmt.c (do_jump_if_equal): Likewise.
9568         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9569         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9570         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9571         Likewise.
9572         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9573         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9574         jumpifnot_1 callers.
9575         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9576         callers.
9577         (store_expr): Adjust jumpifnot caller.
9578         (store_constructor): Adjust jumpif caller.
9579
9580         PR middle-end/42233
9581         * gimplify.c (gimple_boolify): For __builtin_expect call
9582         gimple_boolify also on its first argument.
9583
9584 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9585
9586         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9587         changequote block.
9588         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9589         * configure: Regenerated.
9590
9591 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9592
9593         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9594         lang_hooks.types_compatible_p instead of comptypes.
9595
9596 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9597
9598         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9599         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9600         if __prefer_thumb__ is defined.
9601
9602 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9603
9604         PR tree-optimization/43066
9605         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9606         array with zero-sized element type.
9607
9608 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9609
9610         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9611         rtx, allocate struct var_loc_node here and return it to the
9612         caller, and only if it is actually needed.
9613         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9614         move it earlier and return immediately if it returns NULL.
9615
9616 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9617
9618         * config/sparc/gas.h: New file.  Restore
9619         TARGET_ASM_NAMED_SECTION to its ELF default.
9620         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9621         check !HAVE_GNU_AS.
9622         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9623         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9624         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9625         after sparc/sysv4.h.
9626
9627 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9628
9629         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9630
9631 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9632
9633         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9634         patterns from predicated pattern.
9635
9636 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9637
9638         PR target/43103
9639         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9640         for insn mnemonic suffix.
9641
9642 2010-02-17  Richard Guenther  <rguenther@suse.de>
9643
9644         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9645         to loop PHI nodes.
9646
9647 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9648
9649         PR debug/42918
9650         * caller-save.c (save_call_clobbered_regs): If BB ends with
9651         a DEBUG_INSN, move any notes in between last real insn and the last
9652         DEBUG_INSN after the last DEBUG_INSN.
9653
9654 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9655
9656         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9657         Fix return type.  Fix argument type.  Explain meaning of return value.
9658
9659 2010-02-16  Richard Guenther  <rguenther@suse.de>
9660
9661         PR tree-optimization/41043
9662         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9663         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9664         statements ...
9665         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9666
9667 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9668
9669         PR tree-optimization/43074
9670         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9671         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9672         vectorizable cycles in hybrid SLP check.
9673         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9674
9675 2010-02-16  Richard Guenther  <rguenther@suse.de>
9676
9677         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9678         (true_dependence): If memrefs_conflict_p computes must-alias
9679         trust it.  Move TBAA check after offset-based disambiguation.
9680         (canon_true_dependence): Likewise.
9681
9682 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9683
9684         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9685         * doc/invoke.texi: Document it.
9686         * var-tracking.c: Include toplev.h and params.h.
9687         (vt_find_locations): Return bool indicating success.  Compute
9688         hash sizes unconditionally.  Check new parameter, report.
9689         (variable_tracking_main_1): Check vt_find_locations results and
9690         retry.  Renamed from...
9691         (variable_tracking_main): ... this.  New wrapper to preserve
9692         flag_var_tracking_assignments.
9693         * Makefile.in (var-tracking.o): Adjust dependencies.
9694
9695 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9696             Jakub Jelinek <jakub@redhat.com>
9697
9698         PR target/42854
9699         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9700         if weak_import attribute is present.
9701         * config/darwin.c (machopic_select_section): Likewise.
9702
9703 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9704
9705         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9706         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9707         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9708         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9709
9710         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9711         types.
9712
9713         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9714         Fix argument types.
9715
9716         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9717         Rewrite text to refer to the names.
9718
9719 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9720
9721         * config/i386/i386-builtin-types.def
9722         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9723         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9724         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9725         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9726         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9727         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9728         IX86_BUILTIN_VPERMIL2PS256.
9729         (MULTI_ARG_4_DF2_DI_I): Defined.
9730         (MULTI_ARG_4_DF2_DI_I1): Defined.
9731         (MULTI_ARG_4_SF2_SI_I): Defined.
9732         (MULTI_ARG_4_SF2_SI_I1): Defined.
9733         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9734         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9735         __builtin_ia32_vpermil2ps256.
9736         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9737         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9738         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9739         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9740         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9741         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9742         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9743         CODE_FOR_xop_vpermil2v8sf3.
9744         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9745         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9746         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9747         (_mm256_permute2_pd): New.
9748         (_mm_permute2_ps): New.
9749         (_mm256_permute2_ps): New.
9750
9751 2010-02-15  Nick Clifton  <nickc@redhat.com>
9752
9753         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9754         boolean parameters.  Use emit_jump_insn when emitting a pop
9755         instruction containing a return insn.
9756         (push): Use 'true' rather than '1' as second parameter to F.
9757         (h8300_expand_prologue): Likewise.
9758         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9759         (h8300_expand_epilogue): Likewise.
9760
9761 2010-02-15  Richard Guenther  <rguenther@suse.de>
9762
9763         PR middle-end/43068
9764         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9765         if that is zero.
9766
9767 2010-02-15  Nick Clifton  <nickc@redhat.com>
9768
9769         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9770         delta.
9771
9772 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9773
9774         * intl.c (fake_ngettext): New function.
9775         * intl.h (fake_ngettext): Declare.
9776         (ngettext): Define macro.
9777         * collect2.c (notice_translated): New function.
9778         (main): Use notice_translated and ngettext.
9779         * collect2.h (notice_translated): Declare.
9780
9781 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9782
9783         * reorg.c (delete_computation): Comment fixes.
9784         * caller-save.c (setup_save_areas): Idem.
9785         * sel-sched-dump.c (dump_lv_set): Idem.
9786         * rtl.def: Idem.
9787
9788 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9789
9790         * config/s390/s390.c (s390_sched_init): New function.
9791         (TARGET_SCHED_INIT): Target hook defined.
9792
9793 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9794             Jack Howarth  <howarth@bromo.med.uc.edu>
9795             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9796
9797         PR target/42982
9798         Partial revert of unintended change in fix for PR41605.
9799         * config/darwin.h: Fix typo.
9800         * config/darwin9.h: Same.
9801
9802 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9803
9804         * c-pch.c (pch_init): Clear v.
9805
9806 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9807
9808         PR middle-end/42930
9809         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9810         graphite_can_represent_init for MULT_EXPR.
9811
9812 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9813
9814         PR middle-end/42914
9815         PR middle-end/42530
9816         * graphite-sese-to-poly.c (remove_phi): New.
9817         (translate_scalar_reduction_to_array): Call remove_phi.
9818
9819 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9820
9821         PR middle-end/42771
9822         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9823         * graphite-clast-to-gimple.h (gloog): Update declaration.
9824         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9825         * graphite-poly.h (struct poly_bb): Add missing comments.
9826         (struct scop): Add poly_scop_p field.
9827         (POLY_SCOP_P): New.
9828         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9829         * graphite.c (graphite_transform_loops): Build the polyhedral
9830         representation for each scop before code generation.
9831         * sese.c (rename_variables_in_operand): Removed.
9832         (rename_variables_in_expr): Return the renamed expression.
9833         (rename_sese_parameters): New.
9834         * sese.h (rename_sese_parameters): Declared.
9835
9836 2010-02-11  Richard Guenther  <rguenther@suse.de>
9837
9838         PR tree-optimization/42998
9839         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9840         POINTER_PLUS_EXPR properly.
9841
9842 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9843             Changpeng Fang  <changpeng.fang@amd.com>
9844
9845         PR middle-end/40886
9846         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9847         the cost of an IV candidate when the IV is used in a test against zero.
9848
9849         * gcc.dg/tree-ssa/ivopts-3.c: New.
9850
9851 2010-02-11  Richard Guenther  <rguenther@suse.de>
9852
9853         PR lto/41664
9854         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9855         pointer-vs-decl case by swapping refs.  Handle some cases
9856         of pointer-vs-decl disambiguations more conservatively.
9857         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9858         to false after expanding.
9859
9860 2010-02-11  Richard Guenther  <rguenther@suse.de>
9861
9862         PR driver/43021
9863         * gcc.c (process_command): Handle LTO file@offset case more
9864         appropriately.
9865
9866 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9867
9868         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9869         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9870         of DEBUG_INSNs.
9871         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9872
9873         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9874         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9875         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9876         Optimize eq/ne comparisons when both arguments are known to be
9877         zero-extended.
9878         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9879         Don't mask operands unnecessarily if they are known to be already
9880         zero-extended.
9881
9882 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9883
9884         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9885         instead of loop.
9886
9887 2010-02-10  Richard Guenther  <rguenther@suse.de>
9888
9889         PR tree-optimization/43017
9890         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9891         for wrapping signed arithmetic.
9892
9893 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9894
9895         PR debug/43010
9896         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9897         if no debug info should be emitted for it.
9898
9899 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9900
9901         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9902         note when flag_exceptions is set.
9903
9904 2010-02-10  Duncan Sands  <baldrick@free.fr>
9905
9906         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9907
9908 2010-02-10  Richard Guenther  <rguenther@suse.de>
9909
9910         PR c/43007
9911         * tree.c (get_unwidened): Handle constants.
9912         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9913
9914 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9915
9916         PR lto/42985
9917         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9918         check for variable argument counts independently.
9919
9920 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9921
9922         PR target/42841
9923         * config/sh/sh.c (find_barrier): Increase length for non delayed
9924         conditional branches.
9925
9926 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9927
9928         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9929
9930 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9931
9932         * builtins.c (set_builtin_user_assembler_name): Also handle
9933         ffs if int is smaller than word.
9934
9935 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9936
9937         PR middle-end/42973
9938         * ira-conflicts.c (get_dup): Remove.
9939         (process_reg_shuffles): Add new parameter.  Use it as an
9940         additional guard for copy generation.
9941         (add_insn_allocno_copies): Rewrite.
9942
9943 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9944
9945         * common.opt (fsched2-use-traces): Preserved for backward
9946         compatibility.
9947         * doc/invoke.texi: Remove the documentation about option
9948         -fsched2-use-traces.
9949         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9950         flag_sched2_use_traces.
9951         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9952         the backward compatibility flag section.
9953
9954 2010-02-09  Richard Guenther  <rguenther@suse.de>
9955
9956         PR tree-optimization/43008
9957         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9958         make HEAP variables initialized from global memory if they
9959         are not known builtin functions.
9960         (find_func_aliases): Adjust.
9961
9962 2010-02-09  Richard Guenther  <rguenther@suse.de>
9963
9964         PR tree-optimization/43000
9965         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9966         arithmetic manually.
9967
9968 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9969
9970         PR tree-optimization/42931
9971         * tree-loop-linear.c (try_interchange_loops): Don't call
9972         double_int_mul if estimated_loop_iterations failed.
9973
9974 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9975
9976         PR middle-end/42898
9977         * tree-sra.c (build_accesses_from_assign): Do not mark in
9978         should_scalarize_away_bitmap if stmt has volatile ops.
9979         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9980         has volatile ops.
9981
9982 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9983
9984         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9985
9986 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9987
9988         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9989         before the pattern.
9990
9991 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9992
9993         PR middle-end/42946
9994         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9995
9996 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9997
9998         PR middle-end/42988
9999         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
10000         to unknown_dependence.
10001         (graphite_legal_transform_dr): Handle the unknown_dependence.
10002         (graphite_carried_dependence_level_k): Same.
10003
10004 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
10005
10006         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
10007
10008 2010-02-07  Richard Guenther  <rguenther@suse.de>
10009
10010         PR middle-end/42991
10011         * expr.c (get_inner_reference): Always initialize *pbitsize.
10012
10013 2010-02-07  Richard Guenther  <rguenther@suse.de>
10014
10015         PR middle-end/42956
10016         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
10017         new ARRAY_REFs on variable size element or minimal index arrays.
10018         Complete.
10019         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
10020         gimple_fold_indirect_ref.
10021
10022 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
10023
10024         PR target/42957
10025         * arm.c (arm_override_options): Just return if the user has specified
10026         an invalid fpu name.
10027
10028 2010-02-03  Jason Merrill  <jason@redhat.com>
10029
10030         PR c++/42870
10031         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
10032         i386_pe_maybe_record_exported_symbol.
10033
10034 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
10035
10036         PR target/42924
10037         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10038         (pa_delegitimize_address): New function.
10039
10040 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
10041
10042         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
10043         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
10044
10045 2010-02-05  Richard Guenther  <rguenther@suse.de>
10046
10047         PR lto/42762
10048         * lto-streamer-in.c (get_resolution): Deal with references
10049         to undefined functions.
10050
10051 2010-02-05  Richard Guenther  <rguenther@suse.de>
10052
10053         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
10054         (fold_const_aggregate_ref): Likewise.
10055         (ccp_fold_stmt): Substitute loads.
10056         (maybe_fold_reference): Verify types before substituting.
10057         Unshare properly.
10058         (fold_gimple_assign): Unshare properly.
10059         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
10060
10061 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
10062
10063         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
10064         for rs6000_gen_cell_microcode.
10065
10066 2010-02-04  Richard Guenther  <rguenther@suse.de>
10067
10068         PR rtl-optimization/42952
10069         * dse.c (const_or_frame_p): Remove MEM handling.
10070
10071 2010-02-04  Nick Clifton  <nickc@redhat.com>
10072
10073         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10074         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10075         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
10076         (mn10300_asm_output_mi_thunk): New function.
10077         (mn10300_can_output_mu_thunk): New function.
10078         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
10079         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
10080         (FUNCTION_ARG): Delete incorrect comment.
10081
10082 2010-02-03  Jason Merrill  <jason@redhat.com>
10083
10084         PR c++/40138
10085         * fold-const.c (operand_equal_p): Handle erroneous types.
10086
10087 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10088
10089         * config/h8300/h8300.md (can_delay): Fix attibute condition.
10090
10091 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
10092
10093         PR rtl-optimization/42941
10094         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
10095         of xmalloc.
10096
10097 2010-02-03  Jason Merrill  <jason@redhat.com>
10098
10099         PR c++/35652
10100         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
10101
10102 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
10103
10104         PR debug/42896
10105         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
10106         (cselib_reset_table): Renamed from...
10107         (cselib_reset_table_with_next_value): ... this.
10108         (cselib_get_next_uid): Renamed from...
10109         (cselib_get_next_unknown_value): ... this.
10110         * cselib.c (next_uid): Renamed from...
10111         (next_unknown_value): ... this.
10112         (cselib_clear_table): Adjust.
10113         (cselib_reset_table): Adjust.  Renamed from...
10114         (cselib_reset_table_with_next_value): ... this.
10115         (cselib_get_next_uid): Adjust.  Renamed from...
10116         (cselib_get_next_unknown_value): ... this.
10117         (get_value_hash): Use hash.
10118         (cselib_hash_rtx): Likewise.
10119         (new_cselib_val): Adjust.  Set and dump uid.
10120         (cselib_lookup_mem): Pass next_uid as hash.
10121         (cselib_subst_to_values): Likewise.
10122         (cselib_log_lookup): Dump uid.
10123         (cselib_lookup): Pass next_uid as hash.  Adjust.
10124         (cselib_process_insn): Adjust.
10125         (cselib_init): Initialize next_uid.
10126         (cselib_finish): Adjust.
10127         (dump_cselib_table): Likewise.
10128         * dse.c (canon_address): Dump value uid.
10129         * print-rtl.c (print_rtx): Print value uid.
10130         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
10131         (dvuid): New type.
10132         (dv_uid): New function, sort of renamed from...
10133         (dv_htab_hash): ... this, reimplemented in terms of it and...
10134         (dv_uid2hash): ... this.  New.
10135         (variable_htab_eq): Drop excess assertions.
10136         (tie_break_pointers): Removed.
10137         (canon_value_cmp): Compare uids.
10138         (variable_post_merge_New_vals): Print uids.
10139         (vt_add_function_parameters): Adjust.
10140         (vt_initialize): Reset table.  Adjust.
10141
10142 2010-02-03  Richard Guenther  <rguenther@suse.de>
10143
10144         PR tree-optimization/42944
10145         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
10146         (call_may_clobber_ref_p_1): Likewise.  Properly handle
10147         malloc and calloc clobbering errno.
10148
10149 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
10150
10151         * doc/invoke.texi: Fix name of sched1 dump.
10152
10153         * opts.c (decode_options): Set flag_tree_switch_conversion
10154         only conditionally on optimize >= 2.
10155
10156         * gcse.c: Assorted comment fixes in pass description.
10157
10158 2010-02-03  Anthony Green  <green@moxielogic.com>
10159
10160         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
10161         nop padding in order to maintain alignment of storage location of
10162         target function address.
10163         (moxie_trampoline_init): Store target function address at newly
10164         aligned location.
10165         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
10166         to 32.
10167         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
10168
10169 2010-02-03  Richard Guenther  <rguenther@suse.de>
10170
10171         PR middle-end/42927
10172         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
10173
10174 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10175
10176         * config.gcc: Reenable check for obsolete targets.
10177         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
10178         mips-sgi-irix6.[0-4]*.
10179
10180 2010-02-02  Nick Clifton  <nickc@redhat.com>
10181
10182         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
10183         constant size of 4 as being the same as 0.
10184         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
10185         can take values in the range 0..4.
10186
10187 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
10188
10189         PR java/41991
10190         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
10191         as _darwin10_Unwind_FindEnclosingFunction().
10192         * libgcc-libsystem.ver: New.
10193
10194 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
10195
10196         PR target/41399
10197         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
10198         implicitly set registers.
10199
10200 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
10201
10202         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
10203         (arm_override_options): Allow automatic selection of the thread
10204         pointer register if thumb2.
10205         (legitimize_pic_address): Improve code sequences for Thumb2.
10206         (arm_call_tls_get_addr): Likewise.
10207         (legitimize_tls_address): Likewise.
10208         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
10209         (pic_load_addr_32bit): ... this.  New named pattern.
10210         * thumb2.md (pic_load_addr_thumb2): Delete.
10211         (pic_load_dot_plus_four): Delete.
10212         (tls_load_dot_plus_four): New named pattern.
10213
10214 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10215
10216         PR libgomp/29986
10217         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
10218         Document fix for TLS bug.
10219
10220 2010-01-31  Richard Guenther  <rguenther@suse.de>
10221
10222         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
10223         conservatively correct.
10224
10225 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10226
10227         PR target/42850
10228         Revert:
10229         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10230
10231         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10232
10233 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10234
10235         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
10236
10237 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
10238
10239         * config.gcc: Adjust order of makefile fragments for mingw targets.
10240
10241 2010-01-31  Richard Guenther  <rguenther@suse.de>
10242
10243         PR middle-end/42898
10244         * gimplify.c (gimplify_init_constructor): For volatile LHS
10245         initialize a temporary.
10246
10247 2010-01-31  Matthias Klose  <doko@ubuntu.com>
10248
10249         * configure.ac: Fix __stack_chk_fail check for cross builds configured
10250         --with-headers
10251         * configure: Regenerate.
10252
10253 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
10254
10255         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10256         the same alias set and their sizes different constantness.
10257         (aliasing_component_refs_p): Revert 2009-10-24 change.
10258
10259 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10260
10261         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
10262         unused.
10263
10264 2010-01-29  Richard Guenther  <rguenther@suse.de>
10265
10266         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
10267         Assert we successfully updated the call.
10268
10269 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
10270
10271         PR rtl-optimization/42889
10272         * df.h (df_set_bb_dirty_nonlr): New prototype.
10273         * df-core.c (df_set_bb_dirty_nonlr): New function.
10274         * df-scan.c (df_insn_rescan): Call it instead of
10275         df_set_bb_dirty for DEBUG_INSNs.
10276
10277 2010-01-29  Richard Guenther  <rguenther@suse.de>
10278
10279         PR middle-end/37448
10280         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10281         quadratic behavior in most cases.
10282
10283 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10284
10285         PR target/42891
10286         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10287         in the call to gen_x86_movsicc_0_m1.
10288
10289 2010-01-28  Richard Guenther  <rguenther@suse.de>
10290
10291         PR tree-optimization/42871
10292         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10293
10294 2010-01-28  Richard Guenther  <rguenther@suse.de>
10295
10296         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10297         into call arguments.
10298
10299 2010-01-28  Richard Guenther  <rguenther@suse.de>
10300
10301         PR middle-end/42883
10302         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10303         the forwarder if the destination is an EH landing pad.
10304
10305 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10306
10307         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10308         block list passed to gimple_duplicate_sese_tail.
10309         (parallelize_loops): Avoid parallelization when the function
10310         has_nonlocal_label.
10311         Avoid parallelization when the preheader is IRREDUCIBLE.
10312         Try to optimize when estimated_loop_iterations_int is unresolved.
10313         Add the loop's location to the dump file.
10314         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10315         (gimple_duplicate_sese_tail): Remove the check for the latch.
10316         Redirect nexits to the exit block.
10317         Remove handling of the incoming edges to the latch.
10318         Redirect the backedge from the copied latch to the exit bb.
10319
10320 2010-01-28  Michael Matz  <matz@suse.de>
10321
10322         PR target/42881
10323         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10324         Wrap force_reg into a sequence, emit it before user.
10325
10326 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10327
10328         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10329         (arm_rev): New.
10330         (arm_legacy_rev): Likewise.
10331         (thumb_legacy_rev): Likewise.
10332
10333 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10334
10335         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10336         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10337         on MEM's address failed, try avoid_constant_pool_reference and
10338         recurse if it returned something different.
10339         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10340         address, try avoid_constant_pool_reference and recurse if it
10341         returned something different.
10342         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10343         address and avoid_constant_pool_reference returned something
10344         different, don't set have_address.
10345
10346 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10347
10348         PR debug/42861
10349         * var-tracking.c (val_store): Add modified argument, obey it.
10350         Adjust callers.
10351         (count_uses): Move down logging of main.
10352         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10353         don't need resolution.
10354         (emit_notes_in_bb): Likewise.
10355
10356 2010-01-27  Richard Guenther  <rguenther@suse.de>
10357
10358         PR middle-end/42878
10359         * tree-inline.c (remap_decl): Delay remapping of SSA name
10360         default definitions until we need them.
10361
10362 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10363
10364         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10365         (rs6000_delegitimize_address): New function.
10366
10367         * config/s390/s390.c (s390_delegitimize_address): Call
10368         delegitimize_mem_from_attrs.
10369
10370         PR middle-end/42874
10371         * tree-inline.c (cannot_copy_type_1): Removed.
10372         (copy_forbidden): Don't forbid copying of functions containing
10373         records/unions with variable length fields.
10374
10375 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10376
10377         Revert:
10378         PR target/42841
10379         * config/sh/sh.c (find_barrier): Increase length for non delayed
10380         conditional branches.
10381
10382 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10383
10384         * configure.ac (gnu-unique-object): Fix ldd version check.
10385         * configure: Regenerate.
10386
10387 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10388
10389         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10390         HAVE_GNU_AS value.
10391         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10392         Test for HAVE_GNU_AS value.
10393
10394 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10395
10396         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10397         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10398         INT64_TYPE): Define.
10399         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10400         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10401         INT_LEAST64_TYPE): Define.
10402         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10403         UINT_LEAST64_TYPE): Define.
10404         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10405         INT_FAST64_TYPE): Define.
10406         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10407         UINT_FAST64_TYPE): Define.
10408         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10409         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10410         (SIG_ATOMIC_TYPE): Define.
10411
10412 2010-01-26  Richard Guenther  <rguenther@suse.de>
10413
10414         * df-scan.c (df_scan_set_bb_info): Remove assert.
10415         (df_insn_rescan_debug_internal): Merge asserts.
10416         (df_install_ref): Likewise.
10417         (df_mark_reg): Use bitmap_set_range.
10418         (df_hard_reg_used_p): Remove assert.
10419         (df_hard_reg_used_count): Likewise.
10420
10421 2010-01-26  Richard Guenther  <rguenther@suse.de>
10422
10423         PR rtl-optimization/42685
10424         * web.c (web_main): Ignore DEBUG_INSNs.
10425
10426 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10427
10428         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10429
10430         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10431         Fix types of fndecl and arglist parameters.
10432
10433 2010-01-26  Richard Guenther  <rguenther@suse.de>
10434
10435         PR middle-end/42806
10436         * tree-eh.c (unsplit_eh): Skip debug insns.
10437
10438 2010-01-26  Richard Guenther  <rguenther@suse.de>
10439
10440         PR tree-optimization/42250
10441         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10442
10443 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10444
10445         PR fortran/42866
10446         * omp-low.c (expand_omp_sections): Only use single_pred if
10447         l2_bb is single_pred_p.
10448
10449 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10450
10451         PR target/42841
10452         * config/sh/sh.c (find_barrier): Increase length for non delayed
10453         conditional branches.
10454         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10455
10456 2010-01-24  David S. Miller  <davem@davemloft.net>
10457
10458         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10459         define if not using GAS.
10460         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10461         Likewise.  Delete SECTION_MERGE code, which is only applicable
10462         when using GAS.
10463
10464 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10465
10466         PR c++/42748
10467         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10468         mangling of va_list in system headers.
10469
10470 2010-01-23  Toon Moene  <toon@moene.org>
10471
10472         * tree-predcom.c (combine_chains): Return NULL, not false.
10473
10474 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10475
10476         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10477         initialization of variable res to agree with return type.
10478
10479 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10480
10481         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10482         * tree-sra.c: Add include of expr.h.
10483
10484 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10485
10486         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10487         insert the debug stmt on the single non-EH edge from the stmt.
10488
10489 2010-01-22  Richard Henderson  <rth@redhat.com>
10490
10491         PR tree-opt/42833
10492         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10493         the RHS until after generate_subtree_copies has insertted its
10494         code before the current statement.
10495
10496 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10497
10498         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10499
10500         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10501
10502 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10503
10504         PR tree-optimization/42585
10505         * tree-sra.c (struct access): New field grp_total_scalarization.
10506         (dump_access): Dump the new field.
10507         (should_scalarize_away_bitmap): New variable.
10508         (cannot_scalarize_away_bitmap): Likewise.
10509         (sra_initialize): Allocate new bitmaps.
10510         (sra_deinitialize): Free new bitmaps.
10511         (create_access_1): New function.
10512         (create_access): Parts moved to create_access_1.
10513         (type_consists_of_records_p): New function.
10514         (completely_scalarize_record): Likewise.
10515         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10516         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10517         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10518         access.
10519         (analyze_all_variable_accesses): Completely scalarize small eligible
10520         records.
10521
10522 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10523
10524         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10525
10526 2010-01-21  Andrew Haley  <aph@redhat.com>
10527
10528         * gcc.c (process_command): Move lang_specific_driver before
10529         setting cc_libexec_prefix.
10530
10531 2010-01-21  Richard Guenther  <rguenther@suse.de>
10532
10533         PR middle-end/19988
10534         * fold-const.c (negate_expr_p): Pretend only negative
10535         real constants are easily negatable.
10536
10537 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10538             Jason Merrill  <jason@redhat.com>
10539
10540         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10541         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10542         * calls.c (initialize argument_information): Handle it.
10543         * c-common.c (handle_transparent_union_attribute): Use new name.
10544         * c-decl.c (finish_struct): Ditto.
10545         * c-typeck.c (type_lists_compatible_p): Ditto.
10546         (convert_for_assignment): Use new name and also handle record.
10547         * function.c (aggregate_value_p): Handle it.
10548         (pass_by_reference): Ditto.
10549         (assign_parm_data_types): Ditto.
10550         * print-tree.c (print_node): Ditto.
10551         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10552         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10553         * tree.c (first_field): New fn.
10554
10555 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10556
10557         PR target/42818
10558         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10559         even when linking statically, for now.
10560
10561 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10562
10563         PR debug/42715
10564         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10565         without a cselib val.
10566         (count_uses): Accept MO_VAL_SET with no val on stores.
10567         (add_stores): Likewise.
10568
10569 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10570
10571         * var-tracking.c (check_value_val): Add a compile time assertion.
10572         (dv_is_decl_p): Simplify.
10573         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10574         gcc_assert if ENABLE_CHECKING.
10575
10576 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10577
10578         PR debug/42782
10579         * var-tracking.c: Include tree-flow.h.
10580         (mem_dies_at_call): New.
10581         (dataflow_set_preserve_mem_locs): Use it.
10582         (dataflow_set_remove_mem_locs): Likewise.
10583         (dump_var): Renamed from dump_variable.  Adjust all callers.
10584         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10585         * Makefile.in (var-tracking.o): Adjust deps.
10586
10587 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10588
10589         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10590
10591 2010-01-20  Richard Guenther  <rguenther@suse.de>
10592
10593         PR tree-optimization/42717
10594         * tree-ssa-dce.c (get_live_post_dom): Remove.
10595         (forward_edge_to_pdom): Take an arbitrary edge to copy
10596         degenerate PHI args from.
10597         (remove_dead_stmt): Use the first post-dominator even if it
10598         does not contain live statements as redirection destination.
10599
10600 2010-01-20  Richard Guenther  <rguenther@suse.de>
10601
10602         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10603
10604 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10605
10606         * sel-sched.c (create_speculation_check): Remove set but not used
10607         variable twin.
10608         (try_transformation_cache): Remove set but not used variable ds.
10609         (calculate_privileged_insns): Remove set but not used variables
10610         cur_insn and min_spec_insn.
10611         (find_best_expr): Remove set but not used variable avail_n.
10612         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10613         variable e.
10614         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10615         false_label.
10616         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10617         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10618         new_scop_exit_edge.
10619
10620 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10621
10622         PR bootstrap/42786
10623         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10624         cpu types.  Add support for *-sse3 cpu types.
10625         (x86_64-*-*): Ditto.
10626
10627 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10628
10629         PR middle-end/42803
10630         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10631         argument, call initializer_constant_valid_p_1 instead of
10632         initializer_constant_valid_p, pass CACHE to it, return NULL
10633         immediately if first call returns NULL.
10634         (initializer_constant_valid_p_1): New function.
10635         (initializer_constant_valid_p): Use it.
10636
10637 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10638
10639         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10640
10641 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10642
10643         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10644         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10645         (loc_list_from_tree): Don't handle unsigned division.  Handle
10646         signed modulo using DW_OP_{over,over,div,mul,minus}.
10647         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10648         modulo instead of signed.
10649
10650 2010-01-20  DJ Delorie  <dj@redhat.com>
10651
10652         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10653         (Fpa): Pass it
10654         (h8300_emit_stack_adjustment): Propogate it.
10655         (push): Pass it.
10656         (h8300_expand_prologue): Likewise.
10657         (h8300_expand_epilogue): Likewise.
10658
10659 2010-01-19  Michael Matz  <matz@suse.de>
10660
10661         PR tree-optimization/41783
10662         * tree-data-ref.c (toplevel): Include flags.h.
10663         (dump_data_dependence_relation):  Also dump the inputs if the
10664         result will be unknown.
10665         (split_constant_offset_1): Look through some conversions.
10666         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10667         the offset from last element is too large.
10668         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10669         (reassociate_to_the_same_stmt): Handle vector registers.
10670         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10671         (e.g. conversions).
10672         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10673         wide_prolog_niters argument, emit widening instructions.
10674         (vect_do_peeling_for_alignment): Adjust caller, use widened
10675         variant of the iteration cound.
10676         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10677
10678 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10679
10680         PR target/38697
10681         * config/arm/neon-testgen.m (emit_automatics): New parameter
10682         features. Adjust for Fixed_return_reg feature.
10683         (test_intrinsic): Call emit_automatics with new feature.
10684         * config/arm/neon.ml: Update copyright years.
10685         (features): New Fixed_return_reg feature.
10686         (ops): Update feature for Vget_low.
10687
10688 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10689
10690         PR tree-optimization/42719
10691         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10692         stmt uses.
10693
10694         PR debug/42728
10695         * fwprop.c (all_uses_available_at): Return false if def_set dest
10696         is a REG that is used in def_insn.
10697
10698 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10699
10700         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10701
10702         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10703         Add argument names.
10704
10705         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10706
10707         * target.h (struct gcc_target) <secondary_reload>: Change type
10708         of last argument to secondary_reload_info *.
10709
10710 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10711
10712         PR target/42774
10713         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10714         memory references with unaligned offsets.  Remove CQImode handling.
10715         (unaligned_memory_operand): Return 1 for memory references with
10716         unaligned offsets.  Remove CQImode handling.
10717
10718 2010-01-18  Richard Guenther  <rguenther@suse.de>
10719
10720         PR middle-end/39954
10721         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10722         builtin calls.
10723
10724 2010-01-18  Richard Guenther  <rguenther@suse.de>
10725
10726         PR tree-optimization/42781
10727         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10728         restrict processing only if the original variable was artificial.
10729
10730 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10731
10732         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10733         find number of popped argument bytes.
10734
10735         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10736         Fix the text that describes the return value for invalid insns.
10737
10738         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10739
10740         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10741         Clarify what 'cost of the -dependence' is.  Fix quoting.
10742
10743         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10744         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10745
10746 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10747
10748         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10749         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10750
10751 2010-01-17  Richard Guenther  <rguenther@suse.de>
10752
10753         PR middle-end/42248
10754         * function.c (split_complex_args): Take a VEC to modify.
10755         (assign_parms_augmented_arg_list): Build a VEC instead of
10756         a chain of PARM_DECLs.
10757         (assign_parms_unsplit_complex): Take a VEC of arguments.
10758         Do not fixup unmodified parms.
10759         (assign_parms): Deal with the VEC.
10760         (gimplify_parameters): Likewise.
10761
10762 2010-01-17  Richard Guenther  <rguenther@suse.de>
10763
10764         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10765         node existence check.
10766         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10767         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10768         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10769         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10770         (gimple_execute_on_growing_pred): Likewise.
10771
10772 2010-01-17  Richard Guenther  <rguenther@suse.de>
10773
10774         PR tree-optimization/42773
10775         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10776         (compute_antic_aux): Likewise.
10777         (compute_partial_antic_aux): Likewise.
10778
10779 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10780
10781         PR debug/42767
10782         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10783         and US_TRUNCATE.
10784
10785 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10786
10787         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10788         appearance.
10789
10790         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10791         Fix markup for strict argument.
10792
10793         (TARGET_SCHED_REORDER2): Fix argument types.
10794
10795         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10796         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10797
10798         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10799         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10800
10801         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10802         Add argument name.
10803
10804         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10805         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10806         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10807         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10808         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10809
10810         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10811
10812         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10813
10814         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10815         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10816
10817         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10818
10819         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10820         Use prototype.
10821
10822         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10823
10824         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10825         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10826
10827         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10828
10829         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10830
10831         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10832         referring to it.  Fix language.
10833
10834         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10835
10836         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10837
10838         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10839
10840         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10841
10842         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10843         '@var{stream}.  Remove stray 'and'.
10844
10845         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10846
10847         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10848
10849         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10850
10851         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10852         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10853
10854         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10855         Fix description of return value.
10856         Rename argument "sz" to "len."
10857
10858         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10859         Clarify meaning of 'true' return value.
10860
10861         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10862
10863         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10864         rep_mode versus mode_rep.
10865
10866         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10867
10868         (TARGET_BUILTIN_DECL): Fix name.
10869
10870         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10871
10872         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10873
10874         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10875
10876         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10877
10878         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10879
10880         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10881         Clarify language.
10882
10883         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10884         Rename argument tm_fn to md_fn.
10885
10886         (TARGET_OPTION_PRINT): Fix argument list.
10887
10888 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10889
10890         PR target/42664
10891         * config/i386/i386.c (ix86_fixup_binary_operands):
10892         Revert FMA4 fixup of operands.
10893
10894 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10895
10896         PR gcc/42525
10897         * Makefile.in (write_entries_to_file, install-plugin):
10898         Use \012 instead of \n with tr.
10899
10900 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10901
10902         * configure.ac (HAVE_AS_REF): New C macro.
10903         * configure: Regenerate.
10904         * config.in: Likewise.
10905         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10906         if HAVE_AS_REF.
10907         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10908         if HAVE_AS_REF.
10909
10910 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10911
10912         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10913
10914         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10915
10916         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10917
10918         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10919
10920         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10921
10922         (TARGET_BINDS_LOCAL_P): Fix argument type.
10923
10924         (TARGET_ASM_FILE_END): Use prototype.
10925
10926         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10927
10928         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10929
10930         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10931
10932         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10933
10934         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10935         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10936
10937         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10938         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10939
10940         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10941         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10942         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10943         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10944
10945         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10946
10947         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10948
10949         (TARGET_INIT_BUILTINS): Use prototype.
10950
10951         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10952         Put 'const char *' in braces.  Fix parameter types.
10953         (TARGET_INVALID_CONVERSION): Fix parameter types.
10954         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10955         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10956
10957         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10958         Fix argument type.
10959
10960         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10961
10962         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10963
10964 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10965
10966         * doc/tm.texi (TARGET_HELP): Fix return type.
10967
10968         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10969         in braces.  Fix argument types.
10970
10971         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10972
10973         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10974
10975         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10976
10977         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10978         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10979
10980         (TARGET_MANGLE_TYPE): Fix argument types.
10981
10982         (TARGET_IRA_COVER_CLASSES): Use prototype.
10983
10984         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10985
10986         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10987
10988         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10989
10990         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10991
10992         (TARGET_CALLEE_COPIES): Fix argument types.
10993
10994         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10995
10996         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10997
10998         (TARGET_FUNCTION_VALUE): Fix argument types.
10999
11000         (TARGET_RETURN_IN_MSB): Fix argument type.
11001
11002         (TARGET_RETURN_IN_MEMORY): Fix argument types.
11003
11004         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
11005
11006         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
11007
11008         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
11009         agree with return type.
11010
11011         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
11012
11013 2010-01-15  Jing Yu  <jingyu@google.com>
11014
11015         PR rtl-optimization/42691
11016         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
11017         a pseudo to a constant and are merged, and adjust comments.
11018
11019 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
11020
11021         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
11022
11023 2010-01-15  Richard Guenther  <rguenther@suse.de>
11024
11025         PR middle-end/42739
11026         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
11027         labels of computed or non-local gotos to the destination.
11028         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
11029         landing pad label is the first label.
11030
11031 2010-01-15  Richard Guenther  <rguenther@suse.de>
11032
11033         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
11034
11035 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11036
11037         PR target/42747
11038         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
11039         to allow generation of the xssqrtdp instruction on power7.
11040         (sqrtdf2_fpr): Ditto.
11041
11042 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11043
11044         PR middle-end/42674
11045         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
11046         functions with noreturn attribute.
11047
11048         PR c++/42608
11049         * varasm.c (declare_weak): Add weak attribute to decl if it
11050         doesn't have one already.
11051         (assemble_external): Only add decls to weak_decls if they also
11052         have weak attribute.
11053
11054 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
11055
11056         * var-tracking.c (var_reg_delete): Don't delete the association
11057         between REGs and values or one-part variables if the register
11058         isn't clobbered.
11059
11060 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11061
11062         PR debug/42657
11063         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
11064         because its first operand is a non-localized variable.
11065
11066 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11067
11068         PR tree-optimization/42706
11069         * tree-sra.c (encountered_recursive_call): New variable.
11070         (encountered_unchangable_recursive_call): Likewise.
11071         (sra_initialize): Initialize both new variables.
11072         (callsite_has_enough_arguments_p): New function.
11073         (scan_function): Call decl and flags check only for IPA-SRA, check
11074         whether there is a recursive call and whether it has enough arguments.
11075         (all_callers_have_enough_arguments_p): New function.
11076         (convert_callers): Look for recursive calls only when
11077         encountered_recursive_call is set.
11078         (ipa_early_sra): Bail out either if
11079         !all_callers_have_enough_arguments_p or
11080         encountered_unchangable_recursive_call.
11081
11082 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11083
11084         * sel-sched.c: Add 2010 to copyright years.
11085         * sel-sched-ir.c: Likewise.
11086         * sel-sched-ir.h: Likewise.
11087
11088 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11089
11090         PR tree-optimization/42714
11091         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
11092         constructors specially.
11093
11094 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11095
11096         * config/i386/drivers-i386.c (detect_caches_intel):
11097         Add l2sizekb parameter and fill in.
11098         (host_detect_local_cpu): Add l2sizekb, fill in.
11099         Add Atom small cache heuristic.
11100
11101 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11102
11103         * config/i386/drivers-i386.c (detect_caches_cpuid4):
11104         Add level3 parameter and fill in.
11105         (detect_caches_intel): Handle level3 cache.
11106
11107 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11108
11109         * config/i386/drivers-i386.c (host_detect_local_cpu):
11110         Fix core duo detection.
11111
11112 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11113
11114         * config/i386/drivers-i386.c (host_detect_local_cpu):
11115         Fix Atom detection.
11116
11117 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11118
11119         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
11120         (rs6000_variable_issue_1): this.  Use...
11121         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
11122
11123 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11124
11125         * sel-sched-ir.c (sel_restore_other_notes): Rename to
11126         sel_restore_notes.  Update all callers.  Call reemit_notes
11127         for all insns.
11128
11129 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11130
11131         PR rtl-optimization/42246
11132         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
11133         loops.
11134
11135 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11136
11137         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
11138         all successors is the same as number of successors in current region.
11139
11140 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11141
11142         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
11143         to rename is not separable.  Otherwise check that its LHS is not NULL.
11144
11145 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11146
11147         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
11148
11149 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11150
11151         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
11152         available registers when failed to discover LHS register class.
11153         Fix indentation.  Update comment.
11154
11155 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11156             Alexander Monakov  <amonakov@ispras.ru>
11157
11158         PR rtl-optimization/42389
11159         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
11160         to can_issue_more.
11161         (advance_state_on_fence): Likewise.
11162         (sel_target_adjust_priority): Print debug output only when
11163         sched_verbose >= 4, not 2.
11164         (get_expr_cost): Do not issue all unique insns on the next cycle.
11165         (fill_insns): Initialize can_issue_more from the value saved
11166         with the fence.
11167         * sel-sched-ir.c (flist_add): New parameter issue_more.
11168         Init FENCE_ISSUE_MORE with it.
11169         (merge_fences): Likewise.
11170         (init_fences): Update call to flist_add.
11171         (add_to_fences, add_clean_fence_to_fences)
11172         (add_dirty_fence_to_fences): Likewise.
11173         (move_fence_to_fences): Update call to merge_fences.
11174         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
11175         sched groups.
11176         * sel-sched-ir.h (struct _fence): New field issue_more.
11177         (FENCE_ISSUE_MORE): New accessor macro.
11178
11179 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11180
11181         PR rtl-optimization/42388
11182         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
11183         that have no predecessors nor successors.  Do not call move_bb_info
11184         for empty blocks outside of current region.
11185
11186 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11187
11188         PR rtl-optimization/42294
11189         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
11190         * sel-sched.c (move_exprs_to_boundary): Transitively add all
11191         originators' originators.
11192
11193 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11194
11195         PR rtl-optimization/39453
11196         PR rtl-optimization/42246
11197         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
11198         for pipelining_p.
11199         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
11200
11201 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11202             Alexander Monakov  <amonakov@ispras.ru>
11203
11204         PR middle-end/42245
11205         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
11206         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
11207         argument.  Update all callers.
11208         (tidy_control_flow): ... and here.  Recompute topological order
11209         of basic blocks in region if necessary.
11210         (sel_redirect_edge_and_branch): Change return type.  Return true
11211         if topological order might have been invalidated.
11212         (purge_empty_blocks): Export and move from...
11213         * sel-sched.c (purge_empty_blocks): ... here.
11214         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
11215         (maybe_tidy_empty_bb): Delete prototype.
11216         (purge_empty_blocks): Declare.
11217
11218 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
11219
11220         PR rtl-optimization/42249
11221         * sel-sched.c (try_replace_dest_reg): When chosen register
11222         and original register is the same, do not bail out early, but
11223         still check all original insns for validity of replacing destination
11224         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
11225         in this case.
11226
11227 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11228
11229         PR c/42721
11230         Port from no-undefined-overflow branch:
11231         2009-03-09  Richard Guenther  <rguenther@suse.de>
11232
11233         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
11234
11235 2010-01-14  Richard Guenther  <rguenther@suse.de>
11236
11237         PR lto/42665
11238         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
11239
11240 2010-01-14  Ira Rosen  <irar@il.ibm.com>
11241
11242         PR tree-optimization/42709
11243         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
11244         as scalar type in creation of constant vector operand.
11245
11246 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11247
11248         PR testsuite/42414
11249         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
11250         (check-parallel-%): Match `testsuite' directory component only
11251         at the end.
11252
11253 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
11254
11255         PR translation/39521
11256         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
11257         strings with _().
11258
11259 2010-01-13  Richard Guenther  <rguenther@suse.de>
11260
11261         PR tree-optimization/42730
11262         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
11263         offset zero.
11264
11265 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
11266
11267         PR target/pr42542
11268         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
11269         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
11270         them signed.
11271
11272 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11273
11274         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11275         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11276         ___umulsi3_highpart.
11277
11278         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11279         rather than schedule_insns if the pass is enabled.
11280
11281 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11282
11283         PR tree-optimization/42704
11284         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11285         SSA_NAMEs.
11286
11287 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11288
11289         PR tree-optimization/42703
11290         * tree-sra.c (analyze_access_subtree): Check that we can build a
11291         reference to the original data within the aggregate.
11292
11293 2010-01-13  Richard Guenther  <rguenther@suse.de>
11294
11295         PR tree-optimization/42705
11296         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11297
11298 2010-01-13  Richard Guenther  <rguenther@suse.de>
11299
11300         PR middle-end/42716
11301         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11302
11303 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11304
11305         PR debug/41371
11306         * var-tracking.c (values_to_unmark): New variable.
11307         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11308         values_to_unmark vector.  Moved body to...
11309         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11310         instead queue it into values_to_unmark vector.
11311         (vt_find_locations): Free values_to_unmark vector.
11312
11313 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11314
11315         * config/s390/s390.c (override_options): Set
11316         default of max-pending-list-length to 256
11317
11318 2010-01-13  Richard Guenther  <rguenther@suse.de>
11319
11320         PR lto/42678
11321         * tree-pass.h (PROP_gimple_lcx): New.
11322         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11323         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11324         before the final cleanup_eh.
11325         (dump_properties): Dump PROP_gimple_lcx.
11326         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11327         (tree_lower_complex_O0): Remove.
11328         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11329         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11330         tree_lower_complex, schedule TODO_update_ssa.
11331         * lto-streamer-out.c (output_function): Stream the functions
11332         properties.
11333         * lto-streamer-in.c (input_function): Likewise.
11334         (lto_read_body): Do not override them here.
11335
11336 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11337
11338         PR c/42708
11339         * c-typeck.c (build_c_cast): Fold value cast to union type before
11340         wrapping it in a CONSTRUCTOR.
11341
11342 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11343
11344         PR rtl-optimization/42699
11345         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11346         involved.
11347
11348 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11349
11350         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11351         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11352         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11353         SUBTARGET_WARN_UNUSED_SPEC): ... here
11354         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11355
11356 2010-01-12  Julian Brown  <julian@codesourcery.com>
11357
11358         * config/arm/neon-schedgen.ml (Utils): Don't try to
11359         open missing module.
11360         (find_with_result): New.
11361
11362 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11363
11364         PR debug/42662
11365         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11366         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11367
11368         PR tree-optimization/42645
11369         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11370         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11371         decl_map, set processing_debug_stmt to -1 and return name without
11372         any remapping.
11373
11374 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11375
11376         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11377         binutils version, and reword target configuration description.
11378
11379 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11380
11381         * config/avr/avr.h (LINKER_NAME): Remove.
11382
11383 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11384
11385         PR target/42416
11386         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11387         that support VSX, warn for -mno-altivec if vsx is not disabled,
11388         and disable vsx.
11389
11390 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11391             Shujing Zhao  <pearly.zhao@oracle.com>
11392
11393         PR translation/42469
11394         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11395         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11396         character between option name and help text.
11397         * c.opt (imultilib): Likewise.
11398
11399 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11400
11401         * lto-streamer-out.c (output_unreferenced_globals): Output static
11402         variables.
11403
11404 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11405
11406         PR rtl-optimization/42621
11407         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11408         optimizing for size.
11409         (duplicate_computed_gotos): Remove now-redundant check.
11410
11411 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11412
11413         PR target/37454
11414         * configure.ac: Save and restore LDFLAGS and LIBS
11415         * configure: Regenerate.
11416
11417 2010-01-10  Richard Guenther  <rguenther@suse.de>
11418
11419         PR middle-end/42667
11420         * builtins.c (fold_builtin_strlen): Add type argument and
11421         convert the resulting length to it.
11422         (fold_builtin_1): Adjust.
11423
11424 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11425
11426         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11427         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11428         1 insn.
11429         (num_insns_constant_wide): Adjust for that change.
11430
11431 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11432
11433         PR debug/42631
11434         * web.c (union_defs): Add used argument, to combine uses of
11435         uninitialized regs.
11436         (entry_register): Adjust type and tests of used argument.
11437         (web_main): Widen used for new use.  Pass it to union_defs.
11438         * df.h (union_defs): Adjust prototype.
11439
11440 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11441
11442         PR debug/42630
11443         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11444         uses in new incoming argument.  Free body.
11445         (reset_debug_uses_in_loop): New.
11446         (analyze_insn_to_expand_var): Call the latter if the former found
11447         anything.  Fix whitespace.  Reject invalid dest overlaps before
11448         going through all insns in the loop.
11449
11450 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11451
11452         PR debug/42629
11453         * haifa-sched.c (dying_use_p): Debug insns don't count.
11454
11455 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11456
11457         PR middle-end/42363
11458         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11459         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11460         (verify_gimple_call): Reject LHS in noreturn calls.
11461
11462 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11463
11464         PR debug/42604
11465         PR debug/42395
11466         * tree-vect-loop-manip.c (adjust_info): New type.
11467         (adjust_vec): New pointer to vector.
11468         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11469         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11470         (slpeel_update_phis_for_duplicate_loop): Use them.
11471         (slpeel_update_phi_nodes_for_guard1): Likewise.
11472         (slpeel_update_phi_nodes_for_guard2): Likewise.
11473         (slpeel_tree_peel_loop_to_edge): Likewise.
11474         (vect_update_ivs_after_vectorizer): Likewise.
11475
11476 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11477
11478         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11479         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11480
11481 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11482
11483         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11484         bogus uninitialized warning.
11485
11486 2010-01-09  Richard Guenther  <rguenther@suse.de>
11487
11488         PR middle-end/42512
11489         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11490         the evolution is compatible with the initial condition.
11491
11492 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11493
11494         * gcc.c (process_command): Update copyright notice dates.
11495         * gcov.c (print_version): Likewise.
11496         * gcov-dump.c (print_version): Likewise.
11497         * mips-tfile.c (main): Likewise.
11498         * mips-tdump.c (main): Likewise.
11499
11500 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11501
11502         PR target/41885
11503         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11504         (rotlhi3): Delete.
11505         (rotlhi3_8): Delete.
11506         (rotlsi3): Delete.
11507         (rotlsi3_8): Delete.
11508         (rotlsi3_16): Delete.
11509         (rotlsi3_24): Delete.
11510         (rotl<mode>3): New.
11511         (*rotw<mode>3): New.
11512         (*rotb<mode>3): New.
11513         * config/avr/avr.c (avr_rotate_bytes): New function.
11514         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11515
11516 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11517
11518         PR target/37454
11519         * configure.ac: Modify -rdynamic check.
11520         * configure: Regenerate.
11521
11522 2010-01-08  DJ Delorie  <dj@redhat.com>
11523
11524         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11525         register popping order.
11526
11527 2010-01-08  Richard Guenther  <rguenther@suse.de>
11528
11529         PR lto/42528
11530         * c.opt (fsigned-char): Also let LTO handle this option.
11531         (funsigned-char): Likewise.
11532
11533 2010-01-07  Richard Guenther  <rguenther@suse.de>
11534
11535         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11536         (gimple_op): Likewise.
11537         (gimple_op_ptr): Likewise.
11538         (gimple_assign_set_lhs): Remove gcc_assert.
11539         (gimple_assign_set_rhs1): Likewise.
11540         (gimple_assign_set_rhs2): Likewise.
11541         (gimple_call_set_lhs): Likewise.
11542         (gimple_call_set_fn): Likewise.
11543         (gimple_call_set_fndecl): Likewise.
11544         (gimple_call_fndecl): Likewise.
11545         (gimple_call_return_type): Likewise.
11546         (gimple_call_set_chain): Likewise.
11547         (gimple_call_num_args): Likewise.
11548         (gimple_call_set_arg): Likewise.
11549         (gimple_cond_set_code): Likewise.
11550         (gimple_cond_set_lhs): Likewise.
11551         (gimple_cond_set_rhs): Likewise.
11552         (gimple_cond_set_true_label): Likewise.
11553         (gimple_cond_set_false_label): Likewise.
11554         (gimple_label_set_label): Likewise.
11555         (gimple_goto_set_dest): Likewise.
11556         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11557         (gimple_debug_bind_get_value): Likewise.
11558         (gimple_debug_bind_get_value_ptr): Likewise.
11559         (gimple_debug_bind_set_var): Likewise.
11560         (gimple_debug_bind_set_value): Likewise.
11561         (gimple_debug_bind_reset_value): Likewise.
11562         (gimple_debug_bind_has_value_p): Likewise.
11563         (gimple_return_retval_ptr): Remove gcc_assert.
11564         (gimple_return_retval): Likewise.
11565         (gimple_return_set_retval): Likewise.
11566         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11567         (safe_referenced_var_iterator): Remove.
11568         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11569         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11570         (fill_referenced_var_vec): Remove.
11571         (first_readonly_imm_use): Remove redundant gcc_assert.
11572         (phi_arg_index_from_use): Combine gcc_asserts.
11573         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11574         (first_imm_use_stmt): Remove redundant gcc_assert.
11575         * tree-cfg.c (verify_gimple_call): Verify function and chain
11576         operands.  Verify arguments.
11577         (verify_types_in_gimple_stmt): Verify condition code and labels.
11578
11579 2010-01-07  Richard Guenther  <rguenther@suse.de>
11580
11581         PR tree-optimization/42641
11582         * sese.c (rename_map_elt_info): Use the SSA name version, do
11583         not hash pointers.
11584
11585 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11586
11587         PR tree-optimization/42625
11588         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11589         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11590
11591 2010-01-07  Duncan Sands  <baldrick@free.fr>
11592
11593         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11594
11595 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11596
11597         PR target/42511
11598         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11599         note itself is not function_invariant_p.
11600
11601 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11602
11603         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11604         Do not add the DF_NOTE problem.
11605         * store-motion.c (execute_rtl_store_motion): Likewise.
11606
11607 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11608
11609         PR tree-optimization/42157
11610         * tree-sra.c (compare_access_positions): Stabilize sort if both
11611         accesses have integer types, return zero immediately if they are the
11612         same.
11613
11614 2010-01-06  Richard Henderson  <rth@redhat.com>
11615
11616         PR middle-end/41883
11617         * haifa-sched.c (add_to_note_list): Merge into ...
11618         (concat_note_lists): ... here, and ...
11619         (unlink_other_notes, rm_other_notes): Merge into...
11620         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11621         NOTE_INSN_EPILOGUE_BEG.
11622
11623 2010-01-06  Richard Guenther  <rguenther@suse.de>
11624
11625         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11626         not inline regular functions into always-inline functions.
11627
11628 2010-01-06  Nick Clifton  <nickc@redhat.com>
11629
11630         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11631         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11632         used together.
11633         (OVERRIDE_OPTIONS): Delete.
11634         (OPTIMIZATION_OPTIONS): Define.
11635         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11636         * config/rx/rx.c (rx_handle_option): Issue an error message if
11637         -mcpu=rx200 and -fpu are used together.
11638         (rx_set_optimization_options): New function.  Issue an error
11639         message if an optimization attribute attempts to reset the FPU/
11640         math optimization pairing.
11641         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11642         * config/rx/rx.opt: Set the default to 32-bit doubles.
11643         * config/rx/t-rx: Add multilibs for -nofpu option.
11644         * doc/invoke.texi: Update documentation of RX options.
11645
11646 2010-01-06  Richard Guenther  <rguenther@suse.de>
11647
11648         * tree-ssa-pre.c (name_to_id): New global.
11649         (alloc_expression_id): Simplify SSA name handling.
11650         (lookup_expression_id): Likewise.
11651         (init_pre): Zero name_to_id.
11652         (fini_pre): Free it.
11653
11654 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11655
11656         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11657
11658 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11659
11660         PR target/42542
11661         * config/i386/sse.md (smaxv2di3): New.
11662         (umaxv2di3): Likewise.
11663         (sminv2di3): Likewise.
11664         (uminv2di3): Likewise.
11665
11666 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11667
11668         PR target/42564
11669         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11670         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11671         (legitimize_tls_address): Likewise.
11672         (sparc_tls_referenced_p): Likewise.
11673         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11674         and adjust calls to legitimize_pic_address.
11675         (legitimate_constant_p) Use sparc_tls_referenced_p.
11676         (legitimate_pic_operand_p): Likewise.
11677         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11678         (sparc_tls_symbol_ref_1): Delete.
11679         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11680         (legitimize_tls_address): Make static, handle CONST patterns.
11681         (legitimize_pic_address): Make static, remove unused parameter and
11682         adjust recursive calls.
11683         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11684         and adjust call to legitimize_pic_address.
11685         (sparc_output_mi_thunk): Likewise.
11686
11687 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11688             H.J. Lu  <hongjiu.lu@intel.com>
11689
11690         PR target/42542
11691         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11692         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11693         operands to make them signed.
11694
11695         Revert:
11696         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11697
11698         PR target/42542
11699         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11700         GTU to GT for V4SI and V2DI.
11701
11702         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11703         (umin<mode>3): Removed.
11704         (uminv8hi3): New.
11705         (uminv4si3): Likewise.
11706
11707 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11708
11709         PR tree-optimization/42462
11710         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11711         current_function_decl to helper functions and macros.
11712
11713 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11714
11715         PR bootstrap/41771
11716         * flags.h: Don't include real.h.
11717         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11718         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11719         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11720         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11721         * dominance.c: Update copyright.
11722         * gimple.c (walk_gimple_op): Remove inline.
11723         * tree-ssa-reassoc.c: Include real.h.
11724         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11725         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11726
11727 2010-01-05  Nick Clifton  <nickc@redhat.com>
11728
11729         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11730         register to push into the stack frame when the accumulator has to
11731         be saved during interrupts.
11732
11733 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11734
11735         * doc/invoke.texi: Remove the documentation about option
11736         -Wunreachable-code.
11737         * common.opt (Wunreachable-code):  Preserved for backward
11738         compatibility.
11739         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11740         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11741         the backward compatibility flag section.
11742
11743 2010-01-05  Richard Guenther  <rguenther@suse.de>
11744
11745         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11746
11747 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11748
11749         PR other/42611
11750         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11751
11752         PR tree-optimization/42508
11753         * tree-sra.c (convert_callers): Check for recursive call
11754         by comparing cgraph nodes instead of decls.
11755         (modify_function): Call ipa_modify_formal_parameters also
11756         on all same_body aliases.
11757
11758         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11759         cgraph nodes when checking for same_body aliases.
11760
11761 2010-01-05  Richard Guenther  <rguenther@suse.de>
11762
11763         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11764         allocation and lookup.
11765         (get_or_alloc_expr_for_constant): Likewise.
11766         (phi_translate): Sink allocation.
11767
11768 2010-01-04  Richard Guenther  <rguenther@suse.de>
11769
11770         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11771         a new entry only if needed.
11772         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11773         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11774         hashtable lookup.
11775         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11776         the result array.
11777         (phi_translate): Handle CONSTANTs early.
11778
11779 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11780
11781         PR tree-optimization/42398
11782         * tree-sra.c (struct access): Removed flag grp_different_types.
11783         (dump_access): Do not dump the removed flag.
11784         (sort_and_splice_var_accesses): Do not set the removed flag.
11785         (sra_modify_expr): Check for type compatibility directly.
11786
11787 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11788
11789         PR tree-optimization/42366
11790         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11791         edges with variable number of parameters.
11792         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11793         flag instead of asserting it.
11794         (ipa_read_node_info): Read uses_analysis_done flag.
11795
11796 2010-01-04  Richard Guenther  <rguenther@suse.de>
11797
11798         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11799         iterative_hash_* as intended.
11800         (vn_reference_compute_hash): Likewise.  Simplify hashing
11801         SSA names.
11802         (vn_reference_lookup_2): Likewise.
11803         (vn_nary_op_compute_hash): Likewise.
11804         (vn_phi_compute_hash): Likewise.
11805         (expressions_equal_p): Remove strange code.
11806         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11807         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11808         (bitmap_insert_into_set_1): Take value-id as parameter.
11809         (add_to_value): Pass it.
11810         (bitmap_insert_into_set): Likewise.
11811         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11812
11813 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11814
11815         PR driver/42442
11816         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11817         (do_self_spec): For switches with SWITCH_IGNORE set set also
11818         SWITCH_IGNORE_PERMANENTLY.
11819         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11820         of SWITCH_IGNORE.
11821
11822 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11823
11824         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11825         tree of an unreferenced global var.
11826
11827 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11828
11829         PR target/42542
11830         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11831         GTU to GT for V4SI and V2DI.
11832
11833         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11834         (umin<mode>3): Removed.
11835         (uminv8hi3): New.
11836         (uminv4si3): Likewise.
11837
11838 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11839
11840         PR lto/42581
11841         * collect2.c (main): Turn on trace in collect2 if -v is passed
11842         to gcc with LTO.
11843
11844 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11845
11846         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11847         description of expression operand.
11848
11849 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11850
11851         * configure.ac: Add install-html to target_list for Make-hooks.
11852         * configure: Regenerate.
11853         * fortran/Make-lang.in (F95_HTMLFILES): New.
11854         (fortran.html): Use it.
11855         (fortran.install-html): New.
11856         * Makefile.in (install-html): Add lang.install-html.
11857         * java/Make-lang.in (JAVA_HTMLFILES): New.
11858         (java.html): Use it.
11859         (java.install-html): New.
11860         * objc/Make-lang.in (objc.install-html): New.
11861         * objcp/Make-lang.in (obj-c++.install-html): New.
11862         * cp/Make-lang.in (c++.install-html): New.
11863         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11864         * lto/Make-lang.in (lto.install-html): New.
11865
11866 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11867
11868         PR lto/42520
11869         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11870
11871 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11872
11873         PR rtl-optimization/41862
11874         * store-motion.c (store_killed_in_insn, compute_store_table,
11875         remove_reachable_equiv_notes, replace_store_insn,
11876         build_store_vectors): Ignore all DEBUG_INSNs.
11877
11878 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11879
11880         PR lto/41564
11881         * common.opt: Add dumpdir.
11882
11883         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11884         isn't specified.
11885         (option_map): Add --dumpdir.
11886
11887         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11888
11889         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11890
11891         * opts.c (decode_options): Try dump_dir_name first if
11892         dump_base_name isn't an absolute path.
11893         (common_handle_option): Handle OPT_dumpdir.
11894
11895         * toplev.c (dump_dir_name): New.
11896         (print_switch_values): Also ignore -dumpdir.
11897
11898         * toplev.h (dump_dir_name): New.
11899
11900 2010-01-03  Richard Guenther  <rguenther@suse.de>
11901
11902         PR tree-optimization/42589
11903         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11904         double-word expansion of bswap32.
11905
11906 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11907
11908         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11909         with BLOCK_FOR_INSN.
11910         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11911         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11912         noce_process_if_block): Likewise.
11913         * gcse.c (compute_local_properties, insert_expr_in_table,
11914         insert_set_in_table, canon_list_insert, find_avail_set,
11915         pre_insert_copy_insn): Likewise.
11916
11917         * basic-block.h (BLOCK_NUM): Move from here...
11918         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11919
11920 2010-01-03  Richard Guenther  <rguenther@suse.de>
11921
11922         PR tree-optimization/42438
11923         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11924         contains_may_not_return_call flag.
11925         (BB_MAY_NOTRETURN): New.
11926         (valid_in_sets): Trapping nary operations are not valid
11927         in blocks that may not return.
11928         (insert_into_preds_of_block): Remove check for trapping expressions.
11929         (compute_avail): Compute also BB_MAY_NOTRETURN.
11930
11931 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11932
11933         * doc/invoke.texi: Add 2010 to copyright years.
11934
11935 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11936
11937         * config/sparc/sparc.c: Fix formatting nits.
11938
11939 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11940             Alexander Monakov  <amonakov@ispras.ru>
11941
11942         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11943
11944 2010-01-02  Richard Guenther  <rguenther@suse.de>
11945
11946         PR middle-end/42577
11947         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11948         (simplify_switch_using_ranges): Mark to be removed edges
11949         as non-executable.
11950
11951 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11952
11953         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11954
11955         * collect2.c (scan_libraries): Add missing argument in call to
11956         scan_prog_file.
11957
11958 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11959
11960         PR target/42448
11961         * config/alpha/predicates.md (aligned_memory_operand): Return false
11962         for CQImode.
11963         (unaligned_memory_operand): Return true for CQImode.
11964         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11965         doesn not cross aligned SImode word boundary.
11966
11967 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11968
11969         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11970         Remove.
11971         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11972         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11973
11974 2010-01-02  Richard Guenther  <rguenther@suse.de>
11975
11976         PR lto/41597
11977         * toplev.c (compile_file): Emit LTO marker properly.  Change
11978         it to __gnu_lto_v1.
11979         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11980
11981 2010-01-01  Richard Guenther  <rguenther@suse.de>
11982
11983         PR debug/42455
11984         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11985
11986 2010-01-01  Richard Guenther  <rguenther@suse.de>
11987
11988         PR c/42570
11989         * c-decl.c (grokdeclarator): For zero-size arrays force
11990         structural equality checks as layout_type does.
11991
11992 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11993
11994         * builtins.c: Update copyright to 2010.
11995
11996 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11997
11998         PR lto/42531
11999         * lto-streamer-out.c (produce_asm): Revert the last change.
12000         (copy_function): Likewise.
12001
12002         * lto-streamer.c (lto_get_section_name): Skip any leading
12003         asterisk in name.
12004
12005 2010-01-01  Richard Guenther  <rguenther@suse.de>
12006
12007         PR middle-end/42559
12008         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
12009         for LABEL_DECLs.
12010
12011 \f
12012 Copyright (C) 2010 Free Software Foundation, Inc.
12013
12014 Copying and distribution of this file, with or without modification,
12015 are permitted in any medium without royalty provided the copyright
12016 notice and this notice are preserved.