OSDN Git Service

28c74e278b04e8f086d7cea34d014f36d2ccb330
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-09  Paolo Bonzini  <bonzini@gnu.org>
2
3         PR target/43610
4         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
5         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
6         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
7         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
8
9 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
10
11         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12         DW_OP_minus with negated offset instead of DW_OP_plus.
13         (loc_list_from_tree): Don't test whether second operand is
14         INTEGER_CST.
15
16 2010-05-25  Wei Guozhi  <carrot@google.com>
17
18         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
19         tst instruction and a new alternative.
20         * config/arm/constraints.md (Pu): New constraint.
21
22 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
23
24         * function.c (assign_stack_local_1): Initialize variable
25         to avoid warning when bootstrapping at -O3.
26
27 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
28
29         * configure.ac (all_lang_makefiles): Remove everything related to it.
30         * configure: Regenerate.
31         * Makefile.in: Fix reference to ada Make-lang.in.
32         Remove support for LANG_MAKEFILES.
33
34 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
35
36         * diagnostic.c: Don't include flags.h.
37         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
38         context parameters.  Check flags in the context passed as a
39         parameter.
40         (diagnostic_build_prefix): Add context parameter.  Check
41         show_column flag in context.
42         (diagnostic_action_after_output): Check fatal_errors flag in
43         context.
44         (diagnostic_report_current_module): Check show_column flag in
45         context.
46         (default_diagnostic_starter): Update call to
47         diagnostic_build_prefix.
48         (diagnostic_report_diagnostic): Pass context to
49         pedantic_warning_kind.
50         (emit_diagnostic): Pass context to permissive_error_kind.
51         (permerror): Pass context to permissive_error_kind.
52         * diagnostic.h (struct diagnostic_context): Add show_column,
53         pedantic_errors, permissive and fatal_errors fields.
54         (diagnostic_build_prefix): Update prototype.
55         * langhooks.c
56         * toplev.c (process_options): Set flags in global_dc from
57         flag_show_column, flag_pedantic_errors, flag_permissive,
58         flag_fatal_errors.
59         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
60         to diagnostic_build_prefix.
61         * Makefile.in (diagnostic.o): Update dependencies.
62
63 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
64
65         * config/i386/ia32intrin.h (__crc32q): Define only if
66         __SSE4_2__ is defined.
67
68 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
69
70         PR target/44132
71         PR middle-end/43602
72         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
73         DECL_VISIBILITY_SPECIFIED.
74         (emutls_decl): Set DECL_PRESERVE_P and copy
75         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
76         (emutls_finalize_control_var): New callback.
77         (emutls_finish): Finalize emutls control variables.
78         * toplev.c (compile_file): Move the call to emutls_finish () 
79         before varpool_assemble_pending_decls ().
80
81 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
82
83         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
84         added to the preprocessor condition.
85
86 2010-05-24  Paul Brook  <paul@codesourcery.com>
87
88         * gengtype-lex.l: Add HARD_REG_SET.
89         * expr.c (expand_expr_real_1): Record writes to hard registers.
90         * function.c (rtl_data): Add asm_clobbers.
91         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
92         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
93         Use crtl->asm_clobbers.
94
95 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
96
97         * doc/makefile.texi (Makefile): Mention stages 'profile'
98         and 'feedback' for profiledbootstrap.
99
100 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
101
102         PR target/44245
103         * config/i386/i386.c (def_builtin): Properly check
104         OPTION_MASK_ISA_64BIT.
105
106 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
107
108         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
109         typedefs with different but compatible types.  Allow duplicate
110         typedefs with the same type except for pedantic non-C1X, but give
111         warning for variably modified types.
112         * c-typeck.c (tagged_types_tu_compatible_p,
113         function_types_compatible_p, type_lists_compatible_p,
114         comptypes_internal): Add parameter different_types_p; set
115         *different_types_p for different but compatible types.  All
116         callers changed.
117         (comptypes_check_different_types): New.
118         * c-tree.h (comptypes_check_different_types): Declare.
119
120 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
121
122         * regs.h: Do not include obstack.h, basic-block.h.
123         Include machmode.h.
124         * jump.c: Include basic-block.h.
125         * profile.c: Likewise.
126         * tree-profile.c: Likewise.
127         * coverage.c: Likewise.
128         * basic-block.h (optimize_function_for_size_p): Move to function.h.
129         (optimize_function_for_speed_p): Likewise.
130         * function.h (optimize_function_for_size_p,
131         optimize_function_for_speed_p): Moved here from basic-block.h.
132         * Makefile.in: Update dependencies.
133
134 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
135
136         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
137         before calling make; allow override through $MAKE.
138         * doc/invoke.texi (Optimize Options): Document override.
139
140 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
141
142         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
143         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
144         (rs6000_mode_dependent_address_ptr): Make static.
145         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
146         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
147         Remove.
148
149 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
150
151         PR target/43869
152         * config/i386/i386.c: Make sure that the correct regparm is passed.
153
154 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
155
156         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
157         * sbitmap.c: ...to here to internalize sbitmap element access.
158         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
159         Explain why basic-block.h is included.
160         * function.h: Include tm.h for CUMULATIVE_ARGS.
161         * Makefile.in: Update dependencies.
162
163 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
164
165         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
166         New core types.
167         * sbitmap.h (struct sbitmap_def): Do not typedef here.
168         * sbitmap.c: Include sbitmap.h.
169         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
170         hard-reg-set.h.  Split everything related to regsets out from here...
171         * regset.h: ...to here.  New file.
172         * df.h: Include regset.h and sbitmap.h.
173         * tree-flow.h: Likewise.
174         * cfgloop.h: Likewise.
175         * except.h: Do not include sbitmap.h.  Include hashtab.h.
176         * cgraph.h: Include vec.h and function.h.
177         * reload.h (struct insn_chain): Change types of live_throughout
178         and dead_or_set from regset_head to bitmap_head.
179         (compute_use_by_pseudos): Be defined also if regset.h is not included.
180         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
181         spilled_regs from regset_head to bitmap_head to avoid dependency
182         in regset.h.
183         * sel-sched-ir.h: Include regset.h.
184         * reload.c: Include df.h before reload.h.
185         * caller-save.c: Likewise.
186         * reload1.c: Likewise.
187         * ira.c: Likewise.
188         (mark_elimination): Update type of r to bitmap, consistent with
189         DF_LR_IN.
190         * dominance.c: Include bitmap.h.
191         * modulo-sched.c: Include df.h.
192         * cfganal.c: Include bitmap.h and sbitmap.h.
193         * cfgbuild.c: Include sbitmap.h.
194         * lcm.c: Include sbitmap.h.
195         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
196         * domwalk.c: Include sbitmap.h, exclude ggc.h.
197         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
198         * cselib.c: Include bitmap.h.
199         * tree-optimize.c: Include regset.h.
200         * stmt.c: Include bitmap.h.
201         * Makefile.in: Update dependencies.
202
203 2010-05-22  Jan Hubicka  <jh@suse.cz>
204
205         * cgraph.h (struct varpool_node): Add same_comdat_group.
206         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
207         pointer.
208         (output_varpool): Update call of lto_output_varpool_node.
209         (input_varpool): Read same_comdat_group pointer.
210         (input_varpool_1): Fixup same_comdat_group pointer.
211         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
212         group is needed, all are.
213         * varpool.c (varpool_remove_node): Remove node from same comdat group
214         linklist too.
215         (varpool_analyze_pending_decls): Walk same comdat groups.
216
217 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
218
219         * rtl.h (union rtunion_def): Remove rt_bit member.
220         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
221         * print-rtl (print_rtx): Do not print the member.
222         * gengtype.c (adjust_field_rtx_def): Do not handle it.
223         * gengenrtl.c (type_from_format): Likewise.
224         (accessor_from_format): Likewise.
225
226 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
227
228         * dbgcnt.c: Include toplev.h instead of errors.h.
229         * ira-emit.c: Don't include errors.h.
230         * ira.c: Include toplev.h instead of errors.h.
231         * lto-compress.c: Include toplev.h instead of errors.h.
232         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
233         ira.o, dbgcnt.o): Update dependencies.
234
235 2010-05-22  Richard Guenther  <rguenther@suse.de>
236
237         * gimple.c (gimple_types_compatible_p): Check type qualifications
238         before merging pointer to complete and pointer to incomplete type.
239         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
240         we use our own resolution algorithm.  The gold linker plugin
241         doesn't do the job we want it to do here.
242
243 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
244
245         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
246         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
247         (sparc_mode_dependent_address_p): New function.
248
249 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
250
251         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
252
253         * timevar.c: Do not include any core headers.
254         (timevar_print): De-i18n-ize.
255         (print_time): Likewise.
256         * timevar.h (timevar_push, timevar_pop): Make inline functions.
257
258 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
259
260         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
261         langhooks-def.h.
262         (diagnostic_initialize): Initialize x_data not last_function.
263         (diagnostic_report_current_function): Move to tree-diagnostic.c.
264         (default_diagnostic_starter): Call
265         diagnostic_report_current_module not
266         diagnostic_report_current_function.
267         (diagnostic_report_diagnostic): Initialize x_data not
268         abstract_origin.
269         (verbatim): Likewise.
270         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
271         x_data.
272         (struct diagnostic_context): Change last_function to x_data.
273         (diagnostic_auxiliary_data): Replace with
274         diagnostic_context_auxiliary_data and
275         diagnostic_info_auxiliary_data.
276         (diagnostic_last_function_changed, diagnostic_set_last_function,
277         diagnostic_report_current_function): Move to tree-diagnostic.h.
278         (print_declaration, dump_generic_node, print_generic_stmt,
279         print_generic_stmt_indented, print_generic_expr,
280         print_generic_decl, debug_c_tree, dump_omp_clauses,
281         print_call_name, debug_generic_expr, debug_generic_stmt,
282         debug_tree_chain, default_tree_printer): Move to
283         tree-pretty-print.h.
284         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
285         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
286         gimple-pretty-print.h.
287         * pretty-print.c: Don't include tree.h
288         (pp_base_format): Don't handle %K here.
289         (pp_base_tree_identifier): Move to tree-pretty-print.c.
290         * pretty-print.h (text_info): Change abstract_origin to x_data.
291         (pp_tree_identifier, pp_unsupported_tree,
292         pp_base_tree_identifier): Move to tree-pretty-print.h.
293         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
294         tree-pretty-print.h: New files.
295         * tree-pretty-print.c: Include tree-pretty-print.h.
296         (percent_K_format): New.  Moved from pretty-print.c.
297         (pp_base_tree_identifier): Move from pretty-print.c.
298         * c-objc-common.c: Include tree-pretty-print.h.
299         (c_tree_printer): Handle %K here.
300         * langhooks.c: Include tree-diagnostic.h.
301         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
302         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
303         (default_tree_printer): Handle %K using percent_K_format.
304         (general_init): Use default_tree_diagnostic_starter.
305         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
306         (free_lang_data): Use default_tree_diagnostic_starter.
307         * c-pretty-print.c: Include tree-pretty-print.h.
308         * cfgexpand.c: Include tree-pretty-print.h and
309         gimple-pretty-print.h.
310         * cgraphunit.c: Include tree-pretty-print.h and
311         gimple-pretty-print.h.
312         * dwarf2out.c: Include tree-pretty-print.h.
313         * except.c: Include tree-pretty-print.h.
314         * gimple-pretty-print.c: Include tree-pretty-print.h and
315         gimple-pretty-print.h.
316         * gimplify.c: Include tree-pretty-print.h.
317         * graphite-poly.c: Include tree-pretty-print.h and
318         gimple-pretty-print.h.
319         * ipa-cp.c: Include tree-pretty-print.h.
320         * ipa-inline.c: Include gimple-pretty-print.h.
321         * ipa-prop.c: Include tree-pretty-print.h and
322         gimple-pretty-print.h.
323         * ipa-pure-const.c: Include gimple-pretty-print.h.
324         * ipa-struct-reorg.c: Include tree-pretty-print.h and
325         gimple-pretty-print.h.
326         * ipa-type-escape.c: Include tree-pretty-print.h.
327         * print-rtl.c: Include tree-pretty-print.h.
328         * print-tree.c: Include gimple-pretty-print.h.
329         * sese.c: Include tree-pretty-print.h.
330         * tree-affine.c: Include tree-pretty-print.h.
331         * tree-browser.c: Include tree-pretty-print.h.
332         * tree-call-cdce.c: Include gimple-pretty-print.h.
333         * tree-cfg.c: Include tree-pretty-print.h and
334         gimple-pretty-print.h.
335         * tree-chrec.c: Include tree-pretty-print.h.
336         * tree-data-ref.c: Include tree-pretty-print.h and
337         gimple-pretty-print.h.
338         * tree-dfa.c: Include tree-pretty-print.h.
339         * tree-if-conv.c: Include tree-pretty-print.h and
340         gimple-pretty-print.h.
341         * tree-inline.c: Include tree-pretty-print.h.
342         * tree-into-ssa.c: Include tree-pretty-print.h and
343         gimple-pretty-print.h.
344         * tree-nrv.c: Include tree-pretty-print.h.
345         * tree-object-size.c: Include tree-pretty-print.h and
346         gimple-pretty-print.h.
347         * tree-outof-ssa.c: Include tree-pretty-print.h and
348         gimple-pretty-print.h.
349         * tree-parloops.c: Include tree-pretty-print.h and
350         gimple-pretty-print.h.
351         * tree-predcom.c: Include tree-pretty-print.h and
352         gimple-pretty-print.h.
353         * tree-scalar-evolution.c: Include tree-pretty-print.h and
354         gimple-pretty-print.h.
355         * tree-sra.c: Include tree-pretty-print.h.
356         * tree-ssa-address.c: Include tree-pretty-print.h.
357         * tree-ssa-alias.c: Include tree-pretty-print.h.
358         * tree-ssa-ccp.c: Include tree-pretty-print.h and
359         gimple-pretty-print.h.
360         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
361         * tree-ssa-copy.c: Include tree-pretty-print.h and
362         gimple-pretty-print.h.
363         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
364         * tree-ssa-dce.c: Include tree-pretty-print.h and
365         gimple-pretty-print.h.
366         * tree-ssa-dom.c: Include tree-pretty-print.h and
367         gimple-pretty-print.h.
368         * tree-ssa-dse.c: Include gimple-pretty-print.h.
369         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
370         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
371         * tree-ssa-live.c: Include tree-pretty-print.h and
372         gimple-pretty-print.h.
373         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
374         gimple-pretty-print.h.
375         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
376         gimple-pretty-print.h.
377         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
378         gimple-pretty-print.h.
379         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
380         gimple-pretty-print.h.
381         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
382         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
383         * tree-ssa-operands.c: Include tree-pretty-print.h and
384         gimple-pretty-print.h.
385         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
386         gimple-pretty-print.h.
387         * tree-ssa-pre.c: Include tree-pretty-print.h and
388         gimple-pretty-print.h.
389         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
390         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
391         gimple-pretty-print.h.
392         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
393         gimple-pretty-print.h.
394         * tree-ssa-sink.c: Include gimple-pretty-print.h.
395         * tree-ssa-ter.c: Include tree-pretty-print.h and
396         gimple-pretty-print.h.
397         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
398         * tree-ssa.c: Include tree-pretty-print.h and
399         gimple-pretty-print.h.
400         * tree-stdarg.c: Include gimple-pretty-print.h.
401         * tree-switch-conversion.c: Include gimple-pretty-print.h.
402         * tree-tailcall.c: Include tree-pretty-print.h and
403         gimple-pretty-print.h.
404         * tree-vect-data-refs.c: Include tree-pretty-print.h and
405         gimple-pretty-print.h.
406         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
407         gimple-pretty-print.h.
408         * tree-vect-loop.c: Include tree-pretty-print.h and
409         gimple-pretty-print.h.
410         * tree-vect-patterns.c: Include gimple-pretty-print.h.
411         * tree-vect-slp.c: Include tree-pretty-print.h and
412         gimple-pretty-print.h.
413         * tree-vect-stmts.c: Include tree-pretty-print.h and
414         gimple-pretty-print.h.
415         * tree-vectorizer.c: Include tree-pretty-print.h.
416         * tree-vrp.c: Include tree-pretty-print.h and
417         gimple-pretty-print.h.
418         * value-prof.c: Include tree-pretty-print.h and
419         gimple-pretty-print.h.
420         * var-tracking.c: Include tree-pretty-print.h.
421         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
422         (tree-diagnostic.o): New dependencies.
423         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
424         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
425         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
426         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
427         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
428         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
429         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
430         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
431         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
432         tree-ssa-address.o, tree-ssa-loop-niter.o,
433         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
434         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
435         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
436         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
437         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
438         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
439         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
440         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
441         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
442         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
443         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
444         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
445         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
446         tree-switch-conversion.o, var-tracking.o, value-prof.o,
447         cfgexpand.o, pretty-print.o): Update dependencies.
448
449 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
450
451         * tree-ssa-structalias.c: Remove tm_p.h from include.
452
453 2010-05-21  Jeff Law  <law@redhat.com>
454
455         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
456
457 2010-05-21  Jason Merrill  <jason@redhat.com>
458
459         * tree-eh.c (cleanup_is_dead_in): New.
460         (lower_try_finally): Don't generate a dead cleanup region.
461         (lower_cleanup): Likewise.
462
463 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
464
465         PR debug/44223
466         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
467         unchain each use from the cyclic next_regno_use chain first.
468
469 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
470
471         * real: Do not include gmp.h, mpfr.h, and mpc.h.
472         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
473         (real_value_negate, real_value_abs): New prototypes.
474         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
475         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
476         new include file for interface between MPFR and REAL_VALUE_TYPE.
477         * real.c: Include realmpfr.h.
478         (real_arithmetic2): Remove legacy function.
479         (real_value_negate): New.
480         (real_value_abs): New.
481         (mfpr_from_real, real_from_mpfr): Move from here...
482         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
483         * builtins.c: Include realmpfr.h.
484         * fold-const.c: Include realmpfr.h.
485         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
486         (fold_negate_const): Likewise.
487         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
488         * toplev.c: Include realmpfr.h.
489         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
490         and real_value_negate.
491         * fixed-value.c (check_real_for_fixed_mode): Likewise.
492         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
493         (vfp3_const_double_index): Likewise.
494         (arm_print_operand): Likewise.
495         * Makefile.in: Update dependencies.
496
497 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
498
499         * config/s390/s390.c (override_options): Increase the default
500         of max-completely-peel-times.
501
502 2010-05-21  Julian Brown  <julian@codesourcery.com>
503             Mark Mitchell  <mark@codesourcery.com>
504
505         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
506         sibling calls for Thumb-1.
507         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
508         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
509         Thumb-2.
510         (*call_insn, *call_value_insn): Don't use for Thumb-2.
511         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
512         for Thumb-2.
513         (return): New expander.
514         (*arm_return): New name for ARM return insn.
515         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
516
517 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
518
519         * config.gcc (sparc64-*-rtems*): New target.
520
521 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
522
523         * tree.c (build_function_decl_skip_args): Fix grammar.
524         (build_function_type_list_1): Fix typos, adjust formatting.
525
526 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
527
528         * tree.h: Include real.h and fixed-value.h as basic datatypes.
529         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
530         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
531         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
532         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
533         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
534         tree-pretty-print.c, tree-loop-distribution.c,
535         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
536         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
537         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
538         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
539         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
540         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
541         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
542         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
543         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
544         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
545         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
546         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
547         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
548         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
549         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
550         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
551         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
552         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
553         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
554         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
555         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
556         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
557         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
558         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
559         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
560         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
561         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
562         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
563         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
564         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
565         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
566         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
567         config/score/score7.c, config/score/score.c, config/arm/arm.c,
568         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
569         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
570         config/bfin/bfin.c:
571         Clean up redundant includes.
572         * Makefile.in: Update accordingly.
573
574 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
575
576         PR middle-end/44204
577         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
578         statement has no arguments.
579
580 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
581
582         PR/44139
583         * varasm.c (emutls_decl): Merge attributes to new decl.
584
585 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
586
587         PR middle-end/44101
588         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
589         around the uniquized constructor if its type requires a conversion.
590
591 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
592
593         PR debug/44205
594         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
595         at -O0 goto_locus of any of the incoming edges differs from
596         goto_locus of outgoing edge, or gimple_location of any of the
597         labels differs.
598
599 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
600
601         * ira.c (ira_non_ordered_class_hard_regs): Define.
602         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
603         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
604         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
605         cost of unaligned hard regs when allocating multi-reg pseudos.
606
607 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
608
609         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
610         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
611         for TARGET_NO_FLOAT.
612         * config/mips/mips.c (mips_file_start): Expand conditional expression
613         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
614         (mips_override_options): Move -mno-float override -msoft-float and
615         -mhard-float.
616         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
617         Condition(TARGET_SUPPORTS_NO_FLOAT).
618         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
619         __mips_no_float here.
620         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
621         (TARGET_SUPPORTS_NO_FLOAT): Define.
622         * config/mips/sdemtk.opt: Delete.
623
624 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
625
626         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
627         out if !cond.
628
629 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
630
631         PR target/43733
632         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
633         * configure: Regenerate.
634         * config.in: Regenerate.
635         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
636         instead of sahf only for 64bit targets.
637
638 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
639
640         PR debug/44178
641         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
642         setup_ref_regs for DEBUG_INSNs.
643
644 2010-05-20  Jan Hubicka  <jh@suse.cz>
645
646         PR middle-end/44197
647         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
648
649 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
650
651         PR bootstrap/43870
652         * df-scan.c (df_ref_compare): Stabilize sort.
653
654 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
655
656         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
657         argument.  Don't use DW_OP_piece if offset is non-zero,
658         put offset into second DW_OP_bit_piece argument.
659         (dw_sra_loc_expr): Adjust callers.  For memory expressions
660         compute offset.
661
662 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
663
664         PR target/44202
665         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
666         settings for 16-bit-constant "addo" alternative.
667
668 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
669
670         * config/mips/mips-dsp.md (add<DSPV:mode>3,
671         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
672
673         PR target/43764
674         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
675         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
676         Use it.
677
678 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
679
680         * diagnostic.c (FLOAT, FFS): Don't undefine.
681         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
682         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
683         include ordering.
684
685 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
686
687         * combine.c (propagate_for_debug): Call make_compound_operation
688         on the source value.
689         (try_combine): When implementing a split chosen by find_split_point,
690         either copy i2src or set it to null.  Assert that i2src is not null
691         before substituting into CALL_INSN_FUNCTION_USAGE.
692
693 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
694
695         * double-int.h (double_int_ior): New function.
696         * tree.h (build_int_cst_wide_type): Remove.
697         * tree.c (build_int_cst_wide_type): Remove.
698         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
699         of build_int_cst_wide_type.
700         * stor-layout.c (set_sizetype): (Ditto.).
701         * dojump.c (do_jump): Use build_int_cstu instead of
702         build_int_cst_wide_type.
703
704 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
705
706         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
707         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
708         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
709         * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
710         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
711         propagate the 'data' argument to copy_tree_r.
712         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
713         Propagate 'data' argument to walk_tree.
714         (copy_if_shared): New function.
715         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
716         (unmark_visited): New function.
717         (unshare_body): Call copy_if_shared instead of doing it manually.
718         (unvisit_body): Call unmark_visited instead of doing it manually.
719
720 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
721
722         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
723         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
724         * hooks.c: Likewise.
725         * target-def.h (TARGET_FOLD_BUILTIN): Define to
726         hook_tree_tree_int_treep_bool_null.
727         * target.h: (struct gcc_target): Update signature of fold_builtin
728         field.
729         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
730         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
731         instead of the call expression.
732         (fold_builtin_call_array): Pass n and argarray directly.
733         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
734         consing a list.
735         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
736         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
737         `i' and use it in place of `arity'.
738         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
739         Dereference `args' directly.
740         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
741
742 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
743
744         * doc/sourcebuild.texi (Effective-Target Keywords): Document
745         3dnow, sse3, sse2.
746         (Directives): Document optional dg-require-effective-target
747         selector.
748
749 2010-05-19  Richard Guenther  <rguenther@suse.de>
750
751         PR lto/44196
752         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
753
754 2010-05-19  Richard Guenther  <rguenther@suse.de>
755
756         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
757         * common.opt (fwhopr=): New.
758         * opts.c (common_handle_option): Handle OPT_fwhopr.
759         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
760         * collect2.c (main): Match -fwhopr*.
761         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
762         Execute ltrans stage in parallel when jobs is bigger than 1.
763
764 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
765
766         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
767         pentiumpro on Solaris 8/x86 with Sun as.
768         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
769         hidden alias bug.
770         (gcc_cv_as_ix86_quad): Check for .quad directive.
771         * configure: Regenerate.
772         * config.in: Regenerate.
773         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
774
775 2010-05-19  Martin Jambor  <mjambor@suse.cz>
776
777         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
778         also for indirect edges.  Actual printing moved...
779         (ipa_print_node_jump_functions_for_edge): ...here.
780         (ipa_compute_jump_functions): Renamed to
781         ipa_compute_jump_functions_for_edge and made static.
782         (ipa_compute_jump_functions): New function.
783         (make_edge_direct_to_target): Check if the number of arguments on
784         the newly direct edge is the same as the number of parametrs of
785         the callee.
786         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
787         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
788         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
789         analysis functions unconditionally, call the new
790         ipa_analyze_params_uses on the node instead of every edge.
791
792 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
793
794         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
795         to tree.
796         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
797         also checks for a constant int vs.  non-constant but
798         loop-invariant steps.
799         (find_or_create_group): Change the sort algorithm to only consider
800         steps that are constant ints.
801         (idx_analyze_ref): Adopt code to handle a tree instead of a
802         HOST_WIDE_INT for step.
803         (gather_memory_references_ref): Handle tree instead of int and be
804         prepared to see a NULL_TREE.
805         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
806         prefetches if the step cannot be calculated at compile time.
807         (issue_prefetch_ref): Issue prefetches for non-constant but
808         loop-invariant steps.
809
810 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
811
812         Revert:
813         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
814
815         * tree.h (build_call_list): Remove.
816         * tree.c (build_call_list): Remove.
817
818 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
819
820         * tree.h (build_call_list): Remove.
821         * tree.c (build_call_list): Remove.
822
823 2010-05-18  Jan Hubicka  <jh@suse.cz>
824
825         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
826
827 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
828
829         PR rtl-optimization/43332
830         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
831
832 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
833
834         * tree.h (build_int_cstu): Implement as static inline.
835         * tree.c (build_int_cstu): Remove function.
836         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
837         sign extended.
838
839 2010-05-18  Richard Guenther  <rguenther@suse.de>
840
841         PR lto/44143
842         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
843         (debug): Initialize from -save-temps.
844         (collect_execute): Print command-line when verbose.
845         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
846         for ltrans invocation.  Produce -dumpbase flag again.
847         (process_args): Remove.
848         (main): Simplify.
849         * collect2.c (maybe_run_lto_and_relink): Only pass object
850         files to lto-wrapper.
851         * gcc.c (LINK_COMMAND_SPEC): Likewise.
852
853 2010-05-18  Jan Hubicka  <jh@suse.cz>
854
855         * opts.c (decode_options): Do not disable whopr at ipa_cp.
856         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
857
858 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
859
860         PR lto/44184
861         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
862         in a GIMPLE_ASM.
863         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
864         in a GIMPLE_ASM.
865
866 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
867
868         PR debug/41371
869         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
870         rtx_equal_p inline.
871
872 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
873
874         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
875         lto-macho as lto_binary_reader.
876
877         * darwin.c (darwin_asm_named_section): Do not add assembler comment
878         after .section directive; just print it before the directive instead.
879
880 2010-05-17  Jan Hubicka  <jh@suse.cz>
881
882         * cgraph.c (cgraph_create_virtual_clone): Only check
883         versionable_function_p when not in wpa and checking is enabled.
884         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
885         there are no more functions to materialize.
886
887 2010-05-17  Jan Hubicka  <jh@suse.cz>
888
889         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
890         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
891         New functions.
892         (output_cgraph): Call output_cgraph_opt_summary.
893         (input_cgrpah): Call input_cgraph_opt_summary.
894         (output_cgraph_opt_summary_p, output_node_opt_summary,
895         input_node_opt_summary, input_cgraph_opt_section): New functions.
896         * lto-section-in.c (lto_section_name): Add cgraphopt.
897         * tree-inline.c (tree_function_versioning): Handle parm_num.
898         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
899         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
900
901 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
902
903         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
904         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
905         the insn to prefetch ratio heuristic to loops with known trip count.
906
907 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
908
909         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
910         (schedule_prefetches): Do not generate a prefetch if the unroll factor
911         is far from what is required by the prefetch.
912
913 2010-05-17  Jan Hubicka  <jh@suse.cz>
914
915         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
916         (ipcp_estimate_growth): Likewise.
917         (ipcp_const_param_count): Likewise.
918         (ipcp_insert_stage): Likewise.
919         * ipa-prop.c (visit_load_for_mod_analysis): New function.
920         (visit_store_addr_for_mod_analysis): Set used flag.
921         (ipa_detect_param_modifications): Set used flag for SSE params;
922         update use of walk_stmt_load_store_addr_ops.
923         (ipa_print_node_params): Print used flag.
924         (ipa_write_node_info): Stream used flag.
925         (ipa_read_node_info): Likewise.
926         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
927         (ipa_is_param_used): New function.
928         (lto_ipa_fixup_call_notes): Remove unused declaration.
929
930 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
931
932         PR target/44074
933         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
934         * configure: Regenerate.
935         * config.in: Regenerate.
936         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
937         !HAVE_AS_IX86_REP_LOCK_PREFIX.
938         Don't emit whitespace.
939         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
940         (*rep_movsi): Likewise.
941         (*rep_movsi_rex64): Likewise.
942         (*rep_movqi): Likewise.
943         (*rep_movqi_rex64): Likewise.
944         (*rep_stosdi_rex64): Likewise.
945         (*rep_stossi): Likewise.
946         (*rep_stossi_rex64): Likewise.
947         (*rep_stosqi): Likewise.
948         (*rep_stosqi_rex64): Likewise.
949         (*cmpstrnqi_nz_1): Use {%;} after repz.
950         (*cmpstrnqi_nz_rex_1): Likewise.
951         (*cmpstrnqi_1): Likewise.
952         (*cmpstrnqi_rex_1): Likewise.
953         (*strlenqi_1): Use {%;} after repnz.
954         (*strlenqi_rex_1): Likewise.
955         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
956         (*sync_compare_and_swap<mode>): Likewise.
957         (sync_double_compare_and_swap<mode>): Likewise.
958         (*sync_double_compare_and_swapdi_pic): Likewise.
959         (sync_old_add<mode>): Likewise.
960         (sync_add<mode>): Likewise.
961         (sync_sub<mode>): Likewise.
962         (sync_<code><mode>): Likewise.
963
964 2010-05-17  Martin Jambor  <mjambor@suse.cz>
965
966         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
967         otr_token and polymorphic.
968         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
969         (cgraph_clone_edge): Copy the above fields.
970         * tree.c (get_binfo_at_offset): New function.
971         * tree.h (get_binfo_at_offset): Declare.
972         * ipa-prop.h (enum jump_func_type): Added known_type jump function
973         type, reordered items, updated comments.
974         (union jump_func_value): Added base_type field, reordered fields.
975         (enum ipa_lattice_type): Moved down in the file.
976         (struct ipa_param_descriptor): New field polymorphic.
977         (ipa_is_param_polymorphic): New function.
978         * ipa-prop.c: Include gimple.h and gimple-fold.h.
979         (ipa_print_node_jump_functions): Print known type jump functions.
980         (compute_complex_pass_through): Renamed to...
981         (compute_complex_assign_jump_func): this.
982         (compute_complex_ancestor_jump_func): New function.
983         (compute_known_type_jump_func): Likewise.
984         (compute_scalar_jump_functions): Create known type and complex ancestor
985         jump functions.
986         (ipa_note_param_call): New parameter polymorphic, set the corresponding
987         flag in the call note accordingly.
988         (ipa_analyze_call_uses): Renamed to...
989         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
990         variable var only in the block where it is used.
991         (ipa_analyze_virtual_call_uses): New function.
992         (ipa_analyze_call_uses): Likewise.
993         (combine_known_type_and_ancestor_jfs): Likewise.
994         (update_jump_functions_after_inlining): Implemented handling of a
995         number of new jump function types combination.
996         (print_edge_addition_message): Removed.
997         (make_edge_direct_to_target): New function.
998         (try_make_edge_direct_simple_call): Likewise.
999         (try_make_edge_direct_virtual_call): Likewise.
1000         (update_call_notes_after_inlining): Renamed to...
1001         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1002         indirect calls to try_make_edge_direct_simple_call, also calls
1003         try_make_edge_direct_virtual_call for virtual calls.
1004         (ipa_print_node_params): Changed the header message.
1005         (ipa_write_jump_function): Stream also known type jump functions.
1006         (ipa_read_jump_function): Likewise.
1007         (ipa_write_indirect_edge_info): Stream new fields in
1008         cgraph_indirect_call_info.
1009         (ipa_read_indirect_edge_info): Likewise.
1010         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1011         GIMPLE_FOLD_H.
1012
1013 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1014
1015         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1016
1017 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1018
1019         * tree.h (CALL_EXPR_ARGS): Delete.
1020         (call_expr_arglist): Delete.
1021         * tree.c (call_expr_arglist): Delete.
1022         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1023         targetm.fold_builtin.
1024         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1025         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1026         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1027         arglist parameter.  Use CALL_EXPR_ARG.
1028         (picochip_expand_builtin_3op): Likewise.
1029         (picochip_expand_builtin_2opvoid): Likewise.
1030         (picochip_expand_array_get): Likewise.
1031         (picochip_expand_array_put): Likewise.
1032         (picochip_expand_array_testport): Likewise.
1033         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1034         rather than arglist.
1035         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1036         CALL_EXPR_ARGS.
1037         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1038         than TREE_VALUE and TREE_CHAIN.
1039         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1040         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1041         the arglist.
1042
1043 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1044
1045         PR bootstrap/42347
1046         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1047         to have no fallthru edge.
1048
1049         PR middle-end/44102
1050         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1051         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1052         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1053         add BARRIER after previous bb if needed.
1054
1055 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1056
1057         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1058
1059 2010-05-17  Alan Modra  <amodra@gmail.com>
1060
1061         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1062         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1063         with copy_reg rtx param.
1064         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1065         Correct cases where code for ABI_V4 did not initialise the reg
1066         used to access frame.  Also leave frame_reg_rtx as sp for large
1067         frames that save no regs.
1068
1069 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1070
1071         PR middle-end/44133
1072         * tree-sra.c (create_access_replacement): New parameter rename, mark
1073         the replaement for renaming only when it is true.
1074         (get_access_replacement): Pass true in the rename parameter of
1075         create_access_replacement.
1076         (get_unrenamed_access_replacement): New function.
1077         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1078         replacement declaration from it.
1079
1080 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1081
1082         * function.c (try_fit_stack_local, add_frame_space): New static
1083         functions.
1084         (assign_stack_local_1): Use them.  Look for opportunities to use
1085         space previously wasted on alignment.
1086         * function.h (struct frame_space): New.
1087         (struct rtl_data): Add FRAME_SPACE_LIST member.
1088         * reload1.c (something_was_spilled): New static variable.
1089         (alter_reg): Set it.
1090         (reload): Test it in addition to testing if the frame size changed.
1091
1092 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1093
1094         * config/s390/s390.c: Define sane prefetch settings and activate
1095         flag_prefetch_loop_arrays on -O3.
1096         * config/s390/s390.h: Declare that read can use write prefetch.
1097
1098 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1099
1100         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1101         build.
1102
1103 2010-05-16  Jan Hubicka  <jh@suse.cz>
1104
1105         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1106         function body; do not check stdarg field of struct function.
1107
1108 2010-05-16  Jan Hubicka  <jh@suse.cz>
1109
1110         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1111         * cgraph.h (cgraph_local_info): Add versionable flag.
1112         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1113         (ipcp_versionable_function_p): Use it.
1114         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1115         versionable flag.
1116
1117 2010-05-16  Jan Hubicka  <jh@suse.cz>
1118
1119         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1120         clone into hash when it is different from orig.
1121         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1122         * cgraph.h (cgraph_clone_node): Update prototype.
1123         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1124         (lto_cgraph_encoder_delete): Delete body map.
1125         (lto_cgraph_encoder_size): Move to header.
1126         (lto_cgraph_encoder_encode_body_p,
1127         lto_set_cgraph_encoder_encode_body): New.
1128         (lto_output_node): Do not take written_decls argument; output clone_of
1129         pointer.
1130         (add_node_to): Add include_body_argument; call
1131         lto_set_cgraph_encoder_encode_body on master of the clone.
1132         (add_references): Update use of add_node_to.
1133         (compute_ltrans_boundary): Likewise.
1134         (output_cgraph): Do not create written_decls bitmap.
1135         (input_node): Take nodes argument; stream in clone_of correctly.
1136         (input_cgraph_1): Update use of input_node.
1137         * lto-streamer-out.c (lto_output): Use encoder info to decide
1138         what bodies to output.
1139         * ipa-inline.c (cgraph_clone_inlined_nodes,
1140         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1141         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1142         (lto_cgraph_encoder_size): Define here.
1143         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1144         Declare.
1145
1146 2010-05-16  Richard Guenther  <rguenther@suse.de>
1147
1148         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1149         -fipa-type-escape.
1150         * ipa-type-escape.c (gate_type_escape_vars): Run when
1151         -fipa-struct-reorg runs.
1152         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1153         * common.opt (fipa-type-escape): Remove.
1154
1155 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1156
1157         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1158         (decode_options): Likewise.
1159         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1160
1161 2010-05-16  Jan Hubicka  <jh@suse.cz>
1162
1163         * ipa.c (function_and_variable_visibility): Also bring local all
1164         aliases.
1165
1166 2010-05-16  Richard Guenther  <rguenther@suse.de>
1167
1168         * alias.c (nonoverlapping_memrefs_p): Remove use of
1169         IPA type-escape information.
1170
1171 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1172
1173         * c-common.c (c_common_reswords): Add _Static_assert for C.
1174         * c-parser.c (c_token_starts_declaration,
1175         c_parser_next_token_starts_declaration,
1176         c_parser_static_assert_declaration_no_semi,
1177         c_parser_static_assert_declaration): New.
1178         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1179         Handle static assertions if static_assert_ok.
1180         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1181         c_parser_compound_statement_nostart, c_parser_label,
1182         c_parser_for_statement, c_parser_objc_methodprotolist,
1183         c_parser_omp_for_loop): All callers of
1184         c_parser_declaration_or_fndef changed.
1185         (c_parser_struct_declaration): Handle static assertions.
1186         (c_parser_compound_statement_nostart): Use
1187         c_parser_next_token_starts_declaration and
1188         c_token_starts_declaration to detect start of declarations.
1189         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1190         Likewise.
1191
1192 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1193
1194         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1195         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1196         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1197         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1198         (mmix_function_outgoing_value): Rename to...
1199         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1200         (mmix_function_value_regno_p): Make static.
1201         (mmix_libcall_value): New function.
1202         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1203         mmix_function_value_regno_p): Remove declaration.
1204
1205 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1206
1207         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1208         BUILT_IN_ALLOCA if stack checking is enabled.
1209
1210 2010-05-16  Richard Guenther  <rguenther@suse.de>
1211
1212         * var-tracking.c (vars_copy_1): Inline ...
1213         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1214         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1215         (variable_merge_over_cur): Adjust.  Merge asserts.
1216         (variable_merge_over_src): Likewise.
1217         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1218         (variable_post_merge_new_vals): Merge asserts.
1219         (variable_post_merge_perm_vals): Likewise.
1220         (find_mem_expr_in_1pdv): Likewise.
1221         (dataflow_set_different_value): Remove.
1222         (onepart_variable_different_p): Merge asserts.
1223         (variable_different_p): Likewise.
1224         (dataflow_set_different_1): Inline ...
1225         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1226         (emit_notes_for_differences_1): Merge asserts.
1227
1228 2010-05-16  Richard Guenther  <rguenther@suse.de>
1229
1230         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1231         * optabs.c (libfunc_decl_hash): Likewise.
1232         * varasm.c (emutls_decl): Likewise.
1233
1234 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1235
1236         * c-decl.c: Don't include gimple.h.
1237         (merge_decls): Do not copy gimple_body.
1238
1239 2010-05-15  Jason Merrill  <jason@redhat.com>
1240
1241         * c.opt: Add -fnothrow-opt.
1242
1243 2010-05-15  Jan Hubicka  <jh@suse.cz>
1244
1245         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1246         analyzed.
1247         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1248
1249 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1250
1251         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1252         * Makefile.in: Add it.
1253         Fix all other Makefile dependencies for changes below.
1254         * tree.h: Include it instead of defining VEC primitives here.
1255         * gimple.h: Likewise.
1256         * rtl.h: Likewise.
1257         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1258         * except.h: Include vecir.h, break dependence on tree.h.
1259
1260         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1261         Move from here...
1262         * tree-iterator.c: ...to here.
1263         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1264
1265         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1266         tm_p.h.
1267         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1268         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1269         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1270         tree-mudflap.h, and target.h.
1271         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1272         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1273         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1274         Add FIXME for why gimple.h is still included (should be unnecessary
1275         since GCC 4.5 gimplification unit-at-a-time).
1276         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1277         * c-pragma.c: Add FIXME for why function.h needs to be included just
1278         for cfun, at front-end level.
1279         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1280         Do not include ggc.h, but include vecprim.h for VEC(char).
1281         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1282         Explain why target.h is included.
1283         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1284         Explain why gimple.h is included.
1285         * c-ppoutput.c: Do not include tm.h.
1286         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1287         * c-parses.c: Explain why rtl.h is included, and that this (and only
1288         this) is also why tm.h must be included.
1289         Do not include except.h.
1290         * c-lang.c: Do not include ggc.h.
1291
1292 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1293
1294         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1295
1296 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
1297
1298         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1299         unions by default if those structs and unions have no tags.  Do
1300         not condition anonymous struct and unions handling on flag_iso.
1301         Allow anonymous structs and unions for C1X.
1302         (finish_struct): Do not diagnose lack of named fields when
1303         anonymous structs and unions present for C1X.  Accept flexible
1304         array members in structure with anonymous structs or unions but no
1305         directly named fields.
1306         * doc/extend.texi (Unnamed Fields): Update.
1307
1308 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1309
1310         * gimple.h (compare_field_offset): Rename into...
1311         (gimple_compare_field_offset): ...this.
1312         * gimple.c (compare_field_offset): Rename into...
1313         (gimple_compare_field_offset): ...this.  Compare the full access if
1314         the offset is self-referential.
1315         (gimple_types_compatible_p): Adjust for above renaming.
1316         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
1317         DECL_NONADDRESSABLE_P flag of fields before merging them.
1318
1319 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
1320
1321         * tree.h (ctor_to_list): Delete.
1322         * tree.c (ctor_to_list): Delete.
1323
1324 2010-05-15  Jan Hubicka  <jh@suse.cz>
1325
1326         * ipa-reference.c: Include toplev.h
1327         (is_proper_for_analysis): Only add to all_module_statics
1328         if it is allocated.
1329         (write_node_summary_p, stream_out_bitmap,
1330         ipa_reference_write_optimization_summary,
1331         ipa_reference_read_optimization_summary): New.
1332         (struct ipa_opt_pass_d pass_ipa_reference): Add
1333         optimization summary streaming.
1334         * lto-cgraph.c (referenced_from_this_partition_p,
1335         reachable_from_this_partition_p): New functions.
1336         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1337         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
1338         * opts.c (decode_options): Enable ipa_reference.
1339         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
1340         * lto-streamer.h (referenced_from_this_partition_p,
1341         reachable_from_this_partition_p): Declare.
1342
1343 2010-05-15  Richard Guenther  <rguenther@suse.de>
1344
1345         PR tree-optimization/44038
1346         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
1347         taking the address of a V_C_E of a constant.
1348
1349 2010-05-14  Jan Hubicka  <jh@suse.cz>
1350
1351         * tree.h (memory_identifier_string): Remove.
1352         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
1353         (ipa_reference_global_vars_info_d): Remove statics_not_read and
1354         statics_not_written.
1355         (ipa_reference_optimization_summary_d): New structure.
1356         (ipa_reference_optimization_summary_t): New type and vector.
1357         (ipa_reference_vars_info_d): Embedd structures instead of using
1358         pointers.
1359         (reference_vars_to_consider): Remove out of GGC space.
1360         (module_statics_escape): Remove.
1361         (global_info_obstack): Rename to ...
1362         (optimization_summary_obstack): ... this one.
1363         (initialization_status_t): Remove.
1364         (memory_identifier_string): Remove.
1365         (get_reference_vars_info): Fix indenting.
1366         (set_reference_vars_info): Likewise.
1367         (get_reference_optimization_summary): New.
1368         (set_reference_optimization_summary): New.
1369         (get_global_reference_vars_info): Remove.
1370         (ipa_reference_get_read_global): Remove.
1371         (ipa_reference_get_written_global): Remove.
1372         (ipa_reference_get_not_read_global): Update.
1373         (ipa_reference_get_not_written_global): Update.
1374         (is_proper_for_analysis): Outlaw addressable.
1375         (propagate_bits): Update for new datastructures.
1376         (analyze_variable): Remove.
1377         (init_function_info): Update for new datastructures.
1378         (clean_function_local_data): Remove.
1379         (clean_function): Remove.
1380         (copy_global_bitmap): Use optimizations_summary_obstack.
1381         (duplicate_node_data): Duplicate optimization summary only.
1382         (remove_node_data): Remove optimization summary only.
1383         (generate_summary): Do not analyze variables; do not compute
1384         module_statics_escape; do not prune solutions by it.
1385         (read_write_all_from_decl): Fix typos in comments.
1386         (propagate): Doscover readonly and nonaddressable first;
1387         update for new datastructures; share global bitmaps.
1388         * ipa-reference.h (ipa_reference_get_read_global,
1389         ipa_reference_get_written_global): Remove.
1390         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
1391         * Makefile.in: Remove ipa-refereference from GT files.
1392
1393 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1394
1395         PR debug/44112
1396         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
1397         for all SYMBOL_REF_DECLs.
1398
1399 2010-05-14  Jan Hubicka  <jh@suse.cz>
1400
1401         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
1402         (varpool_all_refs_explicit_p): New inline function.
1403         * ipa-reference.c: Update comment.
1404         (module_statics_written): Remove.
1405         (get_static_decl): Remove.
1406         (ipa_init): Do not initialize module_statics_written.
1407         (analyze_function): Likewise.
1408         (generate_summary): Likewise; do not compute module_statics_readonly
1409         and do not update variable flags.
1410         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
1411         * ipa.c: Inlucde flags.h
1412         (cgraph_local_node_p): New.
1413         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
1414         promote functions to local.
1415         (ipa_discover_readonly_nonaddressable_vars): New function.
1416         (function_and_variable_visibility): Use cgraph_local_node_p.
1417         * varpool.c (varpool_finalize_decl): Set force_output for
1418         DECL_PRESERVE_P vars.
1419
1420 2010-05-14  Jan Hubicka  <jh@suse.cz>
1421
1422         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
1423
1424 2010-05-14  Richard Guenther  <rguenther@suse.de>
1425
1426         PR tree-optimization/44119
1427         * tree-ssa-pre.c (eliminate): Properly mark replacement of
1428         a PHI node necessary.
1429
1430 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1431
1432         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
1433
1434 2010-05-14  Jason Merrill  <jason@redhat.com>
1435
1436         PR c++/44127
1437         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
1438         (gimple_call_set_nothrow): New.
1439         * gimple.c (gimple_build_call_from_tree): Call it.
1440         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
1441
1442         PR c++/44127
1443         * gimplify.c (gimplify_seq_add_stmt): No longer static.
1444         * gimple.h: Declare it.
1445         * gimple.c (gimple_build_eh_filter): No ops.
1446
1447 2010-05-14  Jan Hubicka  <jh@suse.cz>
1448
1449         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
1450         nodes already in queue.
1451         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
1452         re-enqueueing node.
1453
1454 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1455
1456         PR debug/44136
1457         * cfgexpand.c (expand_debug_expr): If non-memory op0
1458         has BLKmode, return NULL.
1459
1460 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
1461
1462         * config.gcc: Add support for --with-cpu option for bdver1.
1463         * config/i386/i386.h (TARGET_BDVER1): New macro.
1464         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
1465         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1466         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
1467         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1468         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
1469         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
1470         (processor_type): Add PROCESSOR_BDVER1.
1471         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
1472         processor_type in config/i386/i386.h.
1473         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
1474         movaps <reg, reg> instead of movapd <reg, reg> when replacing
1475         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
1476         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
1477         to emit packed xor instead of packed double/packed integer
1478         xor for SSE and AVX when moving a zero value.
1479         * config/i386/sse.md: Add check for
1480         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
1481         movapd/movdqa for SSE and AVX.
1482         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
1483         single logical operations i.e and, or and xor instead of packed double
1484         logical operations for SSE and AVX.
1485         * config/i386/i386-c.c (ix86_target_macros_internal):
1486         Add PROCESSOR_BDVER1.
1487         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
1488         (has_fma4, has_xop): New.
1489         * config/i386/i386.c (bdver1_cost): New variable.
1490         (m_BDVER1): New macro.
1491         (m_AMD_MULTIPLE): Add m_BDVER1.
1492         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
1493         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
1494         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
1495         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
1496         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
1497         x86_tune_sse_partial_reg_dependency,
1498         x86_tune_sse_unaligned_load_optimal,
1499         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
1500         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
1501         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
1502         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
1503         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1504         Enable/disable for bdver1.
1505         (processor_target_table): Add bdver1_cost.
1506         (cpu_names): Add bdver1.
1507         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
1508          processor_alias_table.
1509         (ix86_expand_vector_move_misalign): Change.
1510         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
1511         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
1512         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
1513         of movupd/movdqu for SSE and AVX.
1514         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
1515         (ix86_tune_adjust_cost): Add code for bdver1.
1516         (standard_sse_constant_opcode): Add check for
1517         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
1518         of packed double xor for SSE and AVX.
1519
1520 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
1521
1522         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
1523         result to unsigned.
1524
1525 2010-05-14  Tristan Gingold  <gingold@adacore.com>
1526
1527         * toplev.c (default_debug_hooks): Remove this variable.
1528         (process_options): Remove assignments to default_debug_hooks.
1529
1530 2010-05-14  Martin Jambor  <mjambor@suse.cz>
1531
1532         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
1533         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
1534         * langhooks.h (struct lang_hooks_for_decls): Removed field
1535         fold_obj_type_ref.
1536         * tree.c (free_lang_data): Remove assignment to
1537         lang_hooks.fold_obj_type_ref.
1538         * tree.def (OBJ_TYPE_REF): Update comment.
1539
1540 2010-05-14  Richard Guenther  <rguenther@suse.de>
1541
1542         PR tree-optimization/44124
1543         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
1544
1545 2010-05-14  Alan Modra  <amodra@gmail.com>
1546
1547         PR target/44075
1548         * config/rs6000/rs6000.c (struct machine_function): Reorder
1549         fields for better packing.  Add lr_save_state.
1550         (rs6000_ra_ever_killed): Return lr_save_state if set.
1551         (rs6000_emit_eh_reg_restore): Set lr_save_state.
1552
1553 2010-05-13  Jan Hubicka  <jh@suse.cz>
1554
1555         * varpool.c (decide_is_variable_needed): Drop code checking
1556         TREE_SYMBOL_REFERENCED.
1557
1558 2010-05-13  Jan Hubicka  <jh@suse.cz>
1559
1560         * final.c (output_addr_const): Do not call mark_decl_referenced.
1561         * cgraphunit.c (process_function_and_variable_attributes): Use
1562         mark_needed_node dirrectly.
1563         (assemble_thunk): Do not call mark_decl_referenced.
1564
1565 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
1566
1567         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
1568
1569 2010-05-13  Jeff Law  <law@redhat.com>
1570
1571         * ira-conflicts.c (print_allocno_conflicts): New function broken out
1572         from...
1573         (print_conflicts): Call print_allocno_conflicts.
1574
1575 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1576
1577         PR debug/44104
1578         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
1579         if it is NULL.
1580
1581 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
1582
1583         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
1584         t-mingw-w64 or t-mingw-w32 for multilib configuration.
1585         * config/i386/t-mingw-w32: New.
1586         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
1587
1588 2010-05-13  Martin Jambor  <mjambor@suse.cz>
1589
1590         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
1591         gimple-fold.c).
1592         * gimple-fold.c (get_base_binfo_for_type): New function.
1593         (gimple_get_relevant_ref_binfo): Likewise.
1594         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1595         (gimple_fold_obj_type_ref): Likewise.
1596         (fold_gimple_call): Simplify condition for folding virtual calls
1597         and call gimple_fold_obj_type_ref.
1598         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
1599         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1600
1601 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
1602
1603         * config/rs6000/rs6000-protos.h
1604         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
1605         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
1606         (rs6000_debug_mode_dependent_address)
1607         (rs6000_mode_dependent_address_ptr): Likewise.
1608
1609 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1610
1611         PR debug/43983
1612         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
1613         by SRA.
1614         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
1615         * tree-sra.c (create_access_replacement): Call unshare_expr before
1616         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
1617         * dwarf2out.c: Include tree-flow.h.
1618         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
1619         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1620         Handle DW_OP_bit_piece.
1621         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
1622         construct_piece_list, adjust_piece_list): New functions.
1623         (add_var_loc_to_decl): Handle SRA optimized variables.
1624         Adjust for var_loc_note to loc field renaming.
1625         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
1626         in VAR_LOCATION note.
1627         (new_loc_descr_op_bit_piece): New function.
1628         (dw_sra_loc_expr): New function.
1629         (dw_loc_list): Use it.  Don't handle the last range after the
1630         loop, handle it inside of the loop.  Adjust for var_loc_note
1631         to loc field renaming.
1632         (add_location_or_const_value_attribute): Only special case
1633         single entry loc lists if loc is NOTE_P.  Adjust for
1634         var_loc_note to loc field renaming.
1635         (dwarf2out_var_location): Don't set newloc->var_loc_note
1636         and newloc->next here.
1637
1638 2010-05-12  Jan Hubicka  <jh@suse.cz>
1639
1640         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
1641         flag.
1642         * cgraph.h (cgraph_only_called_directly_p,
1643         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
1644         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
1645         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
1646         (assemble
1647         * ipa.c (cgraph_remove_unreachable_nodes): Use
1648         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
1649         flags.
1650         * tree-inline.c (copy_bb): Check address_taken flag.
1651         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
1652         externally_visible flag.
1653
1654 2010-05-12  Jason Merrill  <jason@redhat.com>
1655
1656         PR bootstrap/44048
1657         PR target/44099
1658         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
1659         * sdbout.c (plain_type_1): Likewise.
1660         * dwarf2out.c (is_base_type): Likewise.
1661         (gen_type_die_with_usage): Likewise.  Generate
1662         DW_TAG_unspecified_type for any LANG_TYPE.
1663
1664 2010-05-12  Jan Hubicka  <jh@suse.cz>
1665
1666         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
1667         indrect edges too.
1668         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
1669         (cgraph_clone_edge): Update.
1670         (cgraph_node_remove_callees): Remove indirect calls too.
1671         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
1672         (cgraph_create_indirect_edge): Update prototype.
1673         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
1674         is_proper_for_analysis.
1675         (add_new_function, visited_nodes, function_insertion_hook_holder,
1676         get_local_reference_vars_info, mark_address_taken, mark_address,
1677         mark_load, mark_store, check_asm_memory_clobber, check_call,
1678         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
1679         (ipa_init): Do not initialize visited_nodes;
1680         function_insertion_hook_holder.
1681         (analyze_variable): Rewrite.
1682         (analyze_function): Rewrite.
1683         (copy_local_bitmap): Remove.
1684         (duplicate_node_dat): Do not duplicate local info.
1685         (generate_summary): Simplify to only walk cgraph.
1686         (write_node_summary_p, ipa_reference_write_summary,
1687         ipa_reference_read_summary): Remove.
1688         (propagate): Do not remove function insertion;
1689         generate summary.
1690         (pass_ipa_reference): NULLify summary handling fields.
1691         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
1692         (input_edge): Input ecf_flags.
1693         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
1694         (update_indirect_edges_after_inlining): Ignore edges with unknown
1695         param.
1696
1697 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
1698
1699         * implicit-zee.c: New file.
1700         * tree-pass.h (pass_implicit_zee): Declare.
1701         * passes.c (init_optimization_passes): Add zee pass.
1702         * common.opt (fzee): New flag.
1703         * timevar.def (TV_ZEE): Define.
1704         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
1705         and beyond.
1706         * Makefile.in (implicit-zee.o): Add new build file.
1707
1708 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1709             Nathan Froyd  <froydnj@codesourcery.com>
1710
1711         * c-common.c (sync_resolve_params): Remove write-only variable.
1712
1713 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
1714
1715         * target.h (struct gcc_target): Add mode_dependent_address_p field.
1716         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1717         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
1718         * targhooks.c (default_mode_dependent_address_p): New function.
1719         * targhooks.h (default_mode_dependent_address_p): Declare function.
1720         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1721         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
1722         * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
1723         target hook. Change return type to bool.
1724         * recog.h: (mode_dependent_address_p): Change return type to bool.
1725
1726 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1727             Nathan Froyd  <froydnj@codesourcery.com>
1728
1729         * tree-mudflap.c (build_function_type_0, build_function_type_1,
1730         build_function_type_2, build_function_type_3): Remove.
1731         (mudflap_init): Use build_function_type_list.
1732
1733 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1734             Nathan Froyd  <froydnj@codesourcery.com>
1735
1736         * coverage.c (build_fn_info_value): Call build_constructor instead of
1737         build_constructor_from_list.
1738         (build_ctr_info_value): Likewise.
1739         (build_gcov_info): Likewise.
1740
1741 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
1742
1743         * tree.c (build_constructor): Compute TREE_CONSTANT for the
1744         resultant constructor.
1745         (build_constructor_single): Don't set TREE_CONSTANT.
1746         (build_constructor_from_list): Don't compute TREE_CONSTANT.
1747
1748 2010-05-12  Jan Hubicka  <jh@suse.cz>
1749
1750         * cgraph.h (struct varpool_node): Add aux.
1751         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
1752         * varpool.c (varpool_remove_node): Do not remove initializer.
1753         (varpool_reset_queue): Export.
1754         (varpool_finalize_decl): Volatile vars are forced to be output.
1755         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
1756         replaced decl.
1757         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
1758         process_references, varpool_can_remove_if_no_refs): New functions.
1759         (cgraph_remove_unreachable_nodes): Handle variables too.
1760
1761 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1762
1763         PR target/44088
1764         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
1765
1766 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
1767
1768         PR middle-end/44085
1769         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
1770         change value of ORT_TASK.
1771         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
1772         (omp_notice_threadprivate_variable): New function.
1773         (omp_notice_variable): Call it for threadprivate variables.
1774         If enclosing ctx is a task, print enclosing task rather than
1775         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
1776         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
1777         if task has untied clause.
1778
1779         PR debug/42278
1780         * dwarf2out.c (base_type_die): Don't add name attribute here.
1781         (modified_type_die): Instead of sizetype use
1782         its underlying original type.  If a DW_TAG_base_type doesn't
1783         have name added, add __unknown__.
1784         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
1785         always call force_type_die instead.
1786
1787 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
1788
1789         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
1790         for __stack_chk_guard.
1791
1792 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1793
1794         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
1795         don't call start_source_file debug hook here...
1796         (finish_options): ... but here, after outputting predefined and
1797         command line defines and undefs.
1798
1799         PR middle-end/44071
1800         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
1801         no fallthru edge.
1802         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
1803         optimizing away empty bb with no successors, move over its
1804         footer chain to fallthru predecessor.
1805         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
1806         (rtl_split_edge): For asm goto call patch_jump_insn even if
1807         splitting fallthru edge.
1808
1809         PR c++/44059
1810         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
1811         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
1812         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
1813         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
1814         on DW.ref.* decls.
1815
1816         PR c++/44062
1817         * c-parser.c (c_parser_expression): Mark LHS of a comma
1818         expression as read if it is a decl, handled component or
1819         COMPOUND_EXPR with that on the RHS.
1820         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
1821         if it is a decl or handled component.
1822
1823 2010-05-11  Jan Hubicka  <jh@suse.cz>
1824
1825         * lto-symtab.c (lto_symtab_free): New function.
1826         * lto-streamer.h (lto_symtab_free): Declare.
1827
1828 2010-05-11  Jan Hubicka  <jh@suse.cz>
1829
1830         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
1831         that if function is needed it is reachable.
1832         (lto_output_node): See if it the function is reachable or referenced.
1833         (output_cgraph): Update call of lto_output_node.
1834         * lto-streamer.h (reachable_from_other_partition_p): Declare.
1835
1836 2010-05-11  Jan Hubicka  <jh@suse.cz>
1837
1838         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
1839         Mark as used.
1840
1841 2010-05-11  Jan Hubicka  <jh@suse.cz>
1842
1843         PR tree-optimize/44063
1844         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
1845         queue.
1846         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
1847         limits.
1848         (estimate_function_body_sizes): Compute sizes even when disregarding.
1849
1850 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
1851
1852         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
1853
1854 2010-05-11  Jan Hubicka  <jh@suse.cz>
1855
1856         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
1857         into every boundary.
1858
1859 2010-05-11  Jan Hubicka  <jh@suse.cz>
1860
1861         * matrix-reorg.c (matrix_reorg): Rebuild edges.
1862
1863 2010-05-11  Jan Hubicka  <jh@suse.cz>
1864
1865         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
1866         lto_streamer_cache_delete): Put nodes into heap.
1867         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
1868         heap.
1869
1870 2010-05-11  Jan Hubicka  <jh@suse.cz>
1871
1872         * cgraphbuild.c (cgraph_rebuild_references): New.
1873         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
1874         out extern inlines.
1875         * cgraph.h (cgraph_rebuild_references): Declare.
1876         * tree-inline.c (tree_function_versioning): Use it.
1877         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
1878
1879 2010-05-11  Jan Hubicka  <jh@suse.cz>
1880
1881         * cgraph.c: Include ipa-utils.h
1882         (cgraph_create_virtual_clone): Update references.
1883         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
1884
1885 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1886
1887         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
1888         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
1889         cache size.
1890
1891 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1892
1893         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
1894
1895 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1896
1897         * gcc.c (execute): For -### don't quote arguments that
1898         contain just alphanumerics and _/-. characters.
1899         * doc/invoke.texi: Document that change for -###.
1900
1901         PR debug/44023
1902         * df-problems.c (struct dead_debug): Add to_rescan field.
1903         (dead_debug_init): Clear to_rescan field.
1904         (dead_debug_finish): Rescan all debug insns in to_rescan
1905         bitmap and free the bitmap.
1906         (dead_debug_insert_before): Instead of rescanning debug insns
1907         immediately queue their rescanning until dead_debug_finish.
1908         (df_note_bb_compute): After dead_debug_add do continue instead
1909         of break.
1910
1911 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
1912
1913         PR debug/44028
1914         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
1915         clear also INSN_REG_USE_LIST.
1916
1917 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1918
1919         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
1920
1921 2010-05-10  Jan Hubicka  <jh@suse.cz>
1922
1923         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
1924         commited change.
1925
1926 2010-05-10  Jan Hubicka  <jh@suse.cz>
1927
1928         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
1929         Allocate encoders.
1930         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
1931         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
1932         (lto_streamer_cache_create): Init alloc pool.
1933         (lto_streamer_cache_delete): Free alloc pool.
1934         * lto-streamer.h: Include alloc pool.
1935         (lto_streamer_cache_d): Use alloc pool.
1936         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
1937
1938 2010-05-10  Jan Hubicka  <jh@suse.cz>
1939
1940         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
1941         * cgraphbuild.c: Include except.h
1942         (record_type_list, record_eh_tables): New function.
1943         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
1944
1945 2010-05-10  Jan Hubicka  <jh@suse.cz>
1946
1947         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
1948         __frame_dummy_init_array_entry, force_to_data): Attribute as used
1949         rather than unused.
1950
1951 2010-05-10  Michael Matz  <matz@suse.de>
1952
1953         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
1954         (can_reassociate_p): Use FLOAT_TYPE_P.
1955         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
1956         (vect_force_simple_reduction): ... this.
1957         * tree-parloops.c (gather_scalar_reductions): Use
1958         vect_force_simple_reduction.
1959         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
1960         vect_is_simple_reduction, add modify argument, if true rewrite
1961         "a-b" into "a+(-b)".
1962         (vect_is_simple_reduction, vect_force_simple_reduction): New
1963         functions.
1964         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
1965
1966 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1967             Vladimir Makarov  <vmakarov@redhat.com>
1968
1969         PR rtl-optimization/44012
1970         * ira-build.c (remove_unnecessary_allocnos): Nullify
1971         regno_allocno_map of the removed allocno.
1972
1973 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1974
1975         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
1976         to /dev/null.
1977         * configure: Regenerate.
1978
1979 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1980
1981         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
1982         unused.
1983         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
1984         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
1985         support in Sun ld.
1986         * configure: Regenerate.
1987
1988 2010-05-10  Richard Guenther  <rguenther@suse.de>
1989
1990         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
1991         marked if the entry identifier is marked.
1992
1993 2010-05-10  Richard Guenther  <rguenther@suse.de>
1994
1995         * c-common.c (struct c_common_attributes): Add fnspec attribute.
1996         (handle_fnspec_attribute): New function.
1997         * gimple.h (gimple_call_return_flags): Declare.
1998         (gimple_call_arg_flags): Likewise.
1999         * gimple.c (gimple_call_arg_flags): New function.
2000         (gimple_call_return_flags): Likewise.
2001         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2002         New argument flags.
2003         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2004         return value flags.
2005         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2006         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2007         main work to ...
2008         (make_heapvar_for): ... this new function.
2009         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2010         (handle_lhs_call): Likewise.
2011         (find_func_aliases): Adjust.
2012
2013 2010-05-10  Richard Guenther  <rguenther@suse.de>
2014
2015         PR tree-optimization/44050
2016         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2017
2018 2010-05-10  Wei Guozhi  <carrot@google.com>
2019
2020         PR target/42879
2021         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2022
2023 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2024
2025         PR c/10676
2026         * c-typeck.c (lookup_field): Take a type directly.  Update
2027         recursive calls.
2028         (build_component_ref): Update call to lookup_field.
2029         (set_init_label): Use lookup_field to find initialized field.
2030         Handle returned list of fields like a sequence of designators.
2031
2032 2010-05-09  Richard Guenther  <rguenther@suse.de>
2033
2034         PR middle-end/44024
2035         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2036         handle &FUNCTION_DECL.
2037
2038 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2039
2040         PR c/4784
2041         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2042         structures and unions recursively.
2043         (detect_field_duplicates): Move duplicate detection with a hash to
2044         detect_field_duplicates_hash.  Always use a hash if anonymous
2045         structures or unions are present.
2046         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2047         give errors.
2048
2049 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2050
2051         PR target/44046
2052         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2053         detect Atom, Core 2 and Core i7.
2054
2055 2010-05-09  Richard Guenther  <rguenther@suse.de>
2056
2057         * gcc.c (store_arg): Handle temporary file deletion for
2058         joined arguments.
2059
2060 2010-05-09  Richard Guenther  <rguenther@suse.de>
2061
2062         PR middle-end/44043
2063         * ipa-inline.c (estimate_function_body_sizes): Return after
2064         disregarding inline limits.
2065
2066 2010-05-09  Richard Guenther  <rguenther@suse.de>
2067
2068         * gcc.c (store_arg): Revert last change.
2069
2070 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2071
2072         PR middle-end/28685
2073         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2074         (optimize_ops_list): Call it.
2075
2076 2010-05-08  Richard Guenther  <rguenther@suse.de>
2077
2078         PR tree-optimization/44030
2079         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2080         NECESSARY flag if we propagate from a inserted expression.
2081
2082 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2083
2084         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2085         domain types as equal if they are both PLACEHOLDER_EXPRs.
2086
2087 2010-05-08  Richard Guenther  <rguenther@suse.de>
2088
2089         * lto-wrapper.c (run_gcc): Remove linker output from
2090         command line for LTRANS invocation.
2091
2092 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2093
2094         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2095         lto-macho as lto_binary_reader.
2096         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2097         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2098         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2099         in lto_start and lto_end calls.
2100         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2101         magic numbers.
2102         (scan_prog_file): Update is_elf_or_coff call.
2103         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2104
2105         * collect2.c (main): Fix enum comparison.
2106
2107         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2108         Add prototypes.
2109         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2110         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2111         and TARGET_ASM_LTO_END.
2112         * darwin.c: Include obstack.h and lto-streamer.h.
2113         (lto_section_names_offset, lto_section_names_obstack,
2114         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2115         global variables.
2116         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2117         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2118         to a temporary file.
2119         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2120         (darwin_asm_named_section): For LTO sections, replace the name with
2121         the offset of the section name in a string table, and build this
2122         table.
2123         (darwin_file_start): Initialize global vars for LTO support.
2124         (darwin_file_end): If output to asm_out_file was redirected, append it
2125         to the proper asm_out_file here.  Add the section names section.
2126
2127 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2128
2129         * c-pragma.c (pending_weak_d, pending_weak): New.
2130         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2131         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2132         handle_pragma_weak): Update the uses of pending_weaks.
2133
2134 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2135
2136         PR documentation/44016
2137         * doc/standards.texi (Standards): Link to unversioned
2138         cxx0x_status.html page.
2139
2140 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2141
2142         PR target/43708
2143         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2144         in addition to TREE_USED, to avoid "set but unused" warnings.
2145
2146 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2147
2148         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2149         (is_loop_prefetching_profitable): Do not insert prefetches
2150         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2151         times the prefetch ahead distance.
2152
2153 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2154
2155         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2156         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2157         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2158         the unroll_factor.
2159
2160 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2161
2162         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2163         a diagnostic info when the insn-to-mem ratio is too small.
2164
2165 2010-05-07  Richard Guenther <rguenther@suse.de>
2166
2167         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2168         the linker plugin.
2169         (store_arg): Queue temp_filename for deletion instead of
2170         the whole argument.
2171
2172 2010-05-07  Richard Guenther  <rguenther@suse.de>
2173
2174         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2175         (run_gcc): Handle LTRANS phase invocation.
2176         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2177
2178 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2179
2180         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2181         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2182
2183 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2184
2185         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2186
2187 2010-05-07  Richard Guenther  <rguenther@suse.de>
2188
2189         PR tree-optimization/44020
2190         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2191         code when PRE is not yet initialized.
2192
2193 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2194
2195         * config/mips/dbxmdebug.h: Remove.
2196         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2197
2198 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2199
2200         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2201         with null pointer and also warn about ordered comparison of zero with
2202         pointer if -Wextra.
2203
2204 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2205
2206         * graphite-blocking.c
2207         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2208         * graphite-clast-to-gimple.c
2209         (clast_to_gcc_expression): Same.
2210         (precision_for_value): Same.
2211         (precision_for_interval): Same.
2212         (gcc_type_for_interval): Same.
2213         (graphite_create_new_guard): Same.
2214         (compute_bounds_for_level): Same.
2215         (graphite_create_new_loop_guard): Same.
2216         * graphite-interchange.c
2217         (build_linearized_memory_access): Same.
2218         (pdr_stride_in_loop): Same.
2219         (memory_strides_in_loop_1): Same.
2220         (memory_strides_in_loop): Same.
2221         (extend_scattering): Same.
2222         (psct_scattering_dim_for_loop_depth): Same.
2223         (pbb_number_of_iterations): Same.
2224         * graphite-poly.h
2225         (debug_iteration_domains): Same.
2226         * graphite-ppl.c
2227         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2228         (ppl_set_inhomogeneous_gmp): Same.
2229         (ppl_strip_loop): Same.
2230         (ppl_lexico_compare_linear_expressions): Same.
2231         (ppl_read_polyhedron_matrix): Same.
2232         (ppl_max_for_le_pointset): Same.
2233         * graphite-ppl.h
2234         (ppl_read_polyhedron_matrix): Same.
2235         (tree_int_to_gmp): Same.
2236         (gmp_cst_to_tree): Same.
2237         (ppl_set_inhomogeneous): Same.
2238         (ppl_set_inhomogeneous_tree): Same.
2239         (ppl_set_coef): Same.
2240         (ppl_set_coef_tree): Same.
2241         * graphite-sese-to-poly.c
2242         (build_pbb_scattering_polyhedrons): Same.
2243         (build_scop_scattering): Same.
2244         (scan_tree_for_params_right_scev): Same.
2245         (scan_tree_for_params): Same.
2246         (find_params_in_bb): Same.
2247         (find_scop_parameters): Same.
2248         (add_upper_bounds_from_estimated_nit): Same.
2249         (build_loop_iteration_domains): Same.
2250         (add_condition_to_domain): Same.
2251         (pdr_add_memory_accesses): Same.
2252
2253 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2254
2255         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2256         CLooG's value_* macros to their respective mpz_* counterparts.
2257         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2258         (graphite_create_new_loop_guard): Same.
2259         * graphite-interchange.c (build_linearized_memory_access): Same.
2260         (pdr_stride_in_loop): Same.
2261         (memory_strides_in_loop_1): Same.
2262         (1st_interchange_profitable_p): Same.
2263         * graphite-poly.c (extend_scattering): Same.
2264         (psct_scattering_dim_for_loop_depth): Same.
2265         (pbb_number_of_iterations): Same.
2266         (pbb_number_of_iterations_at_time): Same.
2267         * graphite-poly.h (new_1st_loop): Same.
2268         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2269         (oppose_constraint): Same.
2270         (insert_constraint_into_matrix): Same.
2271         (ppl_set_inhomogeneous_gmp): Same.
2272         (ppl_set_coef_gmp): Same.
2273         (ppl_strip_loop): Same.
2274         (ppl_lexico_compare_linear_expressions): Same.
2275         (ppl_max_for_le_pointset): Same.
2276         (ppl_min_for_le_pointset): Same.
2277         (ppl_build_realtion): Same.
2278         * graphite-ppl.h (gmp_cst_to_tree): Same.
2279         (ppl_set_inhomogeneous): Same.
2280         (ppl_set_inhomogeneous_tree): Same.
2281         (ppl_set_coef): Same.
2282         (ppl_set_coef_tree): Same.
2283         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2284         (build_scop_scattering): Same.
2285         (add_value_to_dim): Same.
2286         (scan_tree_for_params_right_scev): Same.
2287         (scan_tree_for_params_int): Same.
2288         (scan_tree_for_params): Same.
2289         (find_params_in_bb): Same.
2290         (find_scop_parameters): Same.
2291         (add_upper_bounds_from_estimated_nit): Same.
2292         (build_loop_iteration_domains): Same.
2293         (create_linear_expr_from_tree): Same.
2294         (add_condition_to_domain): Same.
2295         (pdr_add_memory_accesses): Same.
2296
2297 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2298             Jason Merrill  <jason@redhat.com>
2299
2300         * c-common.c (c_common_reswords): Add nullptr.
2301         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
2302         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2303         (gen_type_die_with_usage): Likewise.
2304         * dbxout.c (dbxout_type): Likewise.
2305         * sdbout.c (plain_type_1): Likewise.
2306
2307 2010-05-06  Jason Merrill  <jason@redhat.com>
2308
2309         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2310         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
2311         ret appropriately.
2312         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2313
2314         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
2315         stripping WITH_SIZE_EXPR.
2316         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
2317         change.
2318
2319 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2320
2321         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
2322         list of obsolete configurations.
2323         Disabled check for obsolete configurations.
2324         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
2325         Removed support for previous versions.
2326         * config/mips/iris.h: Removed.
2327         * config/mips/iris5.h: Removed.
2328         * config/mips/iris6.h: Merged old iris.h contents.
2329         (TARGET_IRIX): Removed.
2330         (DRIVER_SELF_SPECS): Removed mabi=32.
2331         (IDENT_ASM_OP): Removed undef.
2332         (STARTFILE_SPEC): Removed mabi=32.
2333         (ENDFILE_SPEC): Likewise.
2334         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
2335         (MACHINE_TYPE): Update for IRIX 6.5.
2336         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
2337         TARGET_IRIX by TARGET_IRIX6.
2338         (mips_file_start): Likewise.
2339         (mips_output_external): Remove IRIX 5/6 O32 support.
2340         (mips_output_function_prologue): Likewise.
2341         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
2342         TARGET_IRIX6.
2343         (TARGET_CPU_CPP_BUILTINS): Likewise.
2344         (TARGET_IRIX): Removed.
2345         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
2346         (MULTILIB_DIRNAMES): Removed 32.
2347         (MULTILIB_OSDIRNAMES): Removed ../lib.
2348         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
2349         (Specific, mips-sgi-irix5): Document removal.
2350         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
2351         Remove references to older IRIX 6 releases and the O32 ABI.
2352
2353 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
2354
2355         PR bootstrap/43994
2356         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
2357         instead of DF_REF_REAL_REG.
2358
2359 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2360
2361         PR target/43888
2362         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
2363         handling to still return true for x64 targets.
2364
2365 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2366
2367         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
2368
2369 2010-05-06  Jan Hubicka  <jh@suse.cz>
2370
2371         PR tree-optimization/43791
2372         * ipa-inline.c (update_caller_keys): Remove bogus
2373         disregard_inline_limits check.
2374
2375 2010-05-06  Michael Matz  <matz@suse.de>
2376
2377         PR tree-optimization/43984
2378         * tree-ssa-pre.c (inserted_phi_names): Remove.
2379         (inserted_exprs): Change to bitmap.
2380         (create_expression_by_pieces): Set bits, don't append to vector.
2381         (insert_into_preds_of_block): Don't handle inserted_phi_names.
2382         (eliminate): Don't look at inserted_phi_names, remove deleted
2383         insns from inserted_exprs.
2384         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
2385         (init_pre, fini_pre): Allocate and free bitmaps.
2386         (execute_pre): Insert insns on edges before elimination.
2387
2388 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2389
2390         * tree.c (initializer_zerop): Handle STRING_CST.
2391
2392 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2393
2394         PR 40989
2395         * doc/invoke.texi (Wimplicit): Document as C only.
2396         * opts.c (common_handle_option): Add argument kind.
2397         (handle_option): Rename as read_cmdline_option. Factor out code to...
2398         (handle_option): ... here. New.
2399         (handle_options): Rename as read_cmdline_options.
2400         (decode_options): Update call.
2401         (set_option): Use option index instead of option pointer. Classify
2402         diagnostics correctly.
2403         (enable_warning_as_error): Call handle_option.
2404         * opts.h (set_option): Update declaration.
2405         (handle_option): Declare.
2406         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
2407         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
2408         * c-opts.c (set_Wimplicit): Delete.
2409         (c_family_lang_mask): New static constant.
2410         (c_common_handle_option): Add argument kind. Use handle_option
2411         instead of set_Wimplicit.
2412         (c_common_post_options): warn_implicit and warn_implicit_int
2413         are disabled by default.
2414         * c-common.c (warn_implicit): Do not define here.
2415         * c-common.h (warn_implicit): Do not declare here.
2416         (c_common_handle_option): Update declaration.
2417         * lto-opts.c (lto_reissue_options): Update call to set_option.
2418
2419 2010-05-06  Richard Guenther  <rguenther@suse.de>
2420
2421         PR tree-optimization/43571
2422         * domwalk.c (walk_dominator_tree): Walk the dominator
2423         sons in more optimal order.
2424
2425 2010-05-06  Richard Guenther  <rguenther@suse.de>
2426
2427         PR tree-optimization/43934
2428         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
2429         (stmt_cost): Likewise.
2430         (extract_true_false_args_from_phi): New helper.
2431         (determine_max_movement): For PHI nodes verify we can hoist them
2432         and compute their cost.
2433         (determine_invariantness_stmt): Handle PHI nodes.
2434         (move_computations_stmt): Likewise.  Hoist PHI nodes in
2435         if-converted form using COND_EXPRs.
2436         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
2437         (tree_ssa_lim): Likewise.
2438         * tree-flow.h (tree_ssa_lim): Adjust prototype.
2439         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
2440
2441 2010-05-06  Richard Guenther  <rguenther@suse.de>
2442
2443         PR tree-optimization/43987
2444         * tree-ssa-structalias.c (could_have_pointers): For possibly
2445         address-taken variables force pointers to be recorded.
2446         (create_variable_info_for_1): Likewise.
2447         (push_fields_onto_fieldstack): Pass in wheter all fields
2448         must have pointers.
2449         (find_func_aliases): Query types instead of vars whether
2450         they contain pointers where appropriate.
2451
2452 2010-05-06  Jan Hubicka  <jh@suse.cz>
2453
2454         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
2455         (record_reference, mark_address, mark_load, mark_store): Record
2456         references.
2457         (record_references_in_initializer): Update call of record_references.
2458         (rebuild_cgraph_edges): Remove all references before rebuiding.
2459         * cgraph.c (cgraph_create_node): Clear ref list.
2460         (cgraph_remove_node): Remove references.
2461         (dump_cgraph_node): Dump references.
2462         (cgraph_clone_node): Clone references.
2463         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
2464         (struct cgraph_node, varpool_node): Add ref_lst.
2465         * ipa-ref.c: New file.
2466         * ipa-ref.h: New file.
2467         * ipa-ref-inline.h: New file.
2468         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
2469         (referenced_from_other_partition_p): New function.
2470         (lto_output_varpool_node): Take set arugment; call
2471         referenced_from_other_partition.
2472         (lto_output_ref): New.
2473         (add_references): New.
2474         (output_refs): New.
2475         (output_cgraph): Compute boundary based on references; output refs.
2476         (output_varpool): Accept cgraph_node_set argument.
2477         (input_ref): New.
2478         (input_refs): New.
2479         (input_cgraph): Call input_refs.
2480         * lto-section-in.c (lto_section_name): Add refs.
2481         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
2482         (ipa-ref.o): New file.
2483         * varpool.c (varpool_node): Clear ipa ref list.
2484         (varpool_remove_node): Remove references.
2485         (dump_varpool_node): Dump references.
2486         (varpool_assemble_decl): Only compile finalized ones.
2487         (varpool_extra_name_alias): Initialize ref list.
2488         * lto-streamer.c (lto-get_section_name): Add .refs section.
2489         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
2490         (referenced_from_other_partition_p): Declared.
2491
2492 2010-05-06  Ira Rosen  <irar@il.ibm.com>
2493
2494         PR tree-optimization/43901
2495         * tree-vect-stmts.c (vectorizable_call): Assert that vector
2496         type is not NULL if it's transformation phase, and return
2497         FALSE if it's analysis.
2498         (vectorizable_conversion, vectorizable_operation,
2499         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
2500
2501 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
2502
2503         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2504         Delete.
2505         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2506         New define.
2507         * config/mips/mips-protos.h
2508         (mips_small_register_classes_for_mode_p): Delete prototype.
2509
2510 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
2511
2512         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
2513         * config/arm/arm.c (multiple_operation_profitable_p,
2514         compute_offset_order): New static functions.
2515         (load_multiple_sequence, store_multiple_sequence): Use them.
2516         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
2517         memory offsets, not register numbers.
2518         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
2519
2520 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
2521
2522         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
2523         (get_pending_sizes, put_pending_size, put_pending_sizes):
2524         Update the uses of pending_sizes.
2525         * c-decl.c (store_parm_decls): Likewise.
2526         * c-tree.h (struct c_arg_info): Likewise.
2527         * tree.h: Update the prototype for get_pending_sizes and
2528         put_pending_sizes.
2529
2530 2010-05-05  Jason Merrill  <jason@redhat.com>
2531
2532         PR debug/43370
2533         * c-common.c (handle_aligned_attribute): Respect
2534         ATTR_FLAG_TYPE_IN_PLACE.
2535
2536         PR testsuite/43758
2537         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
2538         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2539         (TARGET_INITIALIZER): Use it.
2540         * c-common.c (attribute_takes_identifier_p): Call it.
2541         * c-common.h: Update prototype.
2542         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
2543         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2544
2545 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2546
2547         PR debug/43950
2548         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
2549         DW_ID_down_case for Fortran compilation units.
2550
2551 2010-05-05  Jan Hubicka  <jh@suse.cz>
2552
2553         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
2554         handle aliases.
2555
2556 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2557
2558         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
2559         a variable-sized RESULT_DECL.
2560
2561 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
2562
2563         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
2564
2565 2010-05-05  Jason Merrill  <jason@redhat.com>
2566
2567         PR c++/43787
2568         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
2569         returns GS_OK.
2570         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
2571
2572 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
2573             Jakub Jelinek  <jakub@redhat.com>
2574
2575         PR debug/43478
2576         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
2577         (dead_debug_init, dead_debug_finish): New functions.
2578         (dead_debug_add, dead_debug_insert_before): Likewise.
2579         (df_note_bb_compute): Initialize a dead_debug object, add dead
2580         debug uses to it, insert debug bind insns before death insns,
2581         reset debug insns that refer to pending uses at the end.
2582         * rtl.h (make_debug_expr_from_rtl): New prototype.
2583         * varasm.c (make_debug_expr_from_rtl): New function.
2584
2585 2010-05-05  Jan Hubicka  <jh@suse.cz>
2586
2587         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
2588         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
2589         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
2590         lto_varpool_encoder_deref, lto_varpool_encoder_size,
2591         lto_varpool_encoder_encode_initializer_p,
2592         lto_set_varpool_encoder_encode_initializer): New functions.
2593         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
2594         call output_varpool.
2595         (input_varpool_node): Do not always set analyzed.
2596         (input_cgraph_1): Return vector of cgraph nodes.
2597         (input_varpool_1): Return vector of varpools.
2598         (input_cgraph): Free the vectors.
2599         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2600         output only initializers needed.
2601         (lto_output): Only call output_cgraph.
2602         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
2603         * lto-section-out.c (lto_new_out_decl_state): Initialize
2604         state->varpool_node_encoder.
2605         * lto-streamer.h (lto_varpool_encoder_d): New.
2606         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2607         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
2608         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
2609         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
2610         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
2611         Declare.
2612         (output_varpool, input_varpool): Remove declarations.
2613
2614 2010-05-05  Jan Hubicka  <jh@suse.cz>
2615
2616         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
2617         with body can prevail.
2618
2619 2010-05-05  Jan Hubicka  <jh@suse.cz>
2620
2621         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
2622         size.
2623
2624 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2625
2626         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
2627
2628         * gengtype.h (erro_at_line): Constify pos argument.
2629
2630         * gengtype.c: Include hashtab.h.
2631         (enum gc_used): Document GC_MAYBE_POINTED_TO.
2632         (error_at_line): Constify pos argument.
2633         (do_typedef): Initialize p->opt field.
2634         (get_file_gtfilename): Fix comment typo.
2635         (struct walk_type_data): Constify line field.
2636         (get_output_file_for_structure): New function.
2637         (write_local_func_for_structure): Constify orig_s argument.
2638         Use get_output_file_for_structure.
2639         (write_func_for_structure): Use get_output_file_for_structure.
2640         (INDENT): New define.
2641         (dump_pair, dump_type, dump_type_list, dump_typekind)
2642         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
2643         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
2644         functions.
2645         (seen_types): New variable.
2646         (main): New variable do_dump.  Process "-d" command line option.
2647         Call dump_everything if dump requested.
2648
2649 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2650
2651         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
2652         in a temporary instead of invoking the macro multiple times.
2653         (track_expr_p): Likewise.
2654
2655 2010-05-04  Neil Vachharajani <nvachhar@google.com>
2656
2657         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
2658         per new semantics.
2659         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
2660         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
2661         conditions for printing notes.
2662         * common.opt (-Wcoverage-mismatch): Allow negative, default to
2663         true, update documentation.
2664         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
2665
2666 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
2667
2668         PR c/43981
2669         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
2670         on dimen.
2671
2672 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2673
2674         PR target/43799
2675         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
2676         (*sse_prologue_save_insn1): Likewise.
2677         (SSE prologue save splitter): Likewise.
2678
2679 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2680
2681         * tree.c (free_lang_data_in_one_sizepos): New inline function.
2682         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
2683         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
2684         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
2685         all decls.  Call it on DECL_FIELD_OFFSET of fields.
2686         (find_decls_types_r): Follow DECL_VALUE_EXPR.
2687         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
2688
2689 2010-05-04  Martin Jambor  <mjambor@suse.cz>
2690
2691         * tree-sra.c (build_access_from_expr_1): The first parameter type
2692         changed to simple tree.
2693         (build_access_from_expr): Likewise, gsi parameter was eliminated.
2694         (scan_assign_result): Renamed to assignment_mod_result, enum elements
2695         renamed as well.
2696         (build_accesses_from_assign): Removed all parameters except for a
2697         simple gimple statement.  Now returns a simple bool.
2698         (scan_function): All non-analysis parts moved to separate functions
2699         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
2700         parameters and updated both callers.
2701         (sra_modify_expr): Removed parameter data.
2702         (sra_modify_function_body): New function.
2703         (perform_intra_sra): Call sra_modify_function_body to modify the
2704         function body.
2705         (replace_removed_params_ssa_names): Parameter data changed into
2706         adjustments vector.
2707         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
2708         changed the parameter dont_convert to convert with the opposite
2709         meaning.
2710         (sra_ipa_modify_assign): Parameter data changed into adjustments
2711         vector, return value changed to bool.
2712         (ipa_sra_modify_function_body): New function.
2713         (sra_ipa_reset_debug_stmts): Updated a comment.
2714         (modify_function): Use ipa_sra_modify_function_body to modify function
2715         body.
2716
2717 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2718
2719         PR middle-end/43671
2720         * alias.c (true_dependence): Handle the same VALUE in x and mem.
2721         (canon_true_dependence): Likewise.
2722         (write_dependence_p): Likewise.
2723
2724 2010-05-04  Jan Hubicka  <jh@suse.cz>
2725
2726         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
2727         * cgraphbuild.c: Include ipa-utils.h
2728         (record_reference_ctx): New struct.
2729         (record_reference): Simplify to work on initializers; not statements.
2730         (mark_address, mark_load, mark_store): New.
2731         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2732         walk PHI nodes too.
2733         (record_references_in_initializer): Update use of record_reference.
2734         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2735         walk PHI nodes too.
2736
2737 2010-05-04  Jan Hubicka  <jh@suse.cz>
2738
2739         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
2740         node will be removed anyway.
2741         (lto_varpool_replace_node): Allow also unanalyzed nodes;
2742         relink aliases of node into prevailing node.
2743         * varpool.c (varpool_remove_node): Remove aliases properly;
2744         when removing node, remove all its aliases too; remove DECL_INITIAL
2745         of removed node; ggc_free the varpool node.
2746
2747 2010-05-04  Richard Guenther  <rguenther@suse.de>
2748
2749         PR tree-optimization/43879
2750         * tree-ssa-structalias.c (alias_get_name): Use
2751         DECL_ASSEMBLER_NAME if available.
2752         (create_function_info_for): Return the varinfo node.
2753         (ipa_pta_execute): Associate same-body aliases and extra names
2754         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
2755
2756 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2757
2758         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
2759
2760 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
2761
2762         PR bootstrap/43964
2763         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
2764         only if HONOR_REG_ALLOC_ORDER is not defined.
2765
2766 2010-05-04  Richard Guenther  <rguenther@suse.de>
2767
2768         PR tree-optimization/43949
2769         * tree-vrp.c (extract_range_from_binary_expr): Only handle
2770         TRUNC_MOD_EXPR.
2771
2772 2010-04-26  Jason Merrill  <jason@redhat.com>
2773
2774         * c.opt (-fstrict-enums): New.
2775         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
2776
2777 2010-05-03  David Ung <davidu@mips.com>
2778             James E. Wilson  <wilson@codesourcery.com>
2779
2780         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
2781         emit the trap instruction before the divide for TUNE_74K.
2782
2783 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
2784
2785         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
2786         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
2787         based on the above, for new target hook.
2788
2789         * hooks.c (hook_bool_mode_true): New generic hook.
2790         * hooks.h (hook_bool_mode_true): Add prototype.
2791
2792         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
2793         target hook.
2794         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
2795         target hook, set to hook_bool_mode_false.
2796         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
2797         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
2798         with targetm.small_register_classes_for_mode_p.
2799         (find_reusable_reload): Likewise.
2800         (combine_reloads): Likewise.
2801         * reload1.c (reload_as_needed): Likewise.
2802         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
2803         * ifcvt.c (noce_process_if_block, check_cond_move_block,
2804         dead_or_predicable): Likewise.
2805         * regmove.c (optimize_reg_copy_1): Likewise.
2806         * calls.c (prepare_call_address): Likewise.
2807         (precompute_register_parameters): Likewise.
2808
2809         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
2810         hook definition.
2811         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
2812         implementation of the hook that considers all register classes
2813         small except for SH64.
2814         (sh_override_options): Use the new hook.
2815         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
2816         Add prototype.
2817
2818         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
2819         hook definition.
2820         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
2821         implementation of the hook that considers all register classes
2822         small for THUMB1.
2823         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
2824         Add prototype.
2825
2826         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
2827         hook definition.
2828         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
2829         implementation of the hook that considers all register classes
2830         small for MIPS16.
2831         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
2832         Add prototype.
2833
2834         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
2835         hook definition.
2836         * config/m32c/m32c.h: Likewise.
2837         * config/pdp11/pdp11.h: Likewise.
2838         * config/avr/avr.h: Likewise.
2839         * config/xtensa/xtensa.h: Likewise.
2840         * config/m68hc11/m68hc11.h: Likewise.
2841         * config/mn10300/mn10300.h: Likewise.
2842         * config/mcore/mcore.h: Likewise.
2843         * config/h8300/h8300.h: Likewise.
2844         * config/bfin/bfin.h: Likewise.
2845
2846         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
2847         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
2848
2849 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
2850
2851         * double-int.h (tree_to_double_int): Remove macro.
2852         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
2853         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2854         (tree_to_double_int): New function.
2855         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
2856         Move ...
2857         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2858
2859 2010-05-03  Richard Guenther  <rguenther@suse.de>
2860
2861         PR tree-optimization/43971
2862         * tree-ssa-structalias.c (get_constraint_for_1): Fix
2863         constraints in the !flag_delete_null_pointer_checks case.
2864
2865 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
2866
2867         PR debug/43972
2868         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
2869         result mode matches original rtl mode.
2870
2871 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2872
2873         PR target/43888
2874         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
2875
2876 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2877
2878         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
2879         when processing flag options.
2880
2881 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2882
2883         * gcov-iov.c (main): Change format string placeholder
2884         from %#08x to 0x%08x.
2885         * genchecksum.c (dosum): Change format string placeholder
2886         from %#02x to 0x%02x.
2887
2888 2010-05-02  Richard Guenther  <rguenther@suse.de>
2889
2890         PR tree-optimization/43879
2891         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
2892
2893 2010-05-02  Bruno Haible  <bruno@clisp.org>
2894
2895         * doc/extend.texi (Function Attributes): Fix a typo.
2896
2897 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2898
2899         Revert:
2900         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
2901         placeholder from 0x%x to %#x.
2902         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2903         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
2904         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
2905         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
2906         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
2907         * config/i386/i386.c (ix86_target_string): Ditto.
2908         * config/i386/i386.c (output_pic_addr_const): Ditto.
2909         (print_operand): Ditto.
2910
2911 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2912
2913         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
2914         placeholder from 0x%x to %#x.
2915         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
2916         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
2917         (ASM_OUTPUT_DEBUG_DATA): Ditto.
2918         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
2919         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
2920         * optc-gen.awk: Ditto.
2921         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
2922         (HOST_WIDE_INT_PRINT_HEX): Ditto.
2923         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
2924         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2925
2926 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2927
2928         * target.h (struct calls): Add function_value_regno_p field.
2929         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2930         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
2931         * targhooks.c (default_function_value_regno_p): New function.
2932         * targhooks.h (default_function_value_regno_p): Declare function.
2933         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
2934         * builtins.c. (apply_result_size): (Ditto.).
2935         * combine.c. (likely_spilled_retval_p): (Ditto.).
2936         * mode-switching.c. Include 'target.h'.
2937         (create_pre_exit): Use function_value_regno_p hook.
2938         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
2939         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
2940         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
2941
2942         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
2943         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
2944         (ix86_function_value_regno_p): Declare as static, change argument
2945         type to const unsigned int.
2946         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
2947
2948 2010-05-01  Richard Guenther  <rguenther@suse.de>
2949
2950         PR tree-optimization/43949
2951         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
2952         types.
2953         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
2954
2955 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2956
2957         * rtl.h (CONST_DOUBLE_P): Define.
2958         (rtx_to_double_int): Declare.
2959         * emit-rtl.c (rtx_to_double_int): New function.
2960         * dwarf2out.c (insert_double): New function.
2961         (loc_descriptor, add_const_value_attribute): Clean up, use
2962         rtx_to_double_int and insert_double functions.
2963
2964 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
2965
2966         * doc/extend.texi (Inline): Add missing return keyword to examples.
2967         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
2968         "command-line".
2969
2970 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2971
2972         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
2973         the variable part of the offset as well.  Use highest_pow2_factor for
2974         all alignment checks.
2975
2976 2010-04-30  Richard Guenther  <rguenther@suse.de>
2977
2978         PR tree-optimization/43879
2979         * tree-ssa-structalias.c (type_could_have_pointers): Functions
2980         can have pointers.
2981
2982 2010-04-30  Jan Hubicka  <jh@suse.cz>
2983
2984         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
2985         varpool.
2986         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
2987
2988 2010-04-30  Jan Hubicka  <jh@suse.cz>
2989
2990         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
2991         New.
2992         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
2993         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
2994         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
2995         cgraph_node_set_needs_ltrans_p): Remove.
2996
2997 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2998
2999         * sdbout.c: Include vec.h, do not include varray.h.
3000         (deferred_global_decls, sdbout_global_decl,
3001         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3002         * toplev.c: Do not include varray.h.
3003         (dump_memory_report): Do not dump VARRAY statistics.
3004         * gengtype.c (open_base_file): Ignore varray.h.
3005         * Makefile.in: Update for abovementioned changes.
3006         Remove all traces of varray.c and varray.h.
3007         * varray.c: Remove file.
3008         * varray.h: Remove file.
3009
3010 2010-04-30  Jan Hubicka  <jh@suse.cz>
3011
3012         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3013         references.
3014
3015 2010-04-30  Jan Hubicka  <jh@suse.cz>
3016
3017         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3018         needed.
3019
3020 2010-04-30  Richard Guenther  <rguenther@suse.de>
3021
3022         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3023         constraints for CONSTRUCTOR.
3024
3025 2010-04-30  Richard Guenther  <rguenther@suse.de>
3026
3027         PR lto/43946
3028         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3029         first after all lowering passes.
3030
3031 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3032
3033         * toplev.c: Include varray.h for statistics dumping.
3034         * tree.h: Do not declare varray_head_tag.
3035         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3036         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3037         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3038         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3039         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3040         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3041         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3042         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3043         include varray.h.
3044         * Makefile.in: Update for abovementioned changes.
3045
3046 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3047
3048         PR debug/43942
3049         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3050
3051 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3052
3053         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3054         Use this function to do machine-specific conversion.
3055         (picochip_legitimize_reload_address): Likewise.
3056         (picochip_legitimate_address_p): Check valid base register only if
3057         strict.
3058         (picochip_check_conditional_copy): Check for modw only if opnd is
3059         register.
3060         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3061         to call the function in c.
3062         * config/picochip/picochip-protos.h
3063         (picochip_legitimize_reload_address): Define.
3064         * config/picochip/picochip.md (supported_compare1): Define.
3065
3066 2010-04-30  Jan Hubicka  <jh@suse.cz>
3067
3068         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3069         (cgraph_global_info): Remove inlined.
3070         (LTO_cgraph_tag_names): Remove.
3071         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3072         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3073         simplify cgraph tags and document.
3074         (lto_output_node): Use only LTO_cgraph_unavail_node and
3075         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3076         for_functions_valid, global info, process and output flags.
3077         (input_overwrite_node): Initialize estimated stack size and
3078         estimated growth.  Do not read flags we no longer store.
3079         (input_node): Likewise do not read info no longer stored.
3080         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3081         flag.
3082
3083 2010-04-30  Richard Guenther  <rguenther@suse.de>
3084
3085         PR tree-optimization/43879
3086         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3087         handle non-zero initializers.
3088
3089 2010-04-30  Richard Guenther  <rguenther@suse.de>
3090
3091         * builtins.c (fold_builtin_1): Delete free (0).
3092
3093 2010-04-29  Jan Hubicka  <jh@suse.cz>
3094
3095         * gengtype.c (open_base_files): Add lto-streamer.h
3096         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3097         (pass_ipa_cp): GGC collect.
3098         * toplev. (compile_file): Do not output symbols.
3099         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3100         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3101         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3102         * lto-section-in.c: Include ggc.h
3103         (lto_new_in_decl_state): Alloc in GGC.
3104         (lto_delete_in_decl_state): Likewise.
3105         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3106         Collect.
3107
3108 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3109
3110         PR target/42895
3111         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3112         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3113         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3114         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3115         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3116         account only if HONOR_REG_ALLOC_ORDER is not defined.
3117         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3118         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3119
3120 2010-04-29  Jon Grant  <04@jguk.org>
3121
3122         * collect2.c (vflag): Change type from int to bool.
3123         (debug): Likewise.
3124         (helpflag): New global bool.
3125         (main): Set vflag and debug with boolean, not integer truth values.
3126         Accept new "--help" option and output usage text if found.
3127         * collect2.h (vflag): Update prototype.
3128         (debug): Likewise.
3129
3130 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3131
3132         PR bootstrap/43936
3133         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3134
3135 2010-04-29  Richard Guenther  <rguenther@suse.de>
3136
3137         PR bootstrap/43935
3138         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3139         with ATTRIBUTE_UNUSED.
3140
3141 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3142
3143         PR target/43921
3144         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3145         INSN_P with NONDEBUG_INSN_P.
3146         (distance_non_agu_define): Likewise.
3147         (distance_agu_use): Likewise.
3148
3149 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3150
3151         From Dominique d'Humieres <dominiq@lps.ens.fr>
3152         PR bootstrap/43858
3153         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3154         test_set.
3155
3156 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3157
3158         * plugin.h (invoke_plugin_callbacks): New inline function.
3159         * plugin.c (flag_plugin_added): New global flag.
3160         (add_new_plugin): Initialize above flag.
3161         (invoke_plugin_callbacks): Rename to ...
3162         (invoke_plugin_callbacks_full): ... this.
3163
3164 2010-04-28  Jan Hubicka  <jh@suse.cz>
3165
3166         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3167         (lto_varpool_replace_node): New.
3168         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3169         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3170         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3171         * cgraph.h (varpool_node_ptr): New type.
3172         (varpool_node_ptr): New vector.
3173         (varpool_node_set_def): New structure.
3174         (varpool_node_set): New type.
3175         (varpool_node_set): New vector.
3176         (varpool_node_set_element_def): New structure.
3177         (varpool_node_set_element, const_varpool_node_set_element): New types.
3178         (varpool_node_set_iterator): New type.
3179         (varpool_node): Add prev pointers, add used_from_other_partition,
3180         in_other_partition.
3181         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3182         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3183         varpool_get_node, varpool_remove_node): Declare.
3184         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3185         varpool_node_set_size): New inlines.
3186         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3187         * tree-pass.h (varpool_node_set_def): Forward declare.
3188         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3189         (ipa_write_optimization_summaries): Update prototype.
3190         * ipa-cp.c (ipcp_write_summary): Update.
3191         * ipa-reference.c (ipa_reference_write_summary): Update.
3192         * lto-cgraph.c (lto_output_varpool_node): New static function.
3193         (output_varpool): New function.
3194         (input_varpool_node): New static function.
3195         (input_varpool_1): New function.
3196         (input_cgraph): Input varpool.
3197         * ipa-pure-const.c (pure_const_write_summary): Update.
3198         * lto-streamer-out.c (lto_output): Update, output varpool too.
3199         (write_global_stream): Kill WPA hack.
3200         (produce_asm_for_decls): Update.
3201         (output_alias_pair_p): Handle variables.
3202         (output_unreferenced_globals): Output only needed partition of varpool.
3203         * ipa-inline.c (inline_write_summary): Update.
3204         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3205         cgraph.
3206         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3207         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3208         varpool_node_set_new, varpool_node_set_add,
3209         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3210         debug_varpool_node_set): New functions.
3211         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3212         (execute_one_pass): Process new decls too.
3213         (ipa_write_summaries_2): Pass around vsets.
3214         (ipa_write_summaries_1): Likewise.
3215         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3216         to add.
3217         (ipa_write_optimization_summaries_1): Pass around vsets.
3218         (ipa_write_optimization_summaries): Likewise.
3219         * varpool.c (varpool_get_node): New.
3220         (varpool_node): Update doubly linked lists.
3221         (varpool_remove_node): New.
3222         (dump_varpool_node): More dumping.
3223         (varpool_enqueue_needed_node): Update doubly linked lists.
3224         (decide_is_variable_needed): Kill ltrans hack.
3225         (varpool_finalize_decl): Kill lto hack.
3226         (varpool_assemble_decl): Skip decls in other partitions.
3227         (varpool_assemble_pending_decls): Update doubly linkes lists.
3228         (varpool_empty_needed_queue): Likewise.
3229         (varpool_extra_name_alias): Likewise.
3230         * lto-streamer.c (lto_get_section_name): Add vars section.
3231         * lto-streamer.h (lto_section_type): Update.
3232         (output_varpool, input_varpool): Declare.
3233
3234 2010-04-28  Mike Stump  <mikestump@comcast.net>
3235
3236         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3237
3238 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3239
3240         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3241         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3242         (lto_input_ts_type_tree_pointers): Likewise.
3243         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3244         (lto_output_ts_type_tree_pointers): Likewise.
3245
3246 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3247
3248         Uniquization of constants at the Tree level
3249         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3250         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3251         bit to the end.
3252         (tree_output_constant_def): Declare.
3253         * gimplify.c (gimplify_init_constructor): When using block copy, first
3254         uniquize the constant constructor on the RHS.
3255         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3256         DECL_IN_CONSTANT_POOL flag.
3257         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3258         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3259         constant pool.
3260         (assemble_variable): Deal with symbols belonging to the tree constant
3261         pool.
3262         (get_constant_section): Add ALIGN parameter and simplify.
3263         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3264         (assemble_constant_contents): Use the expression of the VAR_DECL.
3265         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3266         (tree_output_constant_def): New global function.
3267         (mark_constant): Use the expression of the VAR_DECL.
3268         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3269         its expression.
3270         (output_object_block): Likewise and assemble the expression.
3271
3272 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3273
3274         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3275         hash_tree, eq_tree): New tree hash table.
3276         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3277         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3278         lto_orig_address_remove): Reimplement.
3279
3280 2010-04-28  Xinliang David Li  <davidxl@google.com>
3281
3282         PR c/42643
3283         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3284         (compute_uninit_opnds_pos): New function.
3285         (is_non_loop_exit_postdominating): New function.
3286         (compute_control_dep_chain): New function.
3287         (find_pdom): New function.
3288         (convert_control_dep_chain_into_preds): New function.
3289         (find_predicates): New function.
3290         (find_control_equiv_block): New function.
3291         (collect_phi_def_edges): New function.
3292         (find_def_preds): New function.
3293         (find_dom): New function.
3294         (dump_predicates): New function.
3295         (get_cmp_code): New function.
3296         (is_value_included_in): New function.
3297         (find_matching_predicate_in_rest_chains): New function.
3298         (use_pred_not_overlap_with_undef_path_pred): New function.
3299         (is_use_properly_guarded): New function.
3300         (normalize_cond_1): New function.
3301         (is_and_or_or): New function.
3302         (normalize_cond): New function.
3303         (is_gcond_subset_of): New function.
3304         (is_subset_of_any): New function.
3305         (is_or_set_subset_of): New function.
3306         (is_and_set_subset_of): New function.
3307         (is_norm_cond_subset_of): New function.
3308         (is_pred_expr_subset_of): New function.
3309         (is_pred_chain_subset_of): New function.
3310         (is_included_in): New function.
3311         (is_superset_of): New function.
3312         (find_uninit_use): New function.
3313         (warn_uninitialized_phi): New function.
3314         (compute_possibly_undefined_names): New function.
3315         (ssa_undefined_value_p): New function.
3316         (execute_late_warn_uninitialized): New function.
3317         * tree-ssa.c (ssa_undefined_value_p): Removed.
3318         (warn_uninit): Changed to extern.
3319         (warn_uninitialized_phi): Removed.
3320         (warn_uninitialized_vars): Changed to extern.
3321         (execute_late_warn_uninitialized): Removed
3322         * tree-flow.h: Add new prototypes.
3323         * timevar.def: Add new time variable.
3324         * Makefile.in: Add new build file.
3325
3326 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
3327
3328         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
3329         type if available.
3330
3331 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3332
3333         PR target/22224
3334         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
3335
3336 2010-04-28  Martin Jambor  <mjambor@suse.cz>
3337
3338         * cgraph.h (struct cgraph_node): New field indirect_calls.
3339         (struct cgraph_indirect_call_info): New type.
3340         (struct cgraph_edge): Removed field indirect_call. New fields
3341         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
3342         (cgraph_create_indirect_edge): Declare.
3343         (cgraph_make_edge_direct): Likewise.
3344         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
3345         * ipa-prop.h (struct ipa_param_call_note): Removed.
3346         (struct ipa_node_params): Removed field param_calls.
3347         (ipa_create_all_structures_for_iinln): Declare.
3348         * cgraph.c: Described indirect edges and uids in initial comment.
3349         (cgraph_add_edge_to_call_site_hash): New function.
3350         (cgraph_edge): Search also among the indirect edges, use
3351         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
3352         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
3353         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
3354         site hash.
3355         (initialize_inline_failed): Assign a reason to indirect edges.
3356         (cgraph_create_edge_1): New function.
3357         (cgraph_create_edge): Moved some functionality to
3358         cgraph_create_edge_1.
3359         (cgraph_create_indirect_edge): New function.
3360         (cgraph_edge_remove_callee): Add an assert checking for
3361         non-indirectness.
3362         (cgraph_edge_remove_caller): Special-case indirect edges.
3363         (cgraph_remove_edge): Likewise.
3364         (cgraph_set_edge_callee): New function.
3365         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
3366         (cgraph_make_edge_direct): New function.
3367         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
3368         the declaration of the call statement matches.
3369         (cgraph_node_remove_callees): Special-case indirect edges.
3370         (cgraph_clone_edge): Likewise.
3371         (cgraph_clone_node): Clone also the indirect edges.
3372         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
3373         indirect_call, dump count of indirect_calls edges.
3374         * ipa-prop.c (iinlining_processed_edges): New variable.
3375         (ipa_note_param_call): Create indirect edges instead of
3376         creating notes.  New parameter node.
3377         (ipa_analyze_call_uses): New parameter node, pass it on to
3378         ipa_note_param_call.
3379         (ipa_analyze_stmt_uses): Likewise.
3380         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
3381         (print_edge_addition_message): Work on edges rather than on notes.
3382         (update_call_notes_after_inlining): Likewise, renamed to
3383         update_indirect_edges_after_inlining.
3384         (ipa_create_all_structures_for_iinln): New function.
3385         (ipa_free_node_params_substructures): Do not free notes.
3386         (ipa_edge_duplication_hook): Propagate bits within
3387         iinlining_processed_edges bitmap.
3388         (ipa_node_duplication_hook): Do not duplicate notes.
3389         (free_all_ipa_structures_after_ipa_cp): Renamed to
3390         ipa_free_all_structures_after_ipa_cp.
3391         (free_all_ipa_structures_after_iinln): Renamed to
3392         ipa_free_all_structures_after_iinln.
3393         (ipa_write_param_call_note): Removed.
3394         (ipa_read_param_call_note): Removed.
3395         (ipa_write_indirect_edge_info): New function.
3396         (ipa_read_indirect_edge_info): Likewise.
3397         (ipa_write_node_info): Do not stream notes, do stream information
3398         in indirect edges.
3399         (ipa_read_node_info): Likewise.
3400         (lto_ipa_fixup_call_notes): Removed.
3401         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
3402         * ipa-inline.c (pass_ipa_inline): Likewise.
3403         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
3404         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
3405         * tree-inline.c (copy_bb): Removed an unnecessary double check for
3406         is_gimple_call.
3407         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
3408         edges.
3409         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
3410         (output_cgraph): Stream also indirect edges.
3411         (lto_output_edge): Added capability to stream indirect edges.
3412         (input_edge): Likewise.
3413         (input_cgraph_1): Likewise.
3414         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
3415         of indirect edges.
3416
3417 2010-04-28  Richard Guenther  <rguenther@suse.de>
3418
3419         PR tree-optimization/43879
3420         PR tree-optimization/43909
3421         * tree-ssa-structalias.c (struct variable_info): Add
3422         only_restrict_pointers flag.
3423         (new_var_info): Initialize it.  Increment stats.total_vars here.
3424         (create_function_info_for): Do not increment stats.total_vars here.
3425         (get_function_part_constraint): Fix build with C++.
3426         (insert_into_field_list): Remove.
3427         (push_fields_onto_fieldstack): Properly merge fields.
3428         (create_variable_info_for): Split and simplify.
3429         (create_variable_info_for_1): New piece.
3430         (intra_create_variable_infos): Properly make restrict constraints
3431         from parameters.
3432
3433 2010-04-28  Richard Guenther  <rguenther@suse.de>
3434
3435         PR c++/43880
3436         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
3437
3438 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3439             Jan Hubicka <hubicka@ucw.cz>
3440
3441         * doc/invoke.texi (-Wsuggest-attribute=const,
3442         -Wsuggest-attribute=pure): Document.
3443         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
3444         (function_always_visible_to_compiler_p,
3445         suggest_attribute, warn_function_pure, warn_function_const):
3446         New functions.
3447         (check_call): Improve debug info.
3448         (analyze_function): Do not check availability.
3449         (add_new_function): Check availability.
3450         (propagate): Output warnings.
3451         (skip_function_for_local_pure_const): New function.
3452         (local_pure_const): Use it; output warnings.
3453         * common.opt (Wsuggest-attribute=const,
3454         Wsuggest-attribute=pure): New.
3455
3456 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3457
3458         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
3459         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
3460         or DW_CFA_def_cfa_offset{,_sf}.
3461
3462 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3463
3464         * tree.h: Fix truncated long macros.
3465
3466 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
3467
3468         * collect2.c (TARGET_64BIT): Redefine to target's default.
3469         * tlink.c: Likewise.
3470         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
3471         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
3472         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
3473         for underscoring __USER_LABEL_PREFIX__.
3474         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
3475         (SUB_LINK_ENTRY32): New.
3476         (SUB_LINK_ENTRY64): New.
3477         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
3478         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
3479         (SUB_LINK_ENTRY64): New.
3480         (SUB_LINK_ENTRY): New.
3481         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
3482         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
3483         x64 target is choosen.
3484         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
3485         * configure: Regenerated.
3486         * configure.ac (leading-mingw64-underscores): Option added.
3487
3488 2010-04-27  Jan Hubicka  <jh@suse.cz>
3489
3490         * doc/invoke.texi (-fipa-profile): Document.
3491         * opts.c (decode_options): Enable ipa-profile at -O1.
3492         * timevar.def (TV_IPA_PROFILE): Define.
3493         * common.opt (fipa-profile): Add.
3494         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
3495         flag for clones.
3496         (cgraph_propagate_frequency): Handle only local ones.
3497         * tree-pass.h (pass_ipa_profile): Declare.
3498         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
3499         (pass_ipa_profile): Use TV_IPA_PROFILE.
3500         * ipa.c (ipa_profile): New function.
3501         (gate_ipa_profile): Likewise.
3502         (pass_ipa_profile): New global variable.
3503         * passes.c (pass_ipa_profile): New.
3504
3505 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
3506
3507         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
3508
3509 2010-04-27  Martin Jambor  <mjambor@suse.cz>
3510
3511         PR middle-end/43812
3512         * ipa.c (dissolve_same_comdat_group_list): New function.
3513         (function_and_variable_visibility): Call
3514         dissolve_same_comdat_group_list when comdat group contains external or
3515         newly local nodes.
3516         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
3517         lists are circular and that they contain only DECL_ONE_ONLY nodes.
3518
3519 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3520
3521         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
3522         (const_hash_1) <VECTOR_CST>: New case.
3523         (compare_constant) <VECTOR_CST>: Likewise.
3524         <ADDR_EXPR>: Deal with LABEL_REFs.
3525         (copy_constant) <VECTOR_CST>: New case.
3526
3527 2010-04-27  Jan Hubicka  <jh@suse.cz>
3528
3529         * cgraph.c (cgraph_propagate_frequency): New function.
3530         * cgraph.h (cgraph_propagate_frequency): Declare.
3531         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
3532         cgraph_propagate_frequency.
3533
3534 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3535
3536         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3537
3538 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
3539
3540         PR target/40657
3541         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
3542         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
3543         here to determine which regs to push and how much stack to reserve.
3544
3545 2010-04-27  Jie Zhang  <jie@codesourcery.com>
3546
3547         * doc/gimple.texi (gimple_statement_with_ops): Remove
3548         addresses_taken field.
3549         (gimple_statement_with_memory_ops): Likewise.
3550
3551 2010-04-27  Jan Hubicka  <jh@suse.cz>
3552
3553         * tree-inline.c (eni_inlining_weights): Remove.
3554         (estimate_num_insns): Special case more builtins.
3555
3556 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
3557
3558         PR c/32207
3559         * c-typeck.c (build_binary_op): Move forward check for comparison
3560         pointer with null pointer constant and adjust the diagnostic message.
3561
3562 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
3563
3564         PR lto/42776
3565         * configure.ac (gcc_cv_as_section_has_align): Set if installed
3566         binutils supports extended .section directive needed by LTO, or
3567         warn if older binutils found.
3568         (LTO_BINARY_READER): New AC_SUBST'd variable.
3569         (LTO_USE_LIBELF): Likewise.
3570         * gcc/config.gcc (lto_binary_reader): New target-specific configure
3571         variable.
3572         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
3573         (LTO_USE_LIBELF): Likewise.
3574         * configure: Regenerate.
3575
3576         * collect2.c (is_elf): Rename from this ...
3577         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
3578          object files in addition to ELF-formatted ones.
3579         (scan_prog_file): Caller updated.  Also allow for LTO info marker
3580         symbol to be prefixed or not by an extra underscore.
3581
3582         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
3583         * config/i386/winnt.c: Also #include lto-streamer.h
3584         (i386_pe_asm_named_section): Specify 1-byte section alignment for
3585         LTO named sections.
3586         (i386_pe_asm_output_aligned_decl_common): Add comment.
3587         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
3588
3589 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
3590
3591         PR target/43889
3592         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
3593         Add missing earlyclobber for second alternative.
3594
3595 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
3596
3597         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
3598         bits for artificial defs at the top of the block.
3599         * fwprop.c (single_def_use_enter_block): Don't call it.
3600
3601 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
3602
3603         PR 43715
3604         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
3605         instead of "$gcc_cv_objdump -T".
3606         Use "-undefined dynamic_lookup" on darwin.
3607         * gcc/configure: Regenerate.
3608
3609 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
3610
3611         PR c/43893
3612         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
3613
3614 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3615
3616         * c-parser.c (struct c_token): Move location field up.
3617         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
3618         (struct c_declspecs): Convert typespec_word, storage_class, and
3619         default_int_p into bitfields.
3620         (struct c_declarator): Move loc field up.
3621
3622 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3623
3624         * cfgloop.h (struct loop): Move can_be_parallel field up.
3625         * ipa-prop.h (struct ip_node_params): Move bitfields up.
3626         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
3627         down.
3628         (struct iv_cand): Convert pos field into a bitfield.
3629         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
3630         field up.
3631         (struct _stmt_vec_info): Shuffle fields for better packing.
3632
3633 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3634
3635         * varasm.c (IN_NAMED_SECTION): Remove guard.
3636         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
3637         (IN_NAMED_SECTION_P): ...this.
3638         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
3639         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3640
3641 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3642
3643         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
3644         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
3645         of shadowing it.  Fix comments.
3646
3647 2010-04-26  Jan Hubicka  <jh@suse.cz>
3648
3649         * cgraph.c (cgraph_create_node): Set node frequency to normal.
3650         (cgraph_clone_node): Copy function frequency.
3651         * cgraph.h (node_frequency): New enum
3652         (struct cgraph_node): Add.
3653         * final.c (rest_of_clean_state): Update.
3654         * lto-cgraph.c (lto_output_node): Output node frequency.
3655         (input_overwrite_node): Input node frequency.
3656         * tre-ssa-loop-ivopts (computation_cost): Update.
3657         * lto-streamer-out.c (output_function): Do not output function
3658         frequency.
3659         * predict.c (maybe_hot_frequency_p): Update and handle functions
3660         executed once.
3661         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
3662         attribute lookup.
3663         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
3664         (compute_function_frequency): Set noreturn functions to be executed
3665         once.
3666         (choose_function_section): Update.
3667         * lto-streamer-in.c (input_function): Do not input function frequency.
3668         * function.c (allocate_struct_function): Do not initialize function
3669         frequency.
3670         * function.h (function_frequency): Remove.
3671         (struct function): Remove function frequency.
3672         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
3673         (try_update): Update.
3674         * tree-inline.c (initialize_cfun): Do not update function frequency.
3675         * passes.c (pass_init_dump_file): Update.
3676         * i386.c (ix86_compute_frame_layout): Update.
3677         (ix86_pad_returns): Update.
3678
3679 2010-04-26  Jie Zhang  <jie@codesourcery.com>
3680
3681         PR tree-optimization/43833
3682         * tree-vrp.c (range_int_cst_p): New.
3683         (range_int_cst_singleton_p): New.
3684         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
3685         when both operands are constants.  Use range_int_cst_p in
3686         BIT_IOR_EXPR case.
3687
3688 2010-04-26  Jan Hubicka  <jh@suse.cz>
3689
3690         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
3691
3692 2010-04-26  Richard Guenther  <rguenther@suse.de>
3693
3694         PR lto/43080
3695         * gimple.c (gimple_decl_printable_name): Deal gracefully
3696         with a NULL DECL_NAME.
3697
3698 2010-04-26  Richard Guenther  <rguenther@suse.de>
3699
3700         PR lto/42425
3701         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
3702         if emitting debug information and it is either a function
3703         or a namespace decl.
3704
3705 2010-04-26  Ira Rosen  <irar@il.ibm.com>
3706
3707         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
3708         determine if the statement is vectorizable, and a macro to access it.
3709         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3710         Skip statements that can't be vectorized. If the analysis fails,
3711         mark the statement as unvectorizable if vectorizing basic block.
3712         (vect_compute_data_refs_alignment): Likewise.
3713         (vect_verify_datarefs_alignment): Skip statements marked as
3714         unvectorizable. Add print.
3715         (vect_analyze_group_access): Skip statements that can't be
3716         vectorized. If the analysis fails, mark the statement as
3717         unvectorizable if vectorizing basic block.
3718         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
3719         * tree-vect-stmts.c (vectorizable_store): Fix the number of
3720         generated stmts for SLP.
3721         (new_stmt_vec_info): Initialize the new field.
3722         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
3723         statements marked as unvectorizable.
3724
3725 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
3726
3727         * c-common.c (flag_isoc1x): New.
3728         (flag_isoc99): Update comment.
3729         * c-common.h (flag_isoc1x): New.
3730         (flag_isoc99): Update comment.
3731         * c-cppbuiltin.c (builtin_define_float_constants): Also define
3732         __<type>_DECIMAL_DIG__.
3733         * c-opts.c (set_std_c1x): New.
3734         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
3735         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
3736         * c.opt (-std=c1x, -std=gnu1x): New options.
3737         * doc/cpp.texi: Mention -std=c1x.
3738         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
3739         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
3740         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
3741         * doc/standards.texi: Mention C1X.
3742         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
3743         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
3744         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
3745         Define for C1X.
3746
3747 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
3748
3749         * config/i386/gmon-sol2.c (_mcleanup): Change format string
3750         placeholder from 0x%x to %#x.
3751         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3752         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3753         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3754         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3755         * config/i386/i386.c (ix86_target_string): Ditto.
3756         (output_pic_addr_const): Ditto.
3757         (print_operand): Ditto.
3758
3759 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
3760
3761         * combine.c (find_split_point): Add third argument.  Use it
3762         to find nested multiply-accumulate instructions.  Adjust calls.
3763         (try_combine): Adjust call to find_split_point.
3764
3765 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3766
3767         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
3768
3769 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
3770
3771         PR tree-optimization/41442
3772         * fold-const.c (merge_truthop_with_opposite_arm): New function.
3773         (fold_binary_loc): Call it.
3774
3775 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3776
3777         * toplev.c (general_init): Set default for fdiagnostics-show-option.
3778         * opts.c (common_handle_option): Allow disabling it.
3779         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
3780
3781 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3782
3783         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
3784         between modes if both types are integral.
3785
3786 2010-04-23  Richard Guenther  <rguenther@suse.de>
3787
3788         PR tree-optimization/43572
3789         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
3790
3791 2010-04-23  Richard Guenther  <rguenther@suse.de>
3792
3793         PR lto/43455
3794         * tree-inline.c (tree_can_inline_p): Also check compatibility
3795         of return types.
3796
3797 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3798
3799         PR tree-optimization/43846
3800         * tree-sra.c (struct access): New flag grp_assignment_read.
3801         (build_accesses_from_assign): Set grp_assignment_read.
3802         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
3803         (enum mark_read_status): New type.
3804         (analyze_access_subtree): Propagate grp_assignment_read, create
3805         accesses also if both direct_read and root->grp_assignment_read.
3806
3807 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3808
3809         PR middle-end/43835
3810         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
3811         function does not have type attributes.
3812
3813 2010-04-23  Richard Guenther  <rguenther@suse.de>
3814
3815         PR lto/42653
3816         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
3817         of FUNCTION_DECLs.
3818
3819 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3820
3821         * sese.h (create_if_region_on_edge): Remove.
3822
3823         * sese.c (create_if_region_on_edge): Make static.
3824
3825         * tree-inline.c: Do not include ggc.h.
3826
3827         * expr.c: Do not include ggc.h.
3828
3829         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
3830         dependencies.
3831
3832 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3833
3834         PR target/43744
3835         * config/sh/sh.c (find_barrier): Don't emit a constant pool
3836         in the middle of insns for casesi_worker_2.
3837
3838 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
3839
3840         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
3841
3842 2010-04-22  Ira Rosen  <irar@il.ibm.com>
3843
3844         PR tree-optimization/43842
3845         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
3846         loop unrolling in update of exit phis. Fix comment.
3847         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
3848         least two reduction statements in the loop before starting SLP
3849         analysis.
3850
3851 2010-04-22  Nick Clifton  <nickc@redhat.com>
3852
3853         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
3854
3855 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
3856
3857         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
3858         to simplify a + ~a.
3859
3860 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3861
3862         * tree-parloops.c (loop_parallel_p): New argument
3863         parloop_obstack.  Pass it down.
3864         (parallelize_loops): New variable parloop_obstack.  Initialize it,
3865         pass it down, free it.
3866
3867         * tree-loop-linear.c (linear_transform_loops): Pass down
3868         lambda_obstack.
3869
3870         * tree-data-ref.h (lambda_compute_access_matrices): New argument
3871         of type struct obstack *.
3872
3873         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
3874         scratch_obstack.  Initialize it, pass down, free it.
3875
3876         * lambda.h (lambda_loop_new): Remove.
3877         (lambda_matrix_new, lambda_matrix_inverse)
3878         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
3879         argument of type struct obstack *.
3880
3881         * lambda-trans.c (lambda_trans_matrix_new): New argument
3882         lambda_obstack.  Pass it down, use obstack allocation for ret.
3883         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
3884         it down.
3885
3886         * lambda-mat.c (lambda_matrix_get_column)
3887         (lambda_matrix_project_to_null): Remove.
3888         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
3889         allocation for mat.
3890         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
3891         lambda_obstack.
3892
3893         * lambda-code.c (lambda_loop_new): New function.
3894         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
3895         (lambda_compute_auxillary_space, lambda_compute_target_space)
3896         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
3897         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
3898         (build_access_matrix): New argument lambda_obstack.  Use obstack
3899         allocation for am.
3900         (lambda_compute_step_signs, lambda_compute_access_matrices): New
3901         argument lambda_obstack.  Pass it down.
3902
3903 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3904
3905         * optabs.h (expand_widening_mult): Declare.
3906
3907 2010-04-22  Richard Guenther  <rguenther@suse.de>
3908
3909         PR tree-optimization/43845
3910         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
3911         lookup the CALL_EXPR function and arguments.
3912
3913 2010-04-22  Nick Clifton  <nickc@redhat.com>
3914
3915         * config/stormy16/stormy16.c
3916         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
3917         * config/stormy16/stormy16.h: Tidy up formatting.
3918         (DONT_USE_BUILTIN_SETJMP): Remove definition.
3919         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
3920         (ineqbranchsi): Delete pattern.
3921         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
3922         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
3923         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3924         stormy16-lib2-ucmpsi2.c.
3925
3926 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3927
3928         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
3929         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
3930         extra set merge_set_noclobber, and use it to relax the final test
3931         slightly.
3932         * df.h (df_simulate_find_noclobber_defs): Declare.
3933         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
3934         conditional defs.
3935         (df_simulate_find_noclobber_defs): New function.
3936
3937 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
3938
3939         * config/i386/i386.md: Use {} around multi-line preparation statements.
3940
3941 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3942
3943         * c-tree.h (push_init_level, pop_init_level, set_init_index)
3944         (process_init_element): New argument of type struct obstack *.
3945
3946         * c-typeck.c (push_init_level, pop_init_level, set_designator)
3947         (set_init_index, set_init_label, set_nonincremental_init)
3948         (set_nonincremental_init_from_string, find_init_member)
3949         (output_init_element, output_pending_init_elements)
3950         (process_init_element): New argument braced_init_obstack.  Pass it
3951         down.
3952         (push_range_stack, add_pending_init): New argument
3953         braced_init_obstack.  Use obstack allocation.
3954
3955         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
3956         braced_init_obstack.  Pass it down.
3957         (c_parser_braced_init): New variables ret, braced_init_obstack.
3958         Initialize obstack, pass it down and finally free it.
3959
3960 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3961
3962         PR middle-end/29274
3963         * tree-pass.h (pass_optimize_widening_mul): Declare.
3964         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
3965         gate_optimize_widening_mul): New static functions.
3966         (pass_optimize_widening_mul): New.
3967         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
3968         <case MULT_EXPR>: Remove support for widening multiplies.
3969         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
3970         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
3971         simplify_gen_unary rather than directly building extensions.
3972         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
3973         WIDEN_MULT_EXPR.
3974         * expmed.c (expand_widening_mult): New function.
3975         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
3976
3977 2010-04-21  Jan Hubicka  <jh@suse.cz>
3978
3979         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
3980         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
3981         * lto-wpa-fixup.c: Remove.
3982         * Makefile.in (lto-wpa-fixup.o): Remove.
3983         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
3984         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
3985         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
3986
3987 2010-04-21  Jan Hubicka  <jh@suse.cz>
3988
3989         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
3990         add write_optimization_summary, read_optimization_summary.
3991         (ipa_write_summaries_of_cgraph_node_set): Remove.
3992         (ipa_write_optimization_summaries): Declare.
3993         (ipa_read_optimization_summaries): Declare.
3994         * ipa-cp.c (pass_ipa_cp): Update.
3995         * ipa-reference.c (pass_ipa_reference): Update.
3996         * ipa-pure-const.c (pass_ipa_pure_const): Update.
3997         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
3998         Update.
3999         * ipa-inline.c (pass_ipa_inline): Update.
4000         * ipa.c (pass_ipa_whole_program): Update.
4001         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4002         * passes.c (ipa_write_summaries_1): Do not test wpa.
4003         (ipa_write_optimization_summaries_1): New.
4004         (ipa_write_optimization_summaries): New.
4005         (ipa_read_summaries): Do not test ltrans.
4006         (ipa_read_optimization_summaries_1): New.
4007         (ipa_read_optimization_summaries): New.
4008
4009 2010-04-21  Jan Hubicka  <jh@suse.cz>
4010
4011         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4012         for boundary nodes.
4013         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4014
4015 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4016
4017         PR debug/40040
4018         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4019         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4020
4021 2010-04-21  Jan Hubicka  <jh@suse.cz>
4022
4023         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4024
4025 2010-04-21  Jan Hubicka  <jh@suse.cz>
4026
4027         * varpool.c (decide_is_variable_needed): Variable is always needed
4028         during ltrans.
4029
4030 2010-04-21  Jan Hubicka  <jh@suse.cz>
4031
4032         * opts.c (decode_options): Enable pure-const pass for whopr.
4033
4034 2010-04-21  Jan Hubicka  <jh@suse.cz>
4035
4036         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4037         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4038         at WPA dumping.
4039         (cgraph_decide_inlining): Do not expect callee to be removed in all
4040         cases.
4041
4042 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4043
4044         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4045
4046 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4047
4048         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4049         amdfam10_decode attributes.
4050
4051 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4052
4053         PR middle-end/43570
4054         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4055         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4056         (lower_copyprivate_clauses): Use private var in outer
4057         context instead of original var.  Make sure the types
4058         are correct for VLAs.
4059
4060 2010-04-21  Richard Guenther  <rguenther@suse.de>
4061
4062         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4063         to non-pointer objects.
4064
4065 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4066
4067         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4068         last chain entry if it starts with the still current label.
4069         (add_location_or_const_value_attribute): Check that
4070         loc_list->first->next is NULL instead of comparing ->first with ->last.
4071         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4072         to add_var_loc_to_decl.
4073
4074         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4075         >= 4 add also address size and segment size fields into CIE header.
4076
4077         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4078         long as address size is the same as sizeof (void *) and
4079         segment size is 0.
4080         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4081         address size or segment size is unexpected, return DW_EH_PE_omit.
4082         (classify_object_over_fdes): If get_cie_encoding returned
4083         DW_EH_PE_omit, return -1.
4084         (init_object): If classify_object_over_fdes returned -1,
4085         pretend there were no FDEs at all.
4086
4087 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4088
4089         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4090         bswap{si,di}2 using SWI48 mode iterator.
4091         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4092         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4093         set modrm attribute of bswap insn to 0 and remove length attribute.
4094         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4095         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4096         set mode attribute to <MODE> and remove length attribute.
4097
4098 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4099
4100         PR rtl-optimization/43520
4101         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4102         zero available registers.
4103
4104 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4105
4106         * builtins.c (fold_builtin_cproj): Fold more cases.
4107
4108 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4109
4110         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4111         (fold_builtin_1): Fold builtin cproj.
4112         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4113         Use ATTR_CONST_NOTHROW_LIST.
4114
4115 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4116
4117         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4118         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4119         ffsi2_no_cmove for !TARGET_CMOVE.
4120         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4121         (ffssi2): Remove expander.
4122         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4123         mode iterator.
4124         (ctz<mode>2): Ditto from ctz{si,di}2.
4125         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4126         mode iterator.
4127         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4128         mode iterator.
4129
4130 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4131
4132         * dwarf2out.c (AT_linkage_name): Define.
4133         (clone_as_declaration): Handle DW_AT_linkage_name.
4134         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4135         of DW_AT_MIPS_linkage_name.
4136         (move_linkage_attr): Likewise.
4137         (dwarf2out_finish): Likewise.
4138
4139 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4140
4141         PR middle-end/41952
4142         * fold-const.c (fold_comparison): New folding rule.
4143
4144 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4145
4146         * double-int.h (double_int_setbit): Declare.
4147         * double-int.c (double_int_setbit): New function.
4148         * rtl.h (immed_double_int_const): Declare.
4149         * emit-rtl.c (immed_double_int_const): New function.
4150         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4151         and immed_double_int_const functions.
4152         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4153         expand_copysign_bit):  (Ditto.).
4154         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4155         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4156         * dojump.c (prefer_and_bit_test): (Ditto.).
4157         * expr.c (convert_modes, reduce_to_bit_field_precision,
4158         const_vector_from_tree): (Ditto.).
4159         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4160
4161 2010-04-20  Jan Hubicka  <jh@suse.cz>
4162
4163         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4164         (dump_cgraph_node): Dump new flags.
4165         * cgraph.h (struct cgraph_node): Add flags
4166         reachable_from_other_partition and in_other_partition.
4167         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4168         other partition can not be removed.
4169         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4170         the other partition must be output; silence sanity checking on
4171         leaking functions bodies from other paritition.
4172         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4173         (lto_output_node): Output new flags; do not sanity check that inline
4174         clones are output; drop lto_forced_extern_inline_p code; do not mock
4175         visibility flags at partition boundaries.
4176         (add_node_to): New function.
4177         (output_cgraph): Use it to sort functions so masters appear before
4178         clones.
4179         (input_overwrite_node): Input new flags.
4180         * passes.c (ipa_write_summaries): Do not call
4181         lto_new_extern_inline_states.
4182         * lto-section-out.c (forced_extern_inline,
4183         lto_new_extern_inline_states lto_delete_extern_inline_states,
4184         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4185         * lto-streamer.h (lto_new_extern_inline_states,
4186         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4187         lto_forced_extern_inline_p): Kill.
4188
4189 2010-04-20  Richard Guenther  <rguenther@suse.de>
4190
4191         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4192         from vars that can have pointers.
4193         (process_constraint): Dump useless constraints.
4194
4195 2010-04-20  Richard Guenther  <rguenther@suse.de>
4196
4197         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4198         (dump_sa_points_to_info): Remove asserts.
4199         (init_base_vars): nothing_id isn't an escape point nor does it
4200         have pointers.
4201
4202 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4203
4204         * tree.h (TYPE_REF_IS_RVALUE): Define.
4205         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4206         should_move_die_to_comdat, prune_unused_types_walk): Handle
4207         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4208         (modified_type_die, gen_reference_type_die): Emit
4209         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4210         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4211
4212 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4213
4214         PR target/43635
4215         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4216         calls for -fpic -m31 if they have been sibcall optimized.
4217
4218 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4219
4220         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4221         ar.lc fixed and call-used.
4222
4223         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4224
4225 2010-04-19  Jan Hubicka  <jh@suse.cz>
4226
4227         * opts.c (decode_options): Disable whpr incompatible passes.
4228         * lto/lto.c (lto_1_to_1_map): Skip clones.
4229         (read_cgraph_and_symbols): Do not mark everything as needed.
4230         (do_whole_program_analysis): Do map only after optimizing;
4231         set proper cgraph_state; use passmanager.
4232
4233 2010-04-19  DJ Delorie  <dj@redhat.com>
4234
4235         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4236         POINTER_PLUS_EXPR and fix them.
4237
4238 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4239
4240         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4241         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4242         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4243         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4244         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4245         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4246         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4247         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4248         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4249         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4250         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4251
4252 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4253
4254         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4255         (check_cond_move_block): Likewise.
4256         (cond_move_process_if_block): Likewise.
4257         (noce_find_if_block): Improve formatting.
4258         (find_if_header): Pass 0 to memset and tweak conditions.
4259         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4260
4261 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4262
4263         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4264         for -gdwarf-4.
4265
4266         PR middle-end/43337
4267         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4268         with non-local decl doesn't need chain.
4269
4270 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4271
4272         * ira-color.c (allocno_reload_assign): Avoid accumulating
4273         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4274
4275 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4276
4277         * gimple.h (create_tmp_reg): Declare.
4278         * gimplify.c (create_tmp_reg): New function.
4279         (gimplify_return_expr): Use create_tmp_reg.
4280         (gimplify_omp_atomic): Likewise.
4281         (gimple_regimplify_operands): Likewise.
4282         * tree-dfa.c (make_rename_temp): Likewise.
4283         * tree-predcom.c (predcom_tmp_var): Likewise.
4284         (reassociate_to_the_same_stmt): Likewise.
4285         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4286         (get_replaced_param_substitute): Likewise.
4287         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4288         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4289         * tree-ssa-pre.c (get_representative_for): Likewise.
4290         (create_expression_by_pieces): Likewise.
4291         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4292         (create_tailcall_accumulator): Likewise.
4293
4294 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4295
4296         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4297         new_stmt.
4298         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4299
4300 2010-04-19  Richard Guenther  <rguenther@suse.de>
4301
4302         PR tree-optimization/43796
4303         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4304         from SCEV in the lattice.
4305         (vrp_visit_phi_node): Dump change.
4306
4307 2010-04-19  Richard Guenther  <rguenther@suse.de>
4308
4309         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4310         * configure: Re-generated.
4311
4312 2010-04-19  Richard Guenther  <rguenther@suse.de>
4313
4314         PR tree-optimization/43783
4315         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
4316         constant ARRAY_REF operands two and three if possible.
4317
4318 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
4319
4320         PR target/43766
4321         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
4322
4323 2010-04-19  Jie Zhang  <jie@codesourcery.com>
4324
4325         PR target/43662
4326         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
4327
4328 2010-04-19  Ira Rosen  <irar@il.ibm.com>
4329
4330         PR tree-optimization/37027
4331         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
4332         and macro to access it.
4333         (vectorizable_reduction): Add argument.
4334         (vect_get_slp_defs): Likewise.
4335         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
4336         statements for possible use in SLP.
4337         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
4338         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
4339         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
4340         add new argument.
4341         (vectorizable_reduction): Likewise.
4342         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
4343         vect_get_slp_defs.
4344         (vectorizable_type_demotion, vectorizable_type_promotion,
4345         vectorizable_store): Likewise.
4346         (vect_analyze_stmt): Update call to vectorizable_reduction.
4347         (vect_transform_stmt): Likewise.
4348         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
4349         (vect_build_slp_tree): Fix indentation. Check that there are no loads
4350         from different interleaving chains in same node.
4351         (vect_slp_rearrange_stmts): New function.
4352         (vect_supported_load_permutation_p): Allow load permutations for
4353         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
4354         inside SLP nodes if necessary.
4355         (vect_analyze_slp_instance): Handle reductions.
4356         (vect_analyze_slp): Try to build SLP instances originating from groups
4357         of reductions.
4358         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
4359         (vect_get_constant_vectors): Create initial vectors for reductions
4360         according to reduction code. Add new argument.
4361         (vect_get_slp_defs): Add new argument, pass it to
4362         vect_get_constant_vectors.
4363         (vect_schedule_slp_instance): Remove SLP tree root statements.
4364
4365 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4366
4367         * tree.h (ENUM_IS_SCOPED): Define.
4368         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
4369         for ENUM_IS_SCOPED enums.
4370
4371 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4372
4373         * fold-const.c (fold_comparison): Use ssizetype.
4374         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
4375         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
4376         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
4377         * tree-object-size.c (compute_object_sizes): Use size_type_node.
4378
4379         * tree.h (initialize_sizetypes): Remove parameter.
4380         (build_common_tree_nodes): Remove second parameter.
4381         * stor-layout.c (initialize_sizetypes): Remove parameter.
4382         Always create an unsigned type.
4383         (set_sizetype): Assert that the passed type is unsigned and simplify.
4384         * tree.c (build_common_tree_nodes): Remove second parameter.
4385         Adjust call to initialize_sizetypes.
4386         * c-decl.c (c_init_decl_processing): Remove second argument in call to
4387         build_common_tree_nodes.
4388
4389 2010-04-18  Matthias Klose  <doko@ubuntu.com>
4390
4391         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
4392
4393 2010-04-18  Ira Rosen  <irar@il.ibm.com>
4394
4395         PR tree-optimization/43771
4396         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
4397         load permutation doesn't have gaps.
4398
4399 2010-04-18  Jan Hubicka  <jh@suse.cz>
4400
4401         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
4402         (sse_prologue_save_insn expander): Use new pattern.
4403         (sse_prologue_save_insn1): New pattern and splitter.
4404         (sse_prologue_save_insn): Update to deal also with 64bit aligned
4405         blocks.
4406         * i386.c (setup_incoming_varargs_64): Do not compute jump
4407         destination here.
4408         (ix86_gimplify_va_arg): Update alignment needed.
4409         (ix86_local_alignment): Do not align all local arrays to 128bit.
4410
4411 2010-04-17  Jan Hubicka  <jh@suse.cz>
4412
4413         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
4414
4415 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4416
4417         * arm.md (negdi2): Remove redundant code to force values into a
4418         register.
4419
4420 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4421
4422         * arm/bpabi.S: Add EABI alignment attributes to objects.
4423         * arm/bpabi-v6m.S: Likewise.
4424         * arm/crti.asm: Likewise.
4425         * arm/crtn.asm: Likewise.
4426         * arm/lib1funcs.asm: Likewise.
4427         * arm/libunwind.S: Likewise.
4428
4429 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4430
4431         * arm-protos.h (tune_params): New structure.
4432         * arm.c (current_tune): New variable.
4433         (arm_constant_limit): Delete.
4434         (struct processors): Add pointer to the tune parameters.
4435         (arm_slowmul_tune): New tuning option.
4436         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
4437         (all_cores): Adjust to pick up the tuning model.
4438         (arm_constant_limit): New function.
4439         (arm_override_options): Select the appropriate tuning model.  Delete
4440         initialization of arm_const_limit.
4441         (arm_split_constant): Use the new constant-limit model.
4442         (arm_rtx_costs): Pick up the current tuning model.
4443         * arm.md (is_strongarm, is_xscale): Delete.
4444         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
4445         for Xscale variant architectures.
4446         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
4447
4448 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4449
4450         * config/arm/arm.c (arm_gen_constant): Remove unused variable
4451         can_shift.
4452         (arm_rtx_costs_1): Remove unused variable extra_cost.
4453         (arm_unwind_emit_set): Use variable offset.
4454         (thumb1_output_casesi): Remove unused variable flags.
4455
4456 2010-04-16  Jeff Law  <law@redhat.com>
4457
4458         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
4459         needing assignment rather than doing a two-phase assignment.  Remove
4460         unused variable 'm'.
4461
4462 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4463
4464         PR bootstrap/43767
4465         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
4466
4467 2010-04-16  Doug Kwan  <dougkwan@google.com>
4468
4469         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
4470         (next_operand_entry_id): New static variable.
4471         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
4472         (add_to_ops_vec): Assigned unique ID to operand entry.
4473         (struct oecount_s): New field ID.
4474         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
4475         (undistribute_ops_list): Assign unique IDs to oecounts.
4476         (init_reassoc): reset next_operand_entry_id.
4477
4478 2010-04-16  Doug Kwan  <dougkwan@google.com>
4479
4480         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
4481         missing left parenthesis.
4482
4483 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
4484
4485         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
4486         *btdi_rex64 using SWI48 mode iterator.
4487         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
4488         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
4489         *jcc_btdi_mask_rex64.
4490
4491 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
4492
4493         * double-int.h (tree_to_double_int): Convert to macro.
4494         * double-int.c (tree_to_double_int): Remove.
4495
4496 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4497
4498         PR debug/43762
4499         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
4500         with want_address 2 and in case a single element list might be
4501         possible, call it again with want_address 0.
4502
4503 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4504
4505         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
4506         case 'W' print operands for HI mode.
4507         * config/h8300/h8300.h (Y0, Y2) : New constraints.
4508         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
4509         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
4510         * config/h8300/predicate.md (bit_register_indirect_operand): New.
4511
4512         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
4513
4514         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
4515         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
4516         #xx:3 and #xx:4 mode.
4517
4518         * config/h8300/h8300.md (inverted load with HImode dest): Add
4519         support for H8300SX.
4520
4521         * config/h8300/predicate.md (bit_operand): Allow immediate values that
4522         satisfy 'U' constraint.
4523
4524 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4525
4526         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
4527         * configure: Regenerate.
4528         * config.in: Regenerate.
4529         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
4530         works.
4531
4532 2010-04-16  Richard Guenther  <rguenther@suse.de>
4533
4534         * tree.h (struct tree_decl_minimal): Move pt_uid ...
4535         (struct tree_decl_common): ... here.
4536         (DECL_PT_UID): Adjust.
4537         (SET_DECL_PT_UID): Likewise.
4538         (DECL_PT_UID_SET_P): Likewise.
4539
4540 2010-04-16  Richard Guenther  <rguenther@suse.de>
4541
4542         PR tree-optimization/43572
4543         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
4544         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
4545         * tree-flow.h (is_call_clobbered): Remove.
4546         * tree-flow-inline.h (is_call_clobbered): Likewise.
4547         * tree-dfa.c (dump_variable): Do not dump call clobber state.
4548         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
4549         (execute_return_slot_opt): Adjust.
4550         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
4551         check for call clobbered vars here.
4552         (find_tail_calls): Move tailcall verification to the
4553         proper place.
4554
4555 2010-04-16  Diego Novillo  <dnovillo@google.com>
4556
4557         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
4558
4559 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4560
4561         PR target/40603
4562         * config/arm/arm.md (cbranchqi4): New pattern.
4563         * config/arm/predicates.md (const0_operand,
4564         cbranchqi4_comparison_operator): New predicates.
4565
4566 2010-04-16  Richard Guenther  <rguenther@suse.de>
4567
4568         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
4569         (dump_gimple_stmt): Likewise.
4570
4571 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4572
4573         * recog.h (struct recog_data): New field is_operator.
4574         (struct insn_operand_data): New field is_operator.
4575         * recog.c (extract_insn): Set recog_data.is_operator.
4576         * genoutput.c (output_operand_data): Emit code to set the
4577         is_operator field.
4578         * reload.c (find_reloads): Use it rather than testing for an
4579         empty constraint string.
4580
4581         PR target/41514
4582         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
4583         If the previous insn is a cbranchsi4_insn with the same arguments,
4584         omit the compare instruction.
4585
4586         * config/arm/arm.md (addsi3_cbranch): If destination is a high
4587         register, inputs must be low registers and we need a low register
4588         scratch.  Handle alternative 2 like alternative 3.
4589
4590 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4591
4592         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
4593         don't call get_addr on both.  If one expression is a VALUE and
4594         the other a REG, check VALUE's locs if the REG isn't among them.
4595
4596 2010-04-16  Christian Bruel  <christian.bruel@st.com>
4597
4598         * config/sh/sh.h (sh_frame_pointer_required): New function.
4599         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
4600         (flag_omit_frame_pointer) Set.
4601         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
4602         (rounded_frame_size): Adjust size with outgoing_args_size.
4603         (sh_set_return_address): Must return from stack pointer.
4604         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
4605         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4606         (ACCUMULATE_OUTGOING_ARGS): Define.
4607         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
4608         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
4609
4610 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4611
4612         PR target/43471
4613         * config/sh/sh.c (sh_legitimize_reload_address): Use
4614         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
4615         Remove a unneeded check for offset_base.
4616
4617 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4618
4619         * configure: Regenerated.
4620
4621 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4622
4623         * config/s390/s390.c (s390_call_save_register_used): Switch back
4624         to HARD_REGNO_NREGS.
4625
4626 2010-04-15  Richard Guenther  <rguenther@suse.de>
4627
4628         * alias.c (alias_set_subset_of): Handle alias-set zero
4629         child properly.
4630
4631 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
4632             Julian Brown  <julian@codesourcery.com>
4633
4634         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
4635         alternatives according to use of high and low regs.
4636         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4637         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
4638         optimizing for size on Thumb-2.
4639
4640 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
4641
4642         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
4643
4644 2010-04-15  Richard Guenther  <rguenther@suse.de>
4645
4646         * tree-ssa-structalias.c (struct variable_info): Add
4647         is_fn_info flag.
4648         (new_var_info): Initialize it.
4649         (dump_constraints): Support printing last added constraints.
4650         (debug_constraints): Adjust.
4651         (dump_constraint_graph): Likewise.
4652         (make_heapvar_for): Check for NULL cfun.
4653         (get_function_part_constraint): New function.
4654         (get_fi_for_callee): Likewise.
4655         (find_func_aliases): Properly implement IPA PTA constraints.
4656         (process_ipa_clobber): New function.
4657         (find_func_clobbers): Likewise.
4658         (insert_into_field_list_sorted): Remove.
4659         (create_function_info_for): Properly allocate vars for IPA mode.
4660         Do not use insert_into_field_list_sorted.
4661         (create_variable_info_for): Properly generate constraints for
4662         global vars in IPA mode.
4663         (dump_solution_for_var): Always dump the solution.
4664         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
4665         (find_what_var_points_to): Adjust.
4666         (pt_solution_set): Change.
4667         (pt_solution_ior_into): New function.
4668         (pt_solution_empty_p): Export.
4669         (pt_solution_includes_global): Adjust.
4670         (pt_solution_includes_1): Likewise.
4671         (pt_solutions_intersect_1): Likewise.
4672         (dump_sa_points_to_info): Check some invariants.
4673         (solve_constraints): Move constraint dumping ...
4674         (compute_points_to_sets): ... here.
4675         (ipa_pta_execute): ... and here.
4676         (compute_may_aliases): Do not re-compute points-to info
4677         locally if IPA info is available.
4678         (ipa_escaped_pt): New global var.
4679         (ipa_pta_execute): Properly implement IPA PTA.
4680         * tree-into-ssa.c (dump_decl_set): Support dumping
4681         decls not in referenced-vars.
4682         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
4683         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
4684         (dump_points_to_solution): Likewise.
4685         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
4686         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
4687         (remap_gimple_stmt): Reset call clobber/use information if necessary.
4688         (copy_decl_to_var): Copy DECL_PT_UID.
4689         (copy_result_decl_to_var): Likewise.
4690         * tree.c (make_node_stat): Initialize DECL_PT_UID.
4691         (copy_node_stat): Copy it.
4692         * tree.h (DECL_PT_UID): New macro.
4693         (SET_DECL_PT_UID): Likewise.
4694         (DECL_PT_UID_SET_P): Likewise.
4695         (struct tree_decl_minimal): Add pt_uid member.
4696         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
4697         (pt_solution_empty_p): Declare.
4698         (pt_solution_set): Adjust.
4699         (ipa_escaped_pt): Declare.
4700         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
4701         * gimple-pretty-print.c (pp_points_to_solution): New function.
4702         (dump_gimple_call): Dump call clobber/use information.
4703         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
4704         * tree-pass.h (TDF_ALIAS): New dump option.
4705         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
4706         * doc/invoke.texi (-fipa-pta): Update documentation.
4707
4708 2010-04-15  Richard Guenther  <rguenther@suse.de>
4709
4710         * Makefile.in (OBJS-common): Add gimple-fold.o.
4711         (gimple-fold.o): New rule.
4712         * tree.h (maybe_fold_offset_to_reference,
4713         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
4714         prototypes ...
4715         * gimple.h: ... here.
4716         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
4717         may_propagate_address_into_dereference): Move prototypes ...
4718         * gimple.h: ... here.
4719         * tree-ssa-ccp.c (get_symbol_constant_value,
4720         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
4721         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
4722         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
4723         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
4724         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
4725         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
4726         gimplify_and_update_call_from_tree): Move ...
4727         * gimple-fold.c: ... here.  New file.
4728         (ccp_fold_builtin): Rename to ...
4729         (gimple_fold_builtin): ... this.
4730         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
4731
4732 2010-04-15  Richard Guenther  <rguenther@suse.de>
4733
4734         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
4735         fit_double_type, force_fit_type_double, add_double_with_sign,
4736         neg_double, mul_double_with_sign, lshift_double, rshift_double,
4737         lrotate_double, rrotate_double, div_and_round_double): Move ...
4738         * double-int.c: ... here.
4739         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
4740         add_double, neg_double, mul_double_with_sign, mul_double,
4741         lshift_double, rshift_double, lrotate_double, rrotate_double,
4742         div_and_round_double): Move prototypes ...
4743         * double-int.h: ... here.
4744
4745 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
4746
4747         PR target/43742
4748         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
4749         matching constraints to ensure inputs match the output.
4750
4751 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4752
4753         PR target/43742
4754         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
4755         in an input-only operand.
4756
4757 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
4758
4759         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
4760         (double_int_not, double_int_lshift, double_int_rshift): Declare.
4761         (double_int_negative_p): Convert to static inline function.
4762         * double-int.c (double_int_lshift, double_int_lshift): New functions.
4763         (double_int_negative_p): Remove.
4764         * tree.h (lshift_double, rshift_double):
4765         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
4766         * fold-const.c (fold_convert_const_int_from_real,
4767         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
4768         (lshift_double): Change type of arith argument to bool.
4769         (rshift_double): Change type of arith argument to bool. Correct
4770         comment.
4771         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4772
4773 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
4774
4775         PR target/21803
4776         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
4777         at the start and end of the then/else blocks, and omit them from the
4778         conversion.
4779         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
4780         argument; all callers changed.  Pass zero to old_insns_match_p instead.
4781         (flow_find_head_matching_sequence): New function.
4782         (old_insns_match_p): Check REG_EH_REGION notes for calls.
4783         * basic-block.h (flow_find_cross_jump,
4784         flow_find_head_matching_sequence): Declare functions.
4785
4786 2010-04-14  Jason Merrill  <jason@redhat.com>
4787
4788         PR c++/36625
4789         * c-common.c (attribute_takes_identifier_p): New fn.
4790         * c-common.h: Declare it.
4791
4792 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4793
4794         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
4795         splitter condition.
4796         (*udivmod<mode>4): Ditto.
4797
4798 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4799
4800         * config/i386/i386.md (maxmin_int): Rename code attribute from
4801         maxminiprefix and update all users.
4802         (maxmin_float): Ditto from maxminfprefix.
4803         (logic): Ditto from logicprefix.
4804         (absneg_mnemonic): Ditto from absnegprefix.
4805         * config/i386/mmx.md: Update all users of maxminiprefix,
4806         maxminfprefix and logicprefix for rename.
4807         * config/i386/sse.md: Ditto.
4808         * config/i386/sync.md (sync_<code><mode>): Update for
4809         logicprefix rename.
4810
4811 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4812
4813         PR 42966
4814         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
4815         warnings converted to errors.
4816
4817 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4818
4819         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
4820         used insn_type variable.
4821         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
4822         to avoid set-but-not-used warning.
4823
4824 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4825
4826         * df-core.c (df_ref_debug): Change format string placeholder
4827         from 0x%x to %#x.
4828         * dwarf2asm.c (dw2_asm_output_data_raw,
4829         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
4830         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
4831         * dwarf2out.c (output_cfi, output_cfi_directive,
4832         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
4833         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
4834         Ditto.
4835         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
4836         * print-rtl.c (print_rtx): Ditto.
4837
4838 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4839
4840         PR middle-end/42694
4841         * builtins.c (expand_builtin_pow_root): New function to expand pow
4842         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
4843         series of sqrt and cbrt calls under -ffast-math.
4844         (expand_builtin_pow): Call it.
4845
4846 2010-04-14  Michael Matz  <matz@suse.de>
4847
4848         PR tree-optimization/42963
4849         * tree-cfg.c (touched_switch_bbs): New static variable.
4850         (group_case_labels_stmt): New function broken out from ...
4851         (group_case_labels): ... here, use the above.
4852         (start_recording_case_labels): Allocate touched_switch_bbs.
4853         (end_recording_case_labels): Deallocate it, call
4854         group_case_labels_stmt.
4855         (gimple_redirect_edge_and_branch): Remember index of affected BB.
4856
4857 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4858
4859         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
4860         from insn template.
4861
4862 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4863
4864         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
4865
4866 2010-04-13  Jan Hubicka  <jh@suse.cz>
4867
4868         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
4869         of optimized out static functions.
4870         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
4871         cost computation.  Also sanity check for overflows.
4872         (update_caller_keys): Update cgraph_edge_badness call; properly
4873         update fibheap and sanity check that it is up to date.
4874         (add_new_edges_to_heap): Update cgraph_edge_badness.
4875         (cgraph_decide_inlining_of_small_function): Likewise;
4876         add sanity checking that badness in heap is up to date;
4877         improve dumping of reason; Update badness of calls to the
4878         offline copy of function currently inlined; dump badness
4879         of functions not inlined because of unit growth limits.
4880
4881 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
4882
4883         PR middle-end/32628
4884         * c-common.c (pointer_int_sum): Disregard overflow that occured only
4885         because of sign-extension change when converting to sizetype here...
4886         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
4887
4888         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
4889         the folding to constants.  Remove redundant final conversion.
4890         (fold_binary) <associate>: Do not associate if the re-association of
4891         constants alone overflows.
4892         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
4893         to the end of the list.
4894         (multiple_of_p) <COND_EXPR>: New case.
4895
4896 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4897
4898         * opt-functions.awk (opt_sanitized_name): New.
4899         (opt_enum): New.
4900         * optc-gen.awk: Use it
4901         * opth-gen.awk: Use it.
4902
4903 2010-04-13  Martin Jambor  <mjambor@suse.cz>
4904
4905         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
4906         (sra_modify_assign): Delete stmts loading dead data even if racc has no
4907         children.  Call replace_uses_with_default_def_ssa_name to handle
4908         SSA_NAES on lhs.
4909
4910 2010-04-13  Michael Matz  <matz@suse.de>
4911
4912         PR middle-end/43730
4913         * builtins.c (expand_builtin_interclass_mathfn): Also create
4914         a register if the predicate doesn't match.
4915
4916 2010-04-13  Diego Novillo  <dnovillo@google.com>
4917
4918         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
4919         * c-pch.c: Include timevar.h.
4920         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
4921         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
4922         * ggc-common.c: Include timevar.h.
4923         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
4924         * timevar.def (TV_PCH_SAVE): Define.
4925         (TV_PCH_CPP_SAVE): Define.
4926         (TV_PCH_PTR_REALLOC): Define.
4927         (TV_PCH_PTR_SORT): Define.
4928         (TV_PCH_RESTORE): Define.
4929         (TV_PCH_CPP_RESTORE): Define.
4930
4931 2010-04-13  Michael Matz  <matz@suse.de>
4932
4933         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
4934         into MINUS_EXPRs.
4935         (can_reassociate_p): New function.
4936         (break_up_subtract_bb, reassociate_bb): Use it.
4937
4938 2010-04-13  Richard Guenther  <rguenther@suse.de>
4939
4940         PR bootstrap/43737
4941         * builtins.c (c_readstr): Fix assert.
4942
4943 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
4944
4945         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
4946         when generating cltd insn.
4947
4948         (*ashl<mode>3_1): Remove special handling for register operand 2.
4949         (*ashlsi3_1_zext): Ditto.
4950         (*ashlhi3_1): Ditto.
4951         (*ashlhi3_1_lea): Ditto.
4952         (*ashlqi3_1): Ditto.
4953         (*ashlqi3_1_lea): Ditto.
4954         (*<shiftrt_insn><mode>3_1): Ditto.
4955         (*<shiftrt_insn>si3_1_zext): Ditto.
4956         (*<shiftrt_insn>qi3_1_slp): Ditto.
4957         (*<rotate_insn><mode>3_1): Ditto.
4958         (*<rotate_insn>si3_1_zext): Ditto.
4959         (*<rotate_insn>qi3_1_slp): Ditto.
4960
4961 2010-04-13  Richard Guenther  <rguenther@suse.de>
4962
4963         * tree-ssa-structalias.c (callused_id): Remove.
4964         (call_stmt_vars): New.
4965         (get_call_vi): Likewise.
4966         (lookup_call_use_vi): Likewise.
4967         (lookup_call_clobber_vi): Likewise.
4968         (get_call_use_vi): Likewise.
4969         (get_call_clobber_vi): Likewise.
4970         (make_transitive_closure_constraints): Likewise.
4971         (handle_const_call): Adjust to do per-call call-used handling.
4972         (handle_pure_call): Likewise.
4973         (find_what_var_points_to): Remove general callused handling.
4974         (init_base_vars): Likewise.
4975         (init_alias_vars): Initialize call_stmt_vars.
4976         (compute_points_to_sets): Process call-used and call-clobbered
4977         vars for call statements.
4978         (delete_points_to_sets): Free call_stmt_vars.
4979
4980 2010-04-13  Richard Guenther  <rguenther@suse.de>
4981
4982         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4983         Only add RW dependence for dependence distance zero.
4984         Adjust maximal vectorization factor according to dependences.
4985         Move alignment handling ...
4986         (vect_find_same_alignment_drs): ... here.  New function.
4987         (vect_analyze_data_ref_dependences): Adjust.
4988         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
4989         (vect_analyze_data_refs): Adjust minimal vectorization factor
4990         according to data references.
4991         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
4992         dependences before determining the vectorization factor.
4993         Analyze alignment after determining the vectorization factor.
4994         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
4995         dependences before alignment.
4996         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
4997         Adjust prototype.
4998         (vect_analyze_data_refs): Likewise.
4999         (MAX_VECTORIZATION_FACTOR): New define.
5000
5001 2010-04-13  Duncan Sands  <baldrick@free.fr>
5002
5003         * except.h (lang_eh_type_covers): Remove.
5004         * except.c (lang_eh_type_covers): Likewise.
5005
5006 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5007             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5008
5009         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5010         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5011         UNITS_PER_LONG where it is ABI relevant.
5012         (s390_return_addr_rtx): Likewise.
5013         (s390_back_chain_rtx): Likewise.
5014         (s390_frame_area): Likewise.
5015         (s390_frame_info): Likewise.
5016         (s390_initial_elimination_offset): Likewise.
5017         (save_gprs): Likewise.
5018         (s390_emit_prologue): Likewise.
5019         (s390_emit_epilogue): Likewise.
5020         (s390_function_arg_advance): Likewise.
5021         (s390_function_arg): Likewise.
5022         (s390_va_start): Likewise.
5023         (s390_gimplify_va_arg): Likewise.
5024         (s390_function_profiler): Likewise.
5025         (s390_optimize_prologue): Likewise.
5026         (s390_rtx_costs): Likewise.
5027         (s390_secondary_reload): Likewise.
5028         (s390_promote_function_mode): Likewise.
5029         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5030         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5031         registers available.
5032         (s390_unwind_word_mode): New function.
5033         (s390_function_value): Split 64 bit values into register pair if
5034         used as return value.
5035         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5036         function call parameters.  Handle parallels.
5037         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5038         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5039         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5040         (s390_expand_setmem): Remove unused variable src_addr.
5041         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5042         deal with 64 bit registers.
5043         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5044         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5045         (UNITS_PER_LONG): New macro.
5046         * libjava/include/s390-signal.h: Define extended ucontext
5047         structure containing the upper halfs of the 64 bit registers.
5048
5049 2010-04-13  Simon Baldwin  <simonb@google.com>
5050
5051         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5052
5053 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5054
5055         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5056         rvalue on the RHS if the LHS is of a non-renamable type.
5057         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5058
5059 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5060
5061         * gcc.c (cc1_options): Handle -iplugindir before processing
5062         the cc1 spec. Only add -iplugindir once.
5063         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5064         found.
5065         * common.opt (iplugindir): Remove `Separate' property, initialize.
5066         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5067         option.
5068         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5069         (distclean): Remove plugin dir.
5070         * doc/invoke.texi: Document -iplugindir.
5071
5072 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5073
5074         * doc/plugins.texi (Loading Plugins): Document short
5075         -fplugin=foo option.
5076         (Plugin API): Mention default_plugin_dir_name function.
5077
5078         * gcc.c (find_file_spec_function): Add new declaration.
5079         (static_spec_func): Use it for "find-file".
5080         (find_file_spec_function): Add new function.
5081         (cc1_options): Add -iplugindir option if -fplugin* options found.
5082
5083         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5084
5085         * plugin.c (add_new_plugin): Updated comment, and handle short
5086         plugin name.
5087         (default_plugin_dir_name): Added new function.
5088
5089         * common.opt (iplugindir): New option to set the plugin directory.
5090
5091 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5092
5093         * config/i386/i386.md (any_rotate): New code iterator.
5094         (rotate_insn): New code attribute.
5095         (rotate): Ditto.
5096         (SWIM124): New mode iterator.
5097         (<rotate_insn>ti3): New expander.
5098         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5099         any_rotate code iterator.
5100         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5101         using any_rotate code iterator and SWIM124 mode iterator.
5102         (ix86_rotlti3): New insn_and_split pattern.
5103         (ix86_rotrti3): Ditto.
5104         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5105         ix86_rotl{di,ti}3 patterns.
5106         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5107         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5108         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5109         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5110         code iterator and SWI mode iterator.
5111         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5112         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5113         code iterator.
5114         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5115         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5116         (bswap rotatert splitter): Add splitter.
5117         (bswap splitter): Macroize splitter using any_rotate code iterator.
5118         Add insn predicate to split only for TARGET_USE_XCHGB or when
5119         optimizing function for size.
5120
5121 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5122
5123         * config/pa/pa.c (emit_move_sequence): Remove use of
5124         deleted variable flag_argument_noalias.
5125
5126 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5127
5128         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5129         configurations.
5130         Add to unsupported targets list.
5131         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5132         sparc*-sun-solaris2.[567]* from target lists.
5133         * configure: Regenerate.
5134         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5135         removal.
5136         Remove Solaris 7 patch references.
5137         (Specific, sparc-sun-solaris2.7): Removed.
5138         (sparc-sun-solaris2*): Update Solaris 7 example.
5139         (sparc64-*-solaris2*): Likewise.
5140
5141 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5142
5143         * config.build (alpha*-dec-osf4*): Remove.
5144         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5145         of obsolete configurations.
5146         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5147         support.
5148         * config/alpha/t-osf4: Renamed to ...
5149         * config/alpha/t-osf5: ... this.
5150         * config/alpha/osf.h: Renamed to ...
5151         * config/alpha/osf5.h: ... this.
5152         Merged old osf5.h contents.
5153         Update comments.
5154         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5155         (EXTRA_SPECS): Removed.
5156         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5157         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5158         Document that.
5159
5160 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5161
5162         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5163
5164 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5165
5166         PR/43702
5167         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5168         __thiscall convention.
5169
5170 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5171
5172         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5173         orig_base.
5174         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5175
5176 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5177
5178         * function.c (assign_parms_initialize_all): Add unused attribute
5179         to fntype.
5180
5181 2010-04-12  Richard Guenther  <rguenther@suse.de>
5182
5183         * gsstruct.def (GSS_CALL): New.
5184         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5185         * gimple.h: Include tree-ssa-alias.h.
5186         (struct gimple_statement_call): New.
5187         (union gimple_statement_struct_d): Add gimple_call member.
5188         (gimple_call_reset_alias_info): Declare.
5189         (gimple_call_use_set): New function.
5190         (gimple_call_clobber_set): Likewise.
5191         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5192         * gimple.c (gimple_call_reset_alias_info): New function.
5193         (gimple_build_call_1): Call it.
5194         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5195         * tree-inline.c (remap_gimple_stmt): Likewise.
5196         (expand_call_inline): Remove callused handling.
5197         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5198         * tree-dfa.c (dump_variable): Likewise.
5199         * tree-parloops.c (parallelize_loops): Likewise.
5200         * tree-ssa.c (init_tree_ssa): Likewise.
5201         (delete_tree_ssa): Likewise.
5202         * tree-flow-inline.h (is_call_used): Remove.
5203         * tree-flow.h (struct gimple_df): Remove callused member.
5204         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5205         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5206         (ref_maybe_used_by_call_p_1): Simplify.
5207         (call_may_clobber_ref_p_1): Likewise.
5208         * tree-ssa-structalias.c (compute_points_to_sets): Set
5209         the call stmt used and clobbered sets.
5210         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5211         (find_tail_calls): Verify the tail call.
5212
5213 2010-04-12  Richard Guenther  <rguenther@suse.de>
5214
5215         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5216         single-iteration always-inline inlining.
5217         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5218         (cgraph_decide_inlining): Do not handle always-inline specially.
5219         (try_inline): Remove always-inline cycle detection special case.
5220         Do not recurse on always-inlines.
5221         (cgraph_early_inlining): Do not iterate if not optimizing.
5222         (cgraph_gate_early_inlining): remove.
5223         (pass_early_inline): Run unconditionally.
5224         (gate_cgraph_decide_inlining): New function.
5225         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5226         not inlining or optimizing.
5227         (cgraph_decide_inlining_of_small_functions): Also consider
5228         always-inline functions.
5229         (cgraph_default_inline_p): Return true for nodes which should
5230         disregard inline limits.
5231         (estimate_function_body_sizes): Assume zero size and time for
5232         nodes which are marked as disregarding inline limits.
5233         (cgraph_decide_recursive_inlining): Do not perform recursive
5234         inlining on always-inline nodes.
5235
5236 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5237
5238         PR bootstrap/43699
5239         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5240         for exprs satisfying handled_component_p.
5241
5242 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5243
5244         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5245         non-constant aggregate elements.
5246
5247         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5248         is a real initialization.
5249
5250 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5251
5252         PR c/36774
5253         * c-decl.c (start_function): Move forward check for nested function.
5254
5255 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5256
5257         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5258         * config/sh/sh.c: Include reload.h.
5259         (sh_legitimize_reload_address): New.
5260         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5261         sh_legitimize_reload_address.
5262
5263 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5264
5265         * config/sh/sh.md (*movqi_pop): New insn pattern.
5266         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5267
5268 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5269
5270         * config/i386/i386.md (any_shiftrt): New code iterator.
5271         (shiftrt_insn): New code attribute.
5272         (shiftrt): Ditto.
5273         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5274         using any_shiftrt code iterator.
5275         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5276         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5277         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5278         pattern from corresponding peephole2 patterns.
5279         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5280         using any_shiftrt code iterator.
5281         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5282         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5283         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5284         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5285         *{ashr,lshr}<mode>3_cmp_zext.
5286         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5287
5288 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5289
5290         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5291         scratch register.
5292         (*lshr<mode>3_cconly): Ditto.
5293
5294 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5295
5296         * config/i386/i386.md (lshr<mode>3): Macroize expander from
5297         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5298         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5299         pattern from *lshr{di,ti}3_1 and corresponding splitters using
5300         DWI mode iterator.
5301         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5302         from corresponding peephole2 patterns.
5303         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5304         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5305         and *lshrdi3_1_rex64 using SWI mode iterator.
5306         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
5307         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5308         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5309         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5310         and *lshrdi3_cmp_rex64 using SWI mode iterator.
5311         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5312         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5313         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
5314         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
5315         SWI mode iterator.
5316
5317 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
5318
5319         * config/i386/i386.md (ashr<mode>3): Macroize expander from
5320         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5321         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5322         pattern from *ashr{di,ti}3_1 and corresponding splitters using
5323         DWI mode iterator.
5324         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5325         from corresponding peephole2 patterns.
5326         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
5327         (ashrsi3_cvt): Rename from ashrsi3_31.
5328         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
5329         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
5330         and x86_64_shift_adj_3 using SWI48 mode iterator.
5331         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
5332         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
5333         and *ashrdi3_1_rex64 using SWI mode iterator.
5334         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
5335         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
5336         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
5337         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
5338         and *ashrdi3_cmp_rex64 using SWI mode iterator.
5339         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
5340         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
5341         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
5342         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
5343         SWI mode iterator.
5344         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
5345         * config/i386/i386.c (ix86_split_ashr): Update for renamed
5346         x86_shift<mode>_adj_3 expanders.
5347
5348 2010-04-10  Wei Guozhi  <carrot@google.com>
5349
5350         PR target/42601
5351         * config/arm/arm.c (arm_pic_static_addr): New function.
5352         (legitimize_pic_address): Call arm_pic_static_addr when it detects
5353         a static symbol.
5354         (arm_output_addr_const_extra): Output expression for new pattern.
5355         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
5356
5357 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
5358
5359         * ira-costs.c (record_reg_classes): Ignore alternatives that are
5360         not enabled.
5361
5362         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
5363         * web.c: Include "insn-config.h" and "recog.h".
5364         (union_match_dups): New function.
5365         (web_main): Call it.
5366         (union_defs): Don't try to recognize match_dups.
5367
5368         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
5369         if doing so would replace the entire pattern.
5370
5371 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
5372
5373         PR target/43707
5374         PR target/43709
5375         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
5376         and splitter pattern.  Change splitter operand 1 predicate to
5377         nonmemory_operand.
5378
5379 2010-04-09  Martin Jambor  <mjambor@suse.cz>
5380
5381         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
5382         lattices are addresses of CONST_DECLs with the same initial value.
5383         (ipcp_print_all_lattices): Print values of CONST_DECLs.
5384         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
5385
5386 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
5387             Bernd Schmidt  <bernds@codesourcery.com>
5388
5389         * loop-invariant.c (replace_uses): New static function.
5390         (move_invariant_reg): Use it to ensure we can replace the uses.
5391
5392 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
5393
5394         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
5395         function template.
5396         (picochip_override_options): Enable section anchors only above -O1.
5397         (picochip_reorg): Fixed a couple of build warnings.
5398
5399 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5400
5401         * configure.ac (plugin -rdynamic test): Log result.
5402         * configure: Regenerate.
5403         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
5404         (RDYNAMIC_SPEC): Define.
5405         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
5406
5407 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5408
5409         * configure.ac: Determine Sun ld version numbers.
5410         (comdat_group): Restrict GNU ld version checks to gld.
5411         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
5412         (enable_comdat): Support --enable-comdat.
5413         * configure: Regenerate.
5414         * doc/install.texi (Configuration): Document --enable-comdat.
5415
5416 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5417
5418         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
5419         * config/sol2-gld.h: ... here.
5420         * config.gcc (sparc*-*-solaris2*): Reflect this.
5421         (i[34567]86-*-solaris2*): Use it.
5422
5423 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
5424
5425         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
5426         setup_clocks_p.
5427         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
5428
5429 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5430
5431         PR 42965
5432         * diagnostic.c (diagnostic_initialize): Initialize
5433         some_warnings_are_errors.
5434         (diagnostic_finish): New.
5435         (diagnostic_action_after_output): Call it before exiting.
5436         (diagnostic_report_diagnostic): Do not print message here. Set
5437         some_warnings_are_errors.
5438         * diagnostic.h (diagnostic_context): Delete
5439         issue_warnings_are_errors_message. Add some_warnings_are_errors.
5440         (diagnostic_finish): Declare.
5441         * toplev.c (toplev_main): Call it before exit.
5442
5443 2010-04-09  Jason Merrill  <jason@redhat.com>
5444
5445         PR c++/42623
5446         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
5447         for incomplete type.
5448
5449         PR c++/41788
5450         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
5451         based on a warning flag.
5452
5453 2010-04-09  Richard Guenther  <rguenther@suse.de>
5454
5455         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
5456
5457 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
5458
5459         PR bootstrap/43684
5460         * varasm.c (default_assemble_visibility): Wrap vars that are
5461         set, but unused, by targets without GAS.
5462         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
5463         Remove set, but unused, vars.
5464         (rs6000_legitimize_tls_address): Likewise.
5465         (altivec_expand_dst_builtin): Likewise.
5466         * config/darwin.c (machopic_classify_symbol): Likewise.
5467         (machopic_indirection_name): Likewise.
5468
5469 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
5470
5471         * config/i386/i386.md (DWI): New mode iterator.
5472         (S): New mode attribute.
5473         (shift_operand): Ditto.
5474         (shift_immediate_operand): Ditto.
5475         (ashl_input_operand): Ditto.
5476         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
5477         using SDWIM mode iterator.
5478         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5479         pattern from *ashl{di,ti}3_1 and corresponding splitters using
5480         DWI mode iterator.
5481         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
5482         from corresponding peephole2 patterns.
5483         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
5484         and x86_64_shift_adj_1 using SWI48 mode iterator.
5485         (x86_shift<mode>_adj_2): Ditto.
5486         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
5487         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
5488         using SWI48 mode iterator.
5489         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
5490         *ashldi3_cmp_rex64 using SWI mode iterator.
5491         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
5492         *ashldi3_cconly_rex64 using SWI mode iterator.
5493         * config/i386/i386.c (ix86_split_ashl): Update for renamed
5494         x86_shift<mode>_adj_{1,2}.
5495         (ix86_split_ashr): Ditto.
5496         (ix86_split_lshr): Ditto.
5497
5498 2010-04-09  Richard Guenther  <rguenther@suse.de>
5499
5500         * target.h (builtin_conversion): Pass in input and output types.
5501         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
5502         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
5503         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
5504         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
5505
5506         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
5507         Handle AVX modes.
5508         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
5509
5510 2010-04-09  Richard Guenther  <rguenther@suse.de>
5511
5512         PR target/43152
5513         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
5514
5515 2010-04-09  Richard Guenther  <rguenther@suse.de>
5516
5517         * tree-vectorizer.h (struct _stmt_vec_info): Document
5518         that vectype is the type of the LHS.
5519         (supportable_widening_operation, supportable_narrowing_operation):
5520         Get both input and output vector types as arguments.
5521         (vect_is_simple_use_1): Declare.
5522         (get_same_sized_vectype): Likewise.
5523         * tree-vect-loop.c (vect_determine_vectorization_factor):
5524         Set STMT_VINFO_VECTYPE to the vector type of the def.
5525         (vectorizable_reduction): Adjust.
5526         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
5527         Adjust.  Specify the output vector type.
5528         (vect_pattern_recog_1): Adjust.
5529         * tree-vect-stmts.c (get_same_sized_vectype): New function.
5530         (vectorizable_call): Adjust.
5531         (vectorizable_conversion): Likewise.
5532         (vectorizable_operation): Likewise.
5533         (vectorizable_type_demotion): Likewise.
5534         (vectorizable_type_promotion): Likewise.
5535         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
5536         the def.
5537         (vect_is_simple_use_1): New function.
5538         (supportable_widening_operation): Get both input and output
5539         vector types.
5540         (supportable_narrowing_operation): Likewise.
5541         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
5542
5543 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
5544
5545         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
5546         __thiscall and _thiscall as predefined macros.
5547         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
5548         thiscall attribute handling.
5549         (ix86_comp_type_attributes): Likewise.
5550         (ix86_function_regparm): Likewise.
5551         (ix86_return_pops_args): Likewise.
5552         (init_cumulative_args): Likewise.
5553         (find_drap_reg): Likewise.
5554         (ix86_static_chain): Likewise.
5555         (x86_this_parameter): Likewise.
5556         (x86_output_mi_thunk): Likewise.
5557         (ix86_attribute_table): Add description for thiscall attribute.
5558         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
5559         * doc/extend.texi: Add documentation for thiscall.
5560
5561 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5562
5563         PR c++/28584
5564         * c.opt (Wint-to-pointer-cast): Available in C++.
5565         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
5566
5567 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5568
5569         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
5570         * calls.c (expand_call): Pass the function type to aggregate_value_p.
5571         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
5572         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
5573         function type instead.  Reorder and simplify checks.
5574
5575         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
5576
5577 2010-04-08  Jing Yu  <jingyu@google.com>
5578             Zdenek Dvorak  <ook@ucw.cz>
5579
5580         PR tree-optimization/42720
5581         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
5582         loop unswitch conditions here from ...
5583         (tree_unswitch_single_loop): ... here.
5584
5585 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5586
5587         * tree-if-conv.c: Fix comments and simplify logic.
5588
5589 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5590
5591         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
5592         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
5593         (main_tree_if_conversion): Update call to tree_if_conversion.
5594
5595 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5596
5597         PR 42485
5598         * doc/invoke.texi (-b,-V): Delete.
5599         * doc/tm.texi: Do not mention -b.
5600         * gcc.c (display_help): Delete -b and -V.
5601         (process_command): Delete -b and -V.
5602         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
5603
5604 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
5605             Wolfgang Gellerich  <gellerich@de.ibm.com>
5606
5607         Implement target hook for loop unrolling
5608         * target.h (loop_unroll_adjust): Add a new target hook function.
5609         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
5610         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
5611         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
5612         (s390_loop_unroll_adjust): Implement the new target hook for s390.
5613         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
5614         target hook.
5615         (decide_unroll_stupid): Likewise.
5616
5617 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5618
5619         PR target/43643
5620         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
5621
5622 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5623
5624         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
5625         (Specific, *-*-solaris2*): Likewise.
5626         Don't prefer Sun as over GNU as.
5627
5628 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
5629
5630         * config/s390/s390.c (override_options): Adjust the z10 defaults
5631         for max-unroll-times, max-completely-peeled-insns
5632         and max-completely-peel-times.
5633
5634 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5635
5636         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
5637         instructions for z10.
5638         (s390_expand_setmem): Likewise.
5639         (s390_expand_cmpmem): Likewise.
5640
5641 2010-04-08  Richard Guenther  <rguenther@suse.de>
5642
5643         PR tree-optimization/43679
5644         * tree-ssa-pre.c (eliminate): Only propagate copies.
5645
5646 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
5647
5648         PR bootstrap/43681
5649         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
5650         set but not used variable warning.
5651
5652 2010-04-08  Wei Guozhi  <carrot@google.com>
5653
5654         PR target/41653
5655         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
5656         (arm_size_rtx_costs): Call the new function when optimized for size.
5657
5658 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
5659
5660         PR debug/43670
5661         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
5662         op0 is not a MEM, just return NULL instead of assertion
5663         failure.
5664         (discover_nonconstant_array_refs): Don't walk debug stmts.
5665
5666 2010-04-08  Doug Kwan  <dougkwan@google.com>
5667
5668         * configure.ac: Recognize gold and do not use its version number
5669         to test ld features.
5670         * configure: Regenerate.
5671
5672 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
5673
5674         PR middle-end/40815
5675         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
5676         (negate_value): Move code to push elements to broken_up_substracts ...
5677         (eliminate_plus_minus_pair): ... here.  Push operands that have no
5678         negative pair to plus_negates.
5679         (repropagate_negates, init_reassoc, fini_reassoc): Update.
5680
5681 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5682
5683         * doc/install.texi (Configuration): Move description of
5684         --enable-lto, --with-libelf*, --enable-gold from Java section to
5685         general section.
5686
5687         * doc/generic.texi (Working with declarations)
5688         (Function Properties, C and C++ Trees): Fix typos.
5689         * doc/sourcebuild.texi (Top Level): Likewise.
5690
5691 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
5692
5693         PR c/18624
5694         * tree.h (DECL_READ_P): Define.
5695         (struct tree_decl_common): Add decl_read_flag.
5696         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
5697         a set but not used warning.
5698         (merge_decls): Merge DECL_READ_P flag.
5699         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
5700         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
5701         * c-common.c (handle_used_attribute, handle_unused_attribute):
5702         Likewise.
5703         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
5704         New prototypes.
5705         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
5706         New functions.
5707         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
5708         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
5709         c_parser_binary_expression, c_parser_cast_expression,
5710         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
5711         Call default_function_array_read_conversion instead of
5712         default_function_array_conversion where needed.
5713         (c_parser_unary_expression, c_parser_conditional_expression,
5714         c_parser_postfix_expression_after_primary, c_parser_initelt):
5715         Likewise.  Call mark_exp_read where needed.
5716         (c_parser_statement_after_labels, c_parser_asm_operands,
5717         c_parser_typeof_specifier, c_parser_sizeof_expression,
5718         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
5719         where needed.
5720         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
5721         New.
5722         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
5723         (warn_unused_but_set_parameter): Default to warn_unused
5724         && extra_warnings.
5725         * doc/invoke.texi: Document -Wunused-but-set-variable and
5726         -Wunused-but-set-parameter.
5727
5728         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
5729         used count variable.
5730         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
5731         when operandN variables aren't used in the body of the expander
5732         or splitter.
5733         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
5734         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
5735         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
5736         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
5737         FOR_EACH_IMM_USE_ON_STMT): Likewise.
5738         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
5739         * tree.c (PROCESS_ARG): Likewise.
5740
5741 2010-04-07  Simon Baldwin  <simonb@google.com>
5742
5743         * diagnostic.h (diagnostic_override_option_index): New macro to
5744         set a diagnostic's option_index.
5745         * c-tree.h (c_cpp_error): Add warning reason argument.
5746         * opts.c (_warning_as_error_callback): New.
5747         (register_warning_as_error_callback): Store callback for
5748         warnings enabled via enable_warning_as_error.
5749         (enable_warning_as_error): Call callback, minor code tidy.
5750         * opts.h (register_warning_as_error_callback): Declare.
5751         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
5752         response to -Werror=.
5753         (c_common_init_options): Register warning_as_error_callback in opts.c.
5754         * common.opt: Add -Wno-cpp option.
5755         * c-common.c (struct reason_option_codes_t): Map cpp warning
5756         reason codes to gcc option indexes.
5757         * (c_option_controlling_cpp_error): New function, lookup the gcc
5758         option index for a cpp warning reason code.
5759         * (c_cpp_error): Add warning reason argument, call
5760         c_option_controlling_cpp_error for diagnostic_override_option_index.
5761         * doc/invoke.texi: Document -Wno-cpp.
5762
5763 2010-04-07  Richard Guenther  <rguenther@suse.de>
5764
5765         * ipa-reference.c (mark_load): Use get_base_address.
5766         (mark_store): Likewise.
5767
5768         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
5769         inserting GIMPLE_NOPs into the IL.
5770         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5771         Explicitly strip handled components and indirect references.
5772
5773         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
5774         folding address expressions.
5775         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
5776         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
5777         operand_equal_p to compare decls.
5778         (ptr_deref_may_alias_decl_p): Likewise.
5779         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
5780         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
5781         Handle reversed comparison ops.
5782         * tree-sra.c (asm_visit_addr): Use get_base_address.
5783         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
5784         * ipa-reference.c (mark_address): Use get_base_address.
5785
5786 2010-04-07  Richard Guenther  <rguenther@suse.de>
5787
5788         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
5789         Propagate constants everywhere.
5790
5791 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
5792
5793         PR debug/43516
5794         * tree.c (MAX_INT_CACHED_PREC): Define.
5795         (nonstandard_integer_type_cache): New array.
5796         (build_nonstandard_integer_type): Cache results for precision
5797         <= MAX_INT_CACHED_PREC.
5798
5799 2010-04-07  Richard Guenther  <rguenther@suse.de>
5800
5801         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
5802         -fargument-noalias-global, -fargument-noalias-anything): Remove.
5803         * common.opt: Likewise.
5804         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
5805         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
5806         (nonoverlapping_memrefs_p): Likewise.
5807         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5808         * opts.c (common_handle_option): Handle OPT_fargument_alias,
5809         OPT_fargument_noalias, OPT_fargument_noalias_anything and
5810         OPT_fargument_noalias_global for backward compatibility.
5811
5812 2010-04-07  Richard Guenther  <rguenther@suse.de>
5813
5814         PR tree-optimization/43270
5815         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
5816         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
5817         * tree-ssa-pre.c (phi_translate_1): Adjust.
5818         (fully_constant_expression): Split out vn_reference handling to ...
5819         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
5820         Fold reads from constant strings.
5821         (vn_reference_lookup): Handle fully constant references.
5822         (vn_reference_lookup_pieces): Likewise.
5823         * Makefile.in (expmed.o-warn): Add -Wno-error.
5824
5825 2010-04-07  Martin Jambor  <mjambor@suse.cz>
5826
5827         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
5828
5829 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
5830
5831         PR driver/41594
5832         * gcc.c: Add -static-libstdc++ to list of recognized options.
5833
5834 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5835
5836         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
5837
5838 2010-04-07  Richard Guenther  <rguenther@suse.de>
5839
5840         PR middle-end/42617
5841         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
5842         bases build simple mem attributes to retain points-to information.
5843
5844 2010-04-07  Richard Guenther  <rguenther@suse.de>
5845
5846         PR middle-end/42617
5847         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
5848         preserve points-to related information.
5849
5850 2010-04-07  Richard Guenther  <rguenther@suse.de>
5851
5852         PR middle-end/42617
5853         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
5854         discard plain indirect references.
5855         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
5856         * tree.c (tree_nop_conversion): Likewise.
5857
5858 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
5859
5860         PR debug/43628
5861         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
5862
5863 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
5864
5865         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
5866         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
5867
5868 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5869
5870         * tree-if-conv.c: Fix indentation and comments.
5871
5872 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5873
5874         * tree-if-conv.c: Sort static functions in topological order.
5875
5876 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5877
5878         * tree-if-conv.c: Fix indentation and comments.
5879
5880 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5881
5882         PR middle-end/43519
5883         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
5884         lang_hooks.types.type_for_size instead of
5885         build_nonstandard_integer_type.
5886         When converting an unsigned type to signed, double its precision.
5887         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
5888         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
5889         (graphite_create_new_loop_guard): When ub + 1 wraps around,
5890         use lb <= ub.
5891
5892 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5893
5894         PR middle-end/43519
5895         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
5896         POINTER_PLUS_EXPR for pointer types.
5897
5898 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5899
5900         PR middle-end/43519
5901         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
5902         * graphite-clast-to-gimple.c: Include langhooks.h.
5903         (max_signed_precision_type): New.
5904         (max_precision_type): Takes two types as arguments.
5905         (precision_for_value): New.
5906         (precision_for_interval): New.
5907         (gcc_type_for_interval): New.
5908         (gcc_type_for_value): New.
5909         (gcc_type_for_clast_term): New.
5910         (gcc_type_for_clast_red): New.
5911         (gcc_type_for_clast_bin): New.
5912         (gcc_type_for_clast_expr): Split up into several functions.
5913         (gcc_type_for_clast_eq): Rewritten.
5914         (compute_bounds_for_level): New.
5915         (compute_type_for_level_1): New.
5916         (compute_type_for_level): New.
5917         (gcc_type_for_cloog_iv): Removed.
5918         (gcc_type_for_iv_of_clast_loop): Rewritten.
5919         (graphite_create_new_loop): Compute the lower and upper bound types
5920         with gcc_type_for_clast_expr.
5921         (graphite_create_new_loop_guard): Same.
5922         (find_cloog_iv_in_expr): Removed.
5923         (compute_cloog_iv_types_1): Removed.
5924         (compute_cloog_iv_types): Removed.
5925         (gloog): Do not call compute_cloog_iv_types.
5926         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
5927         GBB_CLOOG_IV_TYPES.
5928         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
5929         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
5930         (GBB_CLOOG_IV_TYPES): Removed.
5931
5932 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5933
5934         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
5935         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
5936         (detect_commutative_reduction): Same.
5937
5938 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5939
5940         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
5941         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
5942         argument.
5943         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
5944         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
5945         (rewrite_commutative_reductions_out_of_ssa): Same.
5946         * passes.c (execute_function_todo): Call verify_ssa for every pass
5947         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
5948         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
5949         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
5950         with an extra argument.
5951         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
5952         verify_ssa only when the extra argument is true.
5953         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
5954         with an extra argument.
5955         (tree_transform_and_unroll_loop): Same.
5956
5957 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5958
5959         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
5960         for all the passes of the LNO having LOOP_CLOSED_SSA.
5961         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
5962         * tree-loop-distribution.c (pass_loop_distribution): Same.
5963         * tree-pass.h (TODO_verify_loops): Removed.
5964         * tree-ssa-loop.c (pass_tree_loop_init): Same.
5965         (pass_lim): Same.
5966         (pass_tree_unswitch): Same.
5967         (pass_predcom): Same.
5968         (pass_vectorize): Same.
5969         (pass_linear_transform): Same.
5970         (pass_graphite_transforms): Same.
5971         (pass_iv_canon): Same.
5972         (pass_complete_unroll): Same.
5973         (pass_complete_unrolli): Same.
5974         (pass_parallelize_loops): Same.
5975         (pass_loop_prefetch): Same.
5976         (pass_iv_optimize): Same.
5977
5978 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
5979
5980         PR middle-end/32824
5981         * passes.c (init_optimization_passes): Move pass_lim before
5982         pass_copy_prop and pass_dce_loop.
5983
5984 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR target/43667
5987         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
5988         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
5989         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
5990         MULTI_* defines for 4 argument vpermil2p* builtins.
5991
5992 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
5993
5994         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
5995         * config/i386/i386.c (x86_maybe_negate_const_int): New.
5996         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
5997         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
5998         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
5999         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6000         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6001         Use x86_maybe_negate_const_int to output insn mnemonic.
6002         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6003         check from instruction predicate.  Update comments.
6004         * config/i386/sync.md (sync_add<mode>): Use
6005         x86_maybe_negate_const_int to output insn mnemonic.
6006
6007 2010-04-06  Jan Hubicka  <jh@suse.cz>
6008
6009         PR tree-optimization/42906
6010         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6011         IGNORE_SELF argument.  Set visited_control_parents for fully
6012         processed BBs.
6013         (find_obviously_necessary_stmts): Update call of
6014         mark_control_dependent_edges_necessary.
6015         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6016
6017 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6018
6019         * config/i386/i386.md: Remove comment about 'e' and 'E'
6020         operand modifier.
6021
6022 2010-04-06  Richard Guenther  <rguenther@suse.de>
6023
6024         PR tree-optimization/43627
6025         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6026         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6027         not varying.
6028
6029 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6030
6031         * BASE-VER: Change to 4.6.0.
6032
6033         PR target/43638
6034         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6035         handling.
6036
6037 2010-04-06  Richard Guenther  <rguenther@suse.de>
6038
6039         PR middle-end/43661
6040         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6041
6042 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6043
6044         * doc/invoke.texi (Optimize Options): Document that LTO
6045         won't remove object access purely due to incompatible
6046         declarations.
6047
6048 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6049
6050         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6051         Initialize variable.
6052
6053 2010-04-03  Richard Guenther  <rguenther@suse.de>
6054
6055         PR middle-end/42509
6056         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6057         require a non-NULL MEM_OFFSET.
6058
6059 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6060
6061         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6062         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6063         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6064         config/alpha/predicates.md, config/arm/arm.md,
6065         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6066         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6067         config/darwin9.h, config/darwin.c, config/darwin.h,
6068         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6069         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6070         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6071         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6072         config/mips/mips.md, config/mn10300/mn10300.c,
6073         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6074         config/rs6000/aix.h, config/rs6000/dfp.md,
6075         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6076         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6077         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6078         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6079         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6080         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6081         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6082         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6083         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6084         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6085         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6086         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6087         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6088         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6089         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6090         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6091         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6092         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6093         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6094         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6095         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6096         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6097         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6098         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6099         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6100         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6101         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6102         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6103         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6104         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6105         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6106         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6107         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6108         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6109         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6110         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6111
6112 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6113
6114         PR other/43620
6115         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6116         * aclocal.m4: Regenerate.
6117
6118 2010-04-02  Richard Guenther  <rguenther@suse.de>
6119
6120         PR tree-optimization/43629
6121         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6122         if we have seen a constant value.
6123
6124 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6125
6126         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6127
6128 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6129
6130         PR target/43469
6131         * arm.c (legitimize_tls_address): Adjust call to
6132         gen_tls_load_dot_plus_four.
6133         (arm_note_pic_base): New function.
6134         (arm_cannot_copy_insn_p): Use it.
6135         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6136         constraint.
6137
6138 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6139
6140         PR bootstrap/43531
6141
6142         Revert:
6143         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6144
6145         * Makefile.in ($(out_object_file)): Depend on
6146         gt-$(basename $(notdir $(out_file))).h.
6147
6148 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6149
6150         * config.gcc (lm32-*-rtems*): Add t-lm32.
6151
6152 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6153
6154         * config.gcc: Add lm32-*-rtems*.
6155         * config/lm32/rtems.h: New file.
6156
6157 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6158
6159         PR target/42609
6160         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6161
6162 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6163
6164         * dwarf2out.c (output_compilation_unit_header): For
6165         -gdwarf-4 use version 4 instead of version 3.
6166         (output_line_info): For version 4 and above emit additional
6167         maximum ops per insn header field.
6168         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6169
6170         * dwarf2out.c (is_c_family, is_java): Remove.
6171         (lower_bound_default): New function.
6172         (add_bound_info, gen_descr_array_type_die): Use it.
6173
6174 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6175
6176         PR debug/43325
6177         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6178         re-declaration when it happens in a function.
6179
6180 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6181
6182         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6183         (cgraph_remove_function_insertion_hook): Same.
6184         (cgraph_call_function_insertion_hooks): Same.
6185
6186 2010-04-01  Richard Guenther  <rguenther@suse.de>
6187
6188         PR middle-end/43614
6189         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6190         and TREE_THIS_VOLATILE.
6191         (copy_ref_info): Likewise.
6192         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6193         * tree.c (build6_stat): Ignore side-effects of all but arg5
6194         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6195         TARGET_MEM_REF.
6196
6197 2010-04-01  Richard Guenther  <rguenther@suse.de>
6198
6199         PR tree-optimization/43607
6200         * ipa-type-escape.c (check_call): Do not access non-existing
6201         arguments.
6202
6203 2010-04-01  Richard Guenther  <rguenther@suse.de>
6204
6205         PR middle-end/43602
6206         Revert
6207         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6208                     Jack Howarth <howarth@bromo.med.uc.edu>
6209
6210         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6211         variables TLS.
6212
6213 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6214
6215         * doc/install.texi (Prerequisites): Document libelf usability on
6216         IRIX 5/6 and Solaris 2.
6217         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6218         Update GNU as, GNU ld requirements.
6219         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6220         Document Sun Studio compiler download.
6221         Update and simplify as, ld recommendations.
6222         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6223
6224 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6225
6226         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6227         with_tune_32 to pentium4.
6228
6229 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6230
6231         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6232
6233 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6234
6235         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6236         obsoletion, removal.
6237         Update IDO URL.
6238         Document GNU as requirement.
6239         Update configure requirements.
6240         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6241         Recomment IRIX 6.5.18+.
6242         Document IDF/IDL requirement.
6243         Document GNU as requirement.
6244         Document GNU ld bootstrap failure.
6245         Remove freeware.sgi.com reference.
6246
6247 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6248
6249         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6250         UNIX V4.0, V5.0 obsoletion, removal.
6251         Remove --with-gc=simple reference.
6252         Update VM requirements during bootstrap.
6253         Remove -oldas bootstrap description.
6254         Update binutils reference.
6255         Remove comparison failure note.
6256
6257 2010-03-31  Richard Guenther  <rguenther@suse.de>
6258             Zdenek Dvorak  <ook@ucw.cz>
6259             Sebastian Pop  <sebastian.pop@amd.com>
6260
6261         PR middle-end/43464
6262         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6263         with multiple arguments.
6264         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6265
6266 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6267
6268         * graphite-dependences.c (print_pddr): Call print_pdr with an
6269         extra argument.
6270         * graphite-poly.c (debug_pdr): Add an extra argument for the
6271         verbosity level.
6272         (print_pdr): Same.
6273         (print_pbb_domain): Same.
6274         (print_pbb): Same.
6275         (print_scop_context): Same.
6276         (print_scop): Same.
6277         (print_cloog): Same.
6278         (debug_pbb_domain): Same.
6279         (debug_pbb): Same.
6280         (print_pdrs): Same.
6281         (debug_pdrs): Same.
6282         (debug_scop_context): Same.
6283         (debug_scop): Same.
6284         (debug_cloog): Same.
6285         (print_scop_params): Same.
6286         (debug_scop_params): Same.
6287         (print_iteration_domain): Same.
6288         (print_iteration_domains): Same.
6289         (debug_iteration_domain): Same.
6290         (debug_iteration_domains): Same.
6291         (print_scattering_function): Same.
6292         (print_scattering_functions): Same.
6293         (debug_scattering_function): Same.
6294         (debug_scattering_functions): Same.
6295         * graphite-poly.h (debug_pdr): Update declaration.
6296         (print_pdr): Same.
6297         (print_pbb_domain): Same.
6298         (print_pbb): Same.
6299         (print_scop_context): Same.
6300         (print_scop): Same.
6301         (print_cloog): Same.
6302         (debug_pbb_domain): Same.
6303         (debug_pbb): Same.
6304         (print_pdrs): Same.
6305         (debug_pdrs): Same.
6306         (debug_scop_context): Same.
6307         (debug_scop): Same.
6308         (debug_cloog): Same.
6309         (print_scop_params): Same.
6310         (debug_scop_params): Same.
6311         (print_iteration_domain): Same.
6312         (print_iteration_domains): Same.
6313         (debug_iteration_domain): Same.
6314         (debug_iteration_domains): Same.
6315         (print_scattering_function): Same.
6316         (print_scattering_functions): Same.
6317         (debug_scattering_function): Same.
6318         (debug_scattering_functions): Same.
6319
6320 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6321
6322         * graphite-poly.c (print_scattering_function_1): New.
6323         (print_scattering_function): Call it.
6324         (print_scop_params): Remove spaces at the end of lines.
6325         (print_cloog): New.
6326         (debug_cloog): New.
6327         * graphite-poly.h (print_cloog): Declared.
6328         (debug_cloog): Declared.
6329
6330 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6331
6332         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
6333         in loop->header.
6334         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
6335         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
6336         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
6337         to switch between adding the IV bump in loop->latch or in loop->header.
6338
6339 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6340
6341         * graphite-poly.c (print_scattering_function): Pretty print following
6342         the scoplib format.
6343         (print_pdr): Same.
6344         (print_pbb_domain): Same.
6345         (dump_gbb_cases): Same.
6346         (dump_gbb_conditions): Same.
6347         (print_pdrs): Same.
6348         (print_pbb): Same.
6349         (print_scop_params): Same.
6350         (print_scop_context): Same.
6351         (print_scop): Same.
6352         (print_pbb_body): New.
6353         (lst_indent_to): New.
6354         (print_lst): Start new lines with a #.
6355         * graphite-poly.h (pbb_bb): New.
6356         (pbb_index): Use pbb_bb.
6357         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
6358         disjuncts.
6359         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
6360
6361 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6362
6363         * dwarf2out.c (size_of_die): For -gdwarf-4 use
6364         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
6365         and 0 instead of 1 for dw_val_class_flag.
6366         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
6367         dw_val_class_range_list, dw_val_class_loc_list,
6368         dw_val_class_lineptr and dw_val_class_macptr, use
6369         DW_FORM_flag_present for dw_val_class_flag and
6370         DW_FORM_exprloc for dw_val_class_loc.
6371         (output_die): For -gdwarf-4 print dw_val_class_loc
6372         size as uleb128 instead of 1 or 2 bytes and don't print
6373         anything for dw_val_class_flag.
6374
6375         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
6376         instead of cselib_lookup following by tweaking locs->setting_insn.
6377
6378         PR bootstrap/43596
6379         * cselib.c (cselib_process_insn): Clear cselib_current_insn
6380         even before returning from label, setjmp call or volatile asm
6381         handling.
6382
6383 2010-03-31  Richard Guenther  <rguenther@suse.de>
6384
6385         PR middle-end/43600
6386         * cgraphunit.c (cgraph_output_in_order): Do not allocate
6387         temporary data on stack.
6388
6389 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6390
6391         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
6392         (PUSHSECTION_ASM_OP): Remove.
6393         (POPSECTION_ASM_OP): Remove.
6394         (PUSHSECTION_FORMAT): Remove.
6395         * config/sol2.h (PUSHSECTION_FORMAT): Define.
6396         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
6397         * config/sol2.c (solaris_output_init_fini): Use it.
6398
6399 2010-03-31  Jie Zhang  <jie@codesourcery.com>
6400
6401         PR 43574
6402         * opt-functions.awk (var_type_struct): Use signed char type
6403         for simple variables.
6404
6405 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6406
6407         * config/sol2.c: Include output.h.
6408         (solaris_assemble_visibility): New function.
6409         * config/t-sol2 (sol2.o): Add output.h dependency.
6410         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
6411         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
6412         Redefine.
6413
6414 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6415
6416         PR target/43580
6417         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
6418         V2SImode or XFmode on PRE_DEC.
6419
6420         PR debug/43557
6421         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
6422         BLKmode.
6423
6424 2010-03-31  Jie Zhang  <jie@codesourcery.com>
6425
6426         PR 43562
6427         * reload.h (caller_save_initialized_p): Declare.
6428         * toplev.c (backend_init_target): Don't call
6429         init_caller_save but set caller_save_initialized_p to false.
6430         * caller-save.c (caller_save_initialized_p): Define.
6431         (init_caller_save): Check caller_save_initialized_p.
6432         * ira.c (ira): Call init_caller_save if flag_caller_saves.
6433
6434 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6435
6436         PR target/39048
6437         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
6438         and soft-fp/t-softfp to tmake_file.
6439         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
6440         (LIBGCC2_TF_CEXT): Define.
6441         (TF_SIZE): Define.
6442
6443 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
6444
6445         PR debug/42977
6446         * cselib.c (n_useless_values): Document handling of debug locs.
6447         (n_useless_debug_values, n_debug_values): New variables.
6448         (new_elt_loc_list): Don't add to debug values, keep count.
6449         (promote_debug_loc): New.
6450         (cselib_reset_table): Zero new variables.
6451         (entry_and_rtx_equal_p): Promote debug locs.
6452         (discard_useless_locs): Increment n_useless_debug_values for
6453         debug values.
6454         (remove_useless_values): Adjust n_useless_values and n_debug_values
6455         with n_useless_debug_values.
6456         (add_mem_for_addr): Promote debug locs.
6457         (cselib_lookup_mem): Likewise.
6458         (cselib_lookup_addr): Renamed to...
6459         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
6460         (cselib_log_lookup): ... this.  Turn into...
6461         (cselib_lookup_addr): ... new wrapper.
6462         (cselib_lookup_from_insn): New.
6463         (cselib_invalidate_regno): Increment n_useless_debug_values for
6464         debug values.
6465         (cselib_invalidate_mem): Likewise.
6466         (cselib_process_insn): Take n_deleted and n_debug_values into
6467         account to guard remove_useless_value call.
6468         (cselib_finish): Zero n_useless_debug_values.
6469         * cselib.h (cselib_lookup_from_insn): Declare.
6470         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
6471         (sched_analyze_2): Likewise.
6472
6473 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
6474
6475         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
6476         functions.
6477         (adjust_mems): Replace narrowing SUBREG of expression containing
6478         just PLUS, MINUS, MULT and ASHIFT of registers and constants
6479         with operations in the narrower mode.
6480
6481         PR debug/43593
6482         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
6483         regs_invalidated_by_call instead all call_used_reg_set registers.
6484
6485 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6486
6487         PR middle-end/43430
6488         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
6489         pointer comparisons with types_compatible_p.
6490         * tree-vect-stmts.c (vectorizable_call): Same.
6491         (vectorizable_condition): Same.
6492
6493 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6494
6495         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
6496         stack check if the mask would be zero.
6497
6498 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6499             Jack Howarth <howarth@bromo.med.uc.edu>
6500
6501         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6502         variables TLS.
6503
6504 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
6505
6506         PR other/25232
6507         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
6508         and __unordtf2.
6509         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
6510         Include ___unordxf2 and ___unordtf2.
6511         * config/i386/libgcc-glibc.ver: Do not define inheritance from
6512         GCC_4.4.0 here.
6513
6514 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
6515
6516         * config/lm32/t-lm32: New file.
6517         * config.gcc: Use the above file when targetting lm32.
6518
6519 2010-03-28  Duncan Sands  <baldrick@free.fr>
6520
6521         * Makefile.in (PLUGIN_HEADERS): Add except.h.
6522
6523 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6524
6525         PR middle-end/43431
6526         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
6527         Improve vectorization cost model diagnostic.
6528
6529 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6530
6531         PR middle-end/43436
6532         * tree-vect-data-refs.c (vect_analyze_data_refs): When
6533         compute_data_dependences_for_loop returns false, early exit
6534         and output an extra diagnostic for the failed data reference
6535         analysis.
6536
6537 2010-03-29  Richard Guenther  <rguenther@suse.de>
6538
6539         PR tree-optimization/43560
6540         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
6541         (can_sm_ref_p): Treat stores to readonly locations as trapping.
6542
6543 2010-03-29  Jie Zhang  <jie@codesourcery.com>
6544
6545         PR 43564
6546         * toplev.c (process_options): Set optimization_default_node
6547         and optimization_current_node.
6548         * opts.c (decode_options): Don't set optimization_default_node
6549         and optimization_current_node.
6550
6551 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
6552
6553         * config/rtems.h: Abandon -qrtems_debug.
6554
6555 2010-03-28  Jan Hubicka  <jh@suse.cz>
6556
6557         PR tree-optimization/43505
6558         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
6559         map should not be copied.
6560
6561 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6562
6563         PR middle-end/41674
6564         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
6565         cdtors, set DECL_PRESERVE_P.
6566         * ipa.c (cgraph_externally_visible_p): Return true if declaration
6567         should be preseved.
6568
6569 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
6570
6571         PR tree-optimization/43528
6572         * stor-layout.c (place_field): Check that constant fits into
6573         unsigned HWI when skipping calculation of MS bitfield layout.
6574
6575 2010-03-27  Jan Hubicka  <jh@suse.cz>
6576
6577         PR middle-end/43391
6578         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
6579         notice_global_symbol work.
6580
6581 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
6582
6583         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
6584         instead of dwarf2out_decl.
6585         (struct var_loc_node): Remove section_label field.
6586         (dwarf2out_function_decl): New function.
6587         (dwarf2out_var_location): Don't set section_label field.
6588         (dwarf2out_begin_function): Don't empty decl_loc_table here.
6589
6590 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
6591
6592         PR tree-optimization/43544
6593         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6594         First argument for builtin vectorized function hook is now a
6595         tree to be able to distinguish between machine specific and
6596         standard builtins.
6597         * targhooks.c (default_builtin_vectorized_function): Ditto.
6598         * targhooks.h (default_builtin_vectorized_function): Ditto.
6599         * target.h (struct gcc_target): Ditto.
6600         * tree-vect-stmts.c (vectorizable_function): Ditto.
6601         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
6602         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6603         Ditto.
6604
6605 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
6606
6607         PR c/43381
6608         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
6609         nested binding iff it is a FUNCTION_DECL.
6610         (store_parm_decls_newstyle): Pass nested=true to bind for
6611         FUNCTION_DECLs amongst parameters.
6612
6613 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6614
6615         * var-tracking.c (vt_expand_loc_callback): Don't run
6616         cselib_expand_value_rtx_cb in dummy mode if
6617         cselib_dummy_expand_value_rtx_cb returned false.
6618
6619         * var-tracking.c (emit_note_insn_var_location): For one part
6620         notes with offset 0, don't add EXPR_LIST around the location.
6621         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
6622         add_location_or_const_value_attribute): Adjust for that change.
6623
6624         PR debug/43540
6625         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
6626         into first operand and location into second.
6627         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
6628         dw_cfi_oprnd_loc for DW_CFA_expression.
6629         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
6630         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
6631         assume first argument is regnum and second argument is location.
6632
6633 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
6634
6635         PR target/42113
6636         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
6637         of scratch register to DImode.  Split to DImode comparison operator.
6638         Use SImode subreg of scratch register in the multiplication.
6639         (*cmp_sadd_sidi): Ditto.
6640         (*cmp_ssub_si): Ditto.
6641         (*cmp_ssub_sidi): Ditto.
6642
6643 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
6644
6645         PR target/43524
6646         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
6647         Remove invalid assert and wrong comment.
6648
6649 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6650
6651         PR debug/43516
6652         * flags.h (final_insns_dump_p): New extern.
6653         * final.c (final_insns_dump_p): New variable.
6654         (rest_of_clean_state): Set it before -fdump-final-insns=
6655         dumping, clear afterwards.
6656         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
6657         MEM_ALIAS_SET on MEMs.
6658
6659 2010-03-26  David S. Miller  <davem@davemloft.net>
6660
6661         * configure.ac: Fix sparc GOTDATA_OP bug check.
6662         * configure: Rebuild.
6663
6664 2010-03-26  Alan Modra  <amodra@gmail.com>
6665
6666         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
6667
6668 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6669
6670         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
6671         TLS_SECTION_ASM_FLAG.
6672
6673 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
6674
6675         PR bootstrap/43511
6676         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
6677         Clear first_function_block_is_cold.
6678
6679         PR c/43385
6680         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
6681         argument if the argument is truth_value_p.
6682
6683 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6684
6685         * config/rs6000/constraints.md: Update copyright year for my changes.
6686
6687         PR target/43484
6688         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
6689         used in reg+reg addressing, swap registers.
6690
6691 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
6692
6693         PR debug/43293
6694         * target.h (struct gcc_target): Add code_end hook.
6695         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
6696         if not yet defined.
6697         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
6698         * toplev.c (compile_file): Call targetm.asm_out.code_end
6699         hook before unwind info/debug info output.
6700         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
6701         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
6702         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
6703         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
6704         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
6705         * config/i386/i386.c (ix86_file_end): Renamed to...
6706         (ix86_code_end): ... this.  Make static.  Don't call
6707         file_end_indicate_exec_stack.  Emit unwind info using
6708         final_start_function/final_end_function.
6709         (darwin_x86_file_end): Remove.
6710         (TARGET_ASM_CODE_END): Define.
6711         * config/i386/i386.h (TARGET_ASM_FILE_END,
6712         NEED_INDICATE_EXEC_STACK): Don't define.
6713         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
6714         (TARGET_ASM_FILE_END): Define to darwin_file_end.
6715         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
6716         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
6717
6718         PR target/43498
6719         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
6720         at the beginning and final_end_function at the end.
6721         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
6722
6723 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6724
6725         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
6726         and Sun as TLS syntax.
6727         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
6728         * configure: Regenerate.
6729         * config.in: Regenerate.
6730         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
6731         (default_elf_asm_named_section): Use it.
6732         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
6733         (i386_output_dwarf_dtprel): Likewise.
6734         (output_addr_const_extra): Likewise.
6735         (output_pic_addr_const): Lowercase @GOTTPOFF.
6736         (output_addr_const_extra): Likewise.
6737         (output_pic_addr_const): Lowercase @GOTNTPOFF.
6738         (output_addr_const_extra): Likewise.
6739         (output_pic_addr_const): Lowercase @INDNTPOFF.
6740         (output_addr_const_extra): Likewise.
6741         (output_pic_addr_const): Lowercase @NTPOFF.
6742         (output_addr_const_extra): Likewise.
6743         (output_pic_addr_const): Lowercase @TPOFF.
6744         (output_addr_const_extra): Likewise.
6745         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
6746         (*tls_global_dynamic_64): Likewise.
6747         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
6748         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
6749
6750         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
6751         (ASM_OUTPUT_TLS_COMMON): Use it.
6752         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
6753
6754         PR target/38118
6755         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
6756         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
6757         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
6758         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
6759         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
6760         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
6761
6762 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6763
6764         * config/i386/i386.c (override_options): Don't accept
6765         -mtls-dialect=sun any longer.
6766         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
6767         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
6768         (*tls_local_dynamic_base_32_sun): Likewise.
6769         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
6770
6771 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
6772
6773         PR debug/43508
6774         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
6775         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
6776
6777         PR debug/43479
6778         * ira.c (adjust_cleared_regs): New function.
6779         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
6780
6781         PR debug/19192
6782         PR debug/43479
6783         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
6784         from gimple_block.
6785         * expr.c (expand_expr_real): Restore previous
6786         curr_insn_source_location and curr_insn_block after
6787         expand_expr_real_1 call.
6788         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
6789         instead of expand_expr_real_1.
6790
6791 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
6792
6793         PR rtl-optimization/43413
6794         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
6795         hard regs too.
6796
6797 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
6798
6799         PR target/43348
6800         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
6801         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
6802
6803 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
6804
6805         * config/i386/i386.c (ix86_target_string): Add -mfma.
6806         Fix a typo in comment.
6807
6808 2010-03-22  Mike Stump  <mikestump@comcast.net>
6809
6810         PR target/23071
6811         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
6812         Don't overly align based upon packed packed fields.
6813
6814 2010-03-22  Jason Merrill  <jason@redhat.com>
6815
6816         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
6817         Use () rather than [], and move before the element type.
6818
6819 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6820
6821         * doc/configfiles.texi (Configuration Files): Removed
6822         fixinc/Makefile*, intl/Makefile.*.
6823         * doc/makefile.texi: Fixed markup. Abstract from version
6824         control system used.
6825         (Makefile): Removed obsolete gcc/java/parse.y example.
6826         * doc/sourcebuild.texi: Likewise.
6827         (Top Level): Added config, gnattools, libdecnumber, libgcc,
6828         libgomp, libssp.  Removed fastjar.
6829         (Miscellaneous Docs): Clarify location.
6830         Added COPYING3, COPYING3.LIB.
6831         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
6832
6833 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6834
6835         PR target/38085
6836         * config/i386/i386.c (x86_function_profiler)
6837         [!NO_PROFILE_COUNTERS]: Fix typo.
6838         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
6839         instead of callq.
6840
6841 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
6842             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6843
6844         * doc/sourcebuild.texi (Test Directives): Split into six
6845         subsections, with most of the current text in new subsections
6846         Directives, Selectors, and Final Actions.
6847         (Directives): Split list of test directives into multiple
6848         subsubsections.
6849         (Selectors): Describe use and syntax of selectors.
6850         (Effective-Target Keywords): Describe all existing keywords.
6851         (Add Options): Describe features for dg-add-options.
6852         (Require Support): Describe variants of dg-require-support.
6853         (Final Actions): Describe commands to use in dg-final.
6854
6855 2010-03-22  Michael Matz  <matz@suse.de>
6856
6857         PR middle-end/43475
6858         * recog.c (validate_replace_rtx_group): Replace also in
6859         REG_EQUAL and REG_EQUIV notes.
6860
6861 2010-03-22  Richard Guenther  <rguenther@suse.de>
6862
6863         PR tree-optimization/43390
6864         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
6865         sure vector extracts are type correct.
6866
6867 2010-03-22  Richard Guenther  <rguenther@suse.de>
6868
6869         PR middle-end/40106
6870         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
6871         x * sqrt (x) even when optimizing for size if the target
6872         has native support for sqrt.
6873
6874 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
6875
6876         * varasm.c (make_decl_rtl_for_debug): Also clear
6877         flag_mudflap for the duration of make_decl_rtl call.
6878
6879         PR debug/43443
6880         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
6881         locs from preserved VALUEs.
6882
6883 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6884
6885         PR middle-end/42718
6886         * pa.md (movmemsi): Set align to one if zero.
6887         (movmemdi): Likewise.
6888
6889 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
6890
6891         PR target/42321
6892         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
6893         with their corresponding prologue pushes.
6894
6895 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
6896
6897         PR target/43156
6898         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
6899         at the begining or end.
6900         (spu_expand_epilogue): Likewise.
6901
6902 2010-03-20  Richard Guenther  <rguenther@suse.de>
6903
6904         PR rtl-optimization/43438
6905         * combine.c (make_extraction): Properly zero-/sign-extend an
6906         extraction of the low part of a CONST_INT.  Also handle
6907         CONST_DOUBLE.
6908
6909 2010-03-19  Mike Stump  <mikestump@comcast.net>
6910
6911         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
6912         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
6913         (override_options): Use SUBTARGET32_DEFAULT_CPU.
6914
6915 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
6916
6917         PR c/43211
6918         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
6919         an error.
6920
6921 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
6922
6923         PR rtl-optimization/42258
6924         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
6925         use that may match DEF.
6926
6927         PR target/40697
6928         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
6929         the cost of loading the constant rather than assuming
6930         COSTS_N_INSNS (1).
6931         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
6932         outer code is AND, do the same tests as the andsi3 expander and
6933         return COSTS_N_INSNS (1) if and is cheap.
6934
6935         * optabs.c (avoid_expensive_constant): Fix formatting.
6936
6937 2010-03-19  Michael Matz  <matz@suse.de>
6938
6939         PR c++/43116
6940         * attribs.c (decl_attributes): When rebuilding a function pointer
6941         type use the same qualifiers as the original pointer type.
6942
6943 2010-03-19  Martin Jambor  <mjambor@suse.cz>
6944
6945         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
6946         and is_gimple_ip_invariant_address.
6947
6948 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6949
6950         Revert
6951         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6952
6953         * config/arm/arm.c (arm_override_options): Turn off
6954         flag_dwarf2_cfi_asm for AAPCS variants.
6955
6956 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6957
6958         PR target/43399
6959         * config/arm/arm.c (emit_multi_reg_push): Update comments.
6960         Use PRE_MODIFY instead of PRE_DEC.
6961         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
6962         (vfp_emit_fstmd): Likewise.
6963
6964 2010-03-19  Michael Matz  <matz@suse.de>
6965
6966         PR target/43305
6967         * builtins.c (expand_builtin_interclass_mathfn,
6968         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
6969         if that fails.
6970
6971 2010-03-19  Richard Guenther  <rguenther@suse.de>
6972
6973         PR tree-optimization/43415
6974         * tree-ssa-pre.c (phi_translate): Split out worker to ...
6975         (phi_translate_1): ... this.
6976         (phi_translate): Move all caching here.  Cache all NARY
6977         and REFERENCE translations.
6978
6979 2010-03-19  David S. Miller  <davem@davemloft.net>
6980
6981         With help from Eric Botcazou.
6982         * config/sparc/sparc.c: Include dwarf2out.h.
6983         (emit_pic_helper): Delete.
6984         (pic_helper_symbol_name): Delete.
6985         (pic_helper_emitted_p): Delete.
6986         (pic_helper_needed): New.
6987         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
6988         (get_pc_thunk_name): New.
6989         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
6990         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
6991         Set pic_helper_needed to true.  Don't call emit_pic_helper.
6992         (sparc_expand_prologue): Update load_pic_register call.
6993         (sparc_output_mi_thunk): Likewise.
6994         (sparc_file_end): Emit a hidden comdat symbol for the PIC
6995         thunk if possible.  Output CFI information as needed.
6996
6997 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6998             Jack Howarth <howarth@bromo.med.uc.edu>
6999
7000         PR target/36399
7001         * config/i386/i386.h: Fix ABI on darwin x86-32.
7002
7003 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7004
7005         * tree.h: Declare make_decl_rtl_for_debug.
7006         * varasm.c (make_decl_rtl_for_debug): New.
7007         * dwarf2out.c (rtl_for_decl_location): Call it.
7008         * cfgexpand.c (expand_debug_expr): Call it.
7009
7010 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7011
7012         PR bootstrap/43399
7013         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7014         mem_mode.
7015
7016         PR bootstrap/43403
7017         * var-tracking.c (vt_init_cfa_base): Do nothing if
7018         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7019
7020 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7021
7022         PR debug/42873
7023         * var-tracking.c (canonicalize_vars_star): New.
7024         (dataflow_post_merge_adjust): Use it.
7025
7026 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7027
7028         PR debug/43058
7029         * var-tracking.c (non_suitable_const): New function.
7030         (add_uses): For DEBUG_INSNs with constants, don't record any
7031         value, instead just the constant value itself.
7032         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7033         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7034         (emit_notes_in_bb): Likewise.
7035         (emit_note_insn_var_location): For onepart variables if
7036         cur_loc is a VOIDmode constant, use DECL_MODE.
7037
7038 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7039
7040         PR middle-end/42450
7041         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7042         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7043         all non-clones.  Moved call redirection...
7044         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7045         (cgraph_materialize_all_clones): Dispose of all
7046         combined_args_to_skip bitmaps.
7047         (verify_cgraph_node): Do not check for edges pointing to wrong
7048         nodes in inline clones.
7049         * tree-inline.c (copy_bb): Call
7050         cgraph_redirect_edge_call_stmt_to_callee.
7051         * ipa.c (cgraph_remove_unreachable_nodes): Call
7052         cgraph_node_remove_callees even when there are used clones.
7053
7054 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7055
7056         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7057
7058 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7059
7060         PR target/43383
7061         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7062         for 32bit.
7063
7064 2010-03-18  Michael Matz  <matz@suse.de>
7065
7066         PR middle-end/43419
7067         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7068         into sqrt(x) if we need to preserve signed zeros.
7069
7070 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7071             Eric Botcazou  <ebotcazou@adacore.com>
7072
7073         PR rtl-optimization/43360
7074         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7075         note if we don't know its invariant status.
7076
7077 2010-03-18  Michael Matz  <matz@suse.de>
7078
7079         PR tree-optimization/43402
7080         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7081         PHI chains of ssa names registered for update.
7082
7083 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7084
7085         PR target/42427
7086         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7087         non-offsettable and pre_modify update addressing.
7088         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7089         and "2" alternatives "#".
7090         (*movdd_softfloat32): Make all alternatives "#";
7091         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7092         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7093         (*movdf_softfloat32): Make all alternatives "#";
7094         (movdi): Use the new DIFD mode iterator to create a common splitter
7095         for movdi, movdf and movdd patterns.
7096
7097 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7098
7099         * common.opt (dumpdir): Remove redundant tab.
7100
7101 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7102
7103         PR tree-optimization/43347
7104         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7105         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7106
7107 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7108
7109         PR rtl-optimization/42216
7110         * regrename.c (create_new_chain): New function, broken out from...
7111         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7112         appending a use to an empty chain.
7113         (build_def_use): Remove previous changes that convert OP_INOUT to
7114         OP_OUT operands; instead detect the case where an OP_INOUT operand
7115         uses a previously untracked register and create an empty chain for it.
7116
7117 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7118
7119         * doc/extend.texi (Function Attributes): Rewrite unfinished
7120         sentence in ms_abi documentation.
7121
7122 2010-03-17  Alan Modra  <amodra@gmail.com>
7123
7124         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7125         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7126         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7127         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7128
7129 2010-03-16  Richard Henderson  <rth@redhat.com>
7130
7131         PR middle-end/43365
7132         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7133         (lower_try_finally): Save and restore eh_seq around the expansion
7134         of the try-finally.
7135
7136 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7137
7138         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7139         statements before splitting block.
7140
7141 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7142
7143         * doc/sourcebuild.texi (Testsuites): Fix markup.
7144         Use pathnames relative to gcc/testsuite.
7145         (Test Directives): Move description of how timeout is determined.
7146         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7147         (C Tests): Correct gcc.misc-tests directory.
7148         Framework tests now live in gcc.test-framework.
7149
7150 2010-03-16  Richard Guenther  <rguenther@suse.de>
7151
7152         PR middle-end/43379
7153         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7154         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7155
7156 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7157             Alexandre Oliva  <aoliva@redhat.com>
7158
7159         PR tree-optimization/42917
7160         * lambda-code.c (remove_iv): Skip debug statements.
7161         (lambda_loopnest_to_gcc_loopnest): Likewise.
7162         (not_interesting_stmt): Debug statements are not interesting.
7163
7164 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7165
7166         PR debug/43051
7167         PR debug/43092
7168         * cselib.c (cselib_preserve_constants,
7169         cfa_base_preserved_val): New static variables.
7170         (preserve_only_constants): New function.
7171         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7172         clear its REG_VALUES.  If cselib_preserve_constants, don't
7173         empty the whole hash table, but preserve there VALUEs with constants,
7174         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7175         (cselib_preserve_cfa_base_value): New function.
7176         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7177         (cselib_init): Change argument to int bitfield.  Set
7178         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7179         is in it.
7180         (cselib_finish): Clear cselib_preserve_constants and
7181         cfa_base_preserved_val.
7182         * cselib.h (enum cselib_record_what): New enum.
7183         (cselib_init): Change argument to int.
7184         (cselib_preserve_cfa_base_value): New prototype.
7185         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7186         * dse.c (dse_step1): Likewise.
7187         * cfgcleanup.c (thread_jump): Likewise.
7188         * sched-deps.c (sched_analyze): Likewise.
7189         * gcse.c (local_cprop_pass): Likewise.
7190         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7191         If FN is non-NULL, call the callback always and whenever it returns
7192         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7193         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7194         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7195         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7196         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7197         * var-tracking.c: Include recog.h.
7198         (bb_stack_adjust_offset): Remove.
7199         (vt_stack_adjustments): Don't call it, instead just gather the
7200         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7201         (adjust_stack_reference): Remove.
7202         (compute_cfa_pointer): New function.
7203         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7204         (struct adjust_mem_data): New type.
7205         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7206         functions.
7207         (get_address_mode): New function.
7208         (replace_expr_with_values): Use it.
7209         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7210         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7211         (adjust_sets): Remove.
7212         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7213         Use get_address_mode.
7214         (get_adjusted_src): Remove.
7215         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7216         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7217         (add_with_sets): Don't call adjust_sets.
7218         (fp_setter, vt_init_cfa_base): New functions.
7219         (vt_initialize): Change return type to bool.  Move most of pool etc.
7220         initialization to the beginning of the function from end.  Pass
7221         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7222         If !frame_pointer_needed, call vt_stack_adjustment before mos
7223         vector is filled, call vt_init_cfa_base if argp/framep has been
7224         eliminated to sp.  If frame_pointer_needed and argp/framep has
7225         been eliminated to hard frame pointer, set
7226         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7227         encountering fp setter in the prologue.  For MO_ADJUST, call
7228         log_op_type before pusing the op into mos vector, not afterwards.
7229         Call adjust_insn before cselib_process_insn/add_with_sets,
7230         call cancel_changes (0) afterwards.
7231         (variable_tracking_main_1): Adjust for vt_initialize calling
7232         vt_stack_adjustments and returning whether it succeeded or not.
7233
7234 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7235
7236         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7237         debug statements.
7238
7239 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7240
7241         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7242         has been set.
7243         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7244         drap_reg has not been set.
7245
7246 2010-03-15  Michael Matz  <matz@suse.de>
7247
7248         PR middle-end/43300
7249         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7250         use it to expand block copies.
7251         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7252         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7253         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7254
7255 2010-03-15  Richard Guenther  <rguenther@suse.de>
7256
7257         PR tree-optimization/43367
7258         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7259         elimination check.
7260
7261 2010-03-15  Richard Guenther  <rguenther@suse.de>
7262
7263         PR tree-optimization/43317
7264         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7265
7266 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7267
7268         PR tree-optimization/43141
7269         * tree-sra.c (create_abstract_origin): New function.
7270         (modify_function): Call create_abstract_origin.
7271
7272 2010-03-15  Chris Demetriou  <cgd@google.com>
7273
7274         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7275         wasn't copied.
7276
7277 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7278
7279         PR middle-end/43354
7280         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7281         call insert_out_of_ssa_copy for default definitions.
7282
7283 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7284
7285         * graphite-clast-to-gimple.c (my_long_long): Defined.
7286         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7287         * graphite-sese-to-poly.c (my_long_long): Defined.
7288         (scop_ivs_can_be_represented): Use it.
7289
7290 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7291
7292         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7293         graphite-max-bbs-per-function, and loop-block-tile-size.
7294         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7295         with "maximum".
7296         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7297
7298 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7299
7300         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7301         forward declaration.
7302         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7303         (add_upper_bounds_from_estimated_nit): New.
7304         (build_loop_iteration_domains): Use it.
7305
7306 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7307
7308         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7309
7310 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7311
7312         PR middle-end/43306
7313         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
7314         should be an INTEGER_CST.  Also handle CASE_CONVERT.
7315
7316 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7317
7318         * graphite.c (graphite_initialize): To bound the number of bbs per
7319         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
7320         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
7321         * doc/invoke.texi: Document it.
7322
7323 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7324
7325         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
7326         * graphite-sese-to-poly.h (build_poly_scop): Same.
7327
7328 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7329
7330         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
7331         the number of parameters in the scop.  Use as an upper bound
7332         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
7333         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
7334         * doc/invoke.texi: Document it.
7335
7336 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
7337
7338         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
7339         * doc/c-tree.texi: Remove.
7340         * doc/generic.texi: Merge c-tree.texi here.
7341         * doc/gccint.texi (Trees): Remove menu entry.
7342         (c-tree.texi): Remove @include.
7343         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
7344         * doc/languages.texi (Reading RTL): Ditto.
7345
7346 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
7347
7348         PR target/42869
7349         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
7350
7351 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7352
7353         PR middle-end/42431
7354         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
7355         code added to work around reload clobbering CONST insns.
7356
7357 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
7358
7359         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
7360         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
7361         (cselib_preserve_only_values): Remove retain argument, don't
7362         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
7363         * cselib.h (cselib_preserve_only_values): Remove retain argument.
7364         * var-tracking.c (micro_operation): Move insn field before union.
7365         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
7366         (struct variable_tracking_info_def): Remove n_mos field, change
7367         mos into a vector of micro_operations.
7368         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
7369         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
7370         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
7371         changing into a vector.
7372         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
7373         come before all other uops generated by add_stores.
7374         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
7375         argument removal.
7376         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
7377         a vector.  Run just one pass over the bbs instead of separate counting
7378         and computation phase.
7379         (vt_finalize): Free VTI (bb)->mos vector instead of array.
7380
7381         PR debug/43329
7382         * tree-inline.c (remap_decls): Put old_var rather than origin_var
7383         into *nonlocalized_list vector.
7384         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
7385         even if origin is non-NULL.
7386         (gen_variable_die): Likewise.
7387         (process_scope_var): Don't change origin.
7388         (gen_decl_die): Likewise.
7389         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
7390         before adding new edges instead of after it, fix moving over
7391         debug stmts.
7392
7393 2010-03-11  David S. Miller  <davem@davemloft.net>
7394
7395         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
7396         of four.
7397         * configure: Rebuild.
7398
7399 2010-03-11  Martin Jambor  <mjambor@suse.cz>
7400
7401         PR tree-optimization/43257
7402         * tree.c (assign_assembler_name_if_neeeded): New function.
7403         (free_lang_data_in_cgraph): Assembler name assignment moved to the
7404         above new function.
7405         * tree.h (assign_assembler_name_if_neeeded): Declare.
7406         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
7407         the function if needed.
7408
7409 2010-03-11  Chris Demetriou  <cgd@google.com>
7410
7411         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
7412         include/stdint-gcc.h, and include/stdint.h world-readable.
7413
7414 2010-03-11  Richard Guenther  <rguenther@suse.de>
7415
7416         PR tree-optimization/43255
7417         * tree-vrp.c (process_assert_insertions_for): Do not insert
7418         asserts for trivial conditions.
7419
7420 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7421
7422         PR tree-optimization/43280
7423         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
7424         generation.  Move calculation of size out of the if branch.
7425         (find_bswap): Modify compare number generation.
7426
7427 2010-03-11  Richard Guenther  <rguenther@suse.de>
7428
7429         PR lto/43200
7430         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
7431         (input_gimple_stmt): Fixup handled component types during
7432         operand read.  Also fix up decls in ADDR_EXPRs.
7433
7434 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7435
7436         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
7437         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
7438
7439 2010-03-10  Jan Hubicka  <jh@suse.cz>
7440
7441         PR c/43288
7442         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
7443         * varasm.c (get_variable_section): Don't do that here...
7444         (make_decl_rtl): ... and here.
7445         (do_assemble_alias): Produce decl RTL.
7446         (assemble_alias): Likewise.
7447
7448 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
7449
7450         PR debug/43290
7451         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
7452         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
7453         of fde->vdrap_reg.
7454         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
7455         (based_loc_descr): Only express drap or vdrap regno based expressions
7456         using DW_OP_fbreg when not optimizing.
7457         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
7458         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
7459         REG_CFA_SET_VDRAP note.
7460
7461 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
7462
7463         PR tree-optimization/43236
7464         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
7465         error in calculation of base address in reverse iteration case.
7466         (generate_builtin): Take number of latch executions if the statement
7467         is in the latch.
7468
7469 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
7470
7471         PR middle-end/42859
7472         * tree-eh.c: Include pointer-set.h.
7473         (lower_eh_dispatch): Filter out duplicate case labels and
7474         remove the unneeded edge when the label is unused.  Return
7475         true when some edges are removed.
7476         (execute_lower_eh_dispatch): When any lowering resulted in
7477         removing an edge, also delete unreachable blocks.
7478
7479 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
7480
7481         PR bootstrap/43287
7482         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7483         UNSPEC_MACHOPIC_OFFSET.
7484
7485 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
7486
7487         PR target/43294
7488         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
7489         (m68k_delegitimize_address): New function.
7490
7491 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
7492
7493         PR debug/43299
7494         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
7495
7496         PR debug/43299
7497         * var-tracking.c (adjust_sets): New function.
7498         (count_with_sets, add_with_sets): Use it.
7499         (get_adjusted_src): New inline function.
7500         (add_stores): Use it.
7501
7502         PR debug/43304
7503         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
7504         call cselib_dummy_expand_value_rtx_cb instead of
7505         cselib_expand_value_rtx_cb.
7506
7507         PR debug/43293
7508         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
7509         * config/i386/i386.c: Include debug.h and dwarf2out.h.
7510         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
7511         and .cfi_endproc around the pic thunks.
7512         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
7513         all queued unwind info register saves are saved before the call.
7514         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
7515         considered as sp-=4 for unwind info and the pop as sp+=4 which
7516         also clobbers dest, but doesn't actually restore it.
7517
7518         PR debug/43290
7519         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
7520         RTX_FRAME_RELATED_P.
7521
7522 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7523
7524         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
7525         whitespaces in output template.
7526
7527 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7528
7529         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
7530         out array boundary.
7531
7532 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7533
7534         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
7535         builtins.exp in a separate job.
7536
7537 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7538
7539         * graphite-sese-to-poly.c (add_param_constraints): Use
7540         lower_bound_in_type and upper_bound_in_type.
7541
7542 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7543
7544         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
7545         instead of unsigned_type_node.
7546
7547 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7548             Reza Yazdani  <reza.yazdani@amd.com>
7549
7550         PR middle-end/43065
7551         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
7552         on pointer type parameters.
7553
7554 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7555
7556         PR middle-end/42644
7557         PR middle-end/42130
7558         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
7559         handle conversions from pointer to integers.
7560         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
7561         induction variable, to be able to work with code generated by CLooG.
7562         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
7563         (build_poly_scop): Bail out if we cannot codegen a loop.
7564
7565 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7566
7567         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
7568         code generation with gloog_error.
7569
7570 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7571
7572         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
7573         Call fold_convert on all the returned values.
7574         (expand_scalar_variables_expr): Pass to
7575         expand_scalar_variables_ssa_name the type of the resulting expression.
7576
7577 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7578
7579         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
7580         ppl_min_for_le_pointset.
7581         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
7582         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
7583
7584 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7585
7586         * graphite-dependences.c (map_into_dep_poly): Removed.
7587         (dependence_polyhedron_1): Use combine_context_id_scat.
7588
7589 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7590
7591         * graphite-poly.h (struct poly_scattering): Add layout documentation.
7592         (struct poly_bb): Same.
7593         (combine_context_id_scat): New.
7594
7595 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7596
7597         PR middle-end/42326
7598         * sese.c (name_defined_in_loop_p): Return false for default
7599         definitions.
7600
7601 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7602
7603         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
7604         and clean up the logic.
7605
7606 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7607
7608         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
7609         early return.
7610
7611 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7612
7613         * var-tracking.c (remove_cselib_value_chains): Define only for
7614         ENABLE_CHECKING.
7615         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
7616         delete_slot_part, emit_notes_for_differences_1): Don't call
7617         remove_cselib_value_chains here.
7618         (set_slot_part, emit_notes_for_differences_2): Don't call
7619         add_cselib_value_chains here.
7620         (preserved_values): New vector.
7621         (preserve_value): New function.
7622         (add_uses, add_stores, vt_add_function_parameters): Use it
7623         instead of cselib_preserve_value.
7624         (changed_values_stack): New vector.
7625         (check_changed_vars_0): New function.
7626         (check_changed_vars_1, check_changed_vars_2): Use it.
7627         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
7628         changed_values_stack VALUEs.
7629         (vt_emit_notes): For all preserved_values call
7630         add_cselib_value_chains.  If ENABLE_CHECKING call
7631         remove_cselib_value_chains before verifying value_chains is empty.
7632         Initialize and free changed_values_stack.
7633         (vt_initialize): Initialize preserved_values.
7634         (vt_finalize): Free preserved_values.
7635
7636 2010-03-08  Richard Guenther  <rguenther@suse.de>
7637
7638         PR tree-optimization/43269
7639         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
7640         region detection.
7641
7642 2010-03-08  Martin Jambor  <mjambor@suse.cz>
7643
7644         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
7645         (ipa_is_param_called): Removed.
7646         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
7647         (ipa_print_node_params): Do not print the called flag.
7648         (ipa_write_node_info): Do not stream the called flag.
7649         (ipa_read_node_info): Likewise.
7650
7651 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
7652
7653         PR debug/43176
7654         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
7655         * cselib.c (struct expand_value_data): Add dummy field.
7656         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
7657         dummy to false.
7658         (cselib_dummy_expand_value_rtx_cb): New function.
7659         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
7660         any rtl.
7661         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
7662         * var-tracking.c: Include pointer-set.h.
7663         (variable): Change n_var_parts to char from int.  Add
7664         cur_loc_changed and in_changed_variables fields.
7665         (variable_canonicalize): Remove.
7666         (shared_var_p): New inline function.
7667         (unshare_variable): Maintain cur_loc_changed and
7668         in_changed_variables fields.  If var was in changed_variables,
7669         replace it there with new_var.  Just copy cur_loc instead of
7670         resetting it to something else.
7671         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
7672         (dataflow_set_union): Don't call variable_canonicalize.
7673         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
7674         of their DEBUG_EXPR_TREE_DECLs.
7675         (canonicalize_loc_order_check): Verify that cur_loc is NULL
7676         and in_changed_variables and cur_loc_changed is false.
7677         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
7678         and cur_loc_changed.  Don't update cur_loc here.
7679         (variable_merge_over_src): Don't call variable_canonicalize.
7680         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
7681         removing loc that is equal to cur_loc, clear cur_loc,
7682         set cur_loc_changed and ensure variable_was_changed is called.
7683         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
7684         compare pointers in cur_loc check, if it is equal to loc,
7685         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
7686         (variable_different_p): Remove compare_current_location argument,
7687         don't compare cur_loc.
7688         (dataflow_set_different_1): Adjust variable_different_p caller.
7689         (variable_was_changed): If dv had some var in changed_variables
7690         already, reset in_changed_variables flag for it and propagate
7691         cur_loc_changed over to the new variable.  On empty var
7692         always set cur_loc_changed.  Set in_changed_variables on whatever
7693         var is added to changed_variables.
7694         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
7695         Use shared_var_p.  When removing loc that is equal to cur_loc,
7696         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
7697         end, don't set it to something else, just call variable_was_changed.
7698         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
7699         loc being removed, clear cur_loc and set cur_loc_changed.
7700         Set cur_loc_changed if all locations have been removed.
7701         (struct expand_loc_callback_data): New type.
7702         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
7703         allocated.  Always create SUBREGs if simplify_subreg failed.
7704         Prefer to use cur_loc, when that fails and still in
7705         changed_variables (and seen first time) recompute it.  Set
7706         cur_loc_changed of variables which had to change cur_loc and
7707         compute elcd->cur_loc_changed if any of the subexpressions used
7708         had to change cur_loc.
7709         (vt_expand_loc): Adjust to pass arguments in
7710         expand_loc_callback_data structure.
7711         (vt_expand_loc_dummy): New function.
7712         (emitted_notes): New variable.
7713         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
7714         that weren't used for any other decl in current
7715         emit_notes_for_changes call call vt_expand_loc_dummy to update
7716         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
7717         first loc_chain location if NULL before.  Always use just
7718         cur_loc instead of first loc_chain location.  When cur_loc_changed
7719         is false, when not --enable-checking=rtl just don't emit any note.
7720         When rtl checking, compute the note and assert it is the same
7721         as previous note.  Clear cur_loc_changed and in_changed_variables
7722         at the end before removing from changed_variables.
7723         (check_changed_vars_3): New function.
7724         (emit_notes_for_changes): Traverse changed_vars to call
7725         check_changed_vars_3 on each changed var.
7726         (emit_notes_for_differences_1): Clear cur_loc_changed and
7727         in_changed_variables.  Recompute cur_loc of new_var.
7728         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
7729         (vt_emit_notes): Initialize and destroy emitted_notes.
7730
7731 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
7732
7733         PR rtl-optimization/42220
7734         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
7735         Use verify_reg_tracked to determine if we should use OP_OUT rather
7736         than OP_INOUT.
7737         (build_def_use): If we see an in-out operand for a register that we
7738         know nothing about, treat is an output if possible, fail the block if
7739         not.
7740
7741 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
7742
7743         PR debug/42897
7744         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
7745         permanently.
7746
7747 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
7748
7749         PR debug/42897
7750         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
7751         uses of relevant DEFs that are dead outside the loop too.
7752
7753 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
7754
7755         * var-tracking.c (dataflow_set_merge): Swap src and src2.
7756         Reverted:
7757         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
7758         PR debug/41371
7759         * var-tracking.c (values_to_unmark): New variable.
7760         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
7761         values_to_unmark vector.  Moved body to...
7762         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
7763         instead queue it into values_to_unmark vector.
7764         (vt_find_locations): Free values_to_unmark vector.
7765
7766 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7767
7768         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
7769         (site.exp): Export them when plugins are enabled.
7770
7771 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
7772
7773         PR middle-end/42326
7774         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
7775         that contain scevs.
7776         (chrec_fold_multiply): Same.
7777
7778 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7779
7780         PR c/43248
7781         * c-decl.c (build_compound_literal): Return early if init is
7782         an error_mark_node.
7783
7784 2010-03-04  Martin Jambor  <mjambor@suse.cz>
7785
7786         PR tree-optimization/43164
7787         PR tree-optimization/43191
7788         * tree-sra.c (type_consists_of_records_p): Reject records with
7789         zero-size bit-fields at the end.
7790
7791 2010-03-04  Mike Stump  <mikestump@comcast.net>
7792
7793         * Makefile.in (TAGS): Remove *.y.
7794
7795 2010-03-04  Richard Guenther  <rguenther@suse.de>
7796
7797         PR tree-optimization/40761
7798         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
7799         in reverse order.
7800         (my_rev_post_order_compute): New function.
7801         (init_pre): Call it.
7802
7803 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
7804
7805         PR middle-end/43209
7806         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
7807         decrease the cost of an IV candidate when the cost is infinite.
7808
7809 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7810
7811         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
7812         Use '3DNow!' for the extension of that name, ensure normal space
7813         after the string.
7814         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
7815
7816 2010-03-03  Jeff Law  <law@redhat.com>
7817
7818         * PR middle-end/32693
7819         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
7820         than gen_rtx_SUBREG.
7821         (extract_bit_field_1): Likewise.
7822
7823 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
7824
7825         * doc/sourcebuild.texi (Test directives): Document that arguments
7826         include-opts and exclude-opts are now optional for dg-skip-if,
7827         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
7828
7829 2010-03-03  Jason Merrill  <jason@redhat.com>
7830
7831         PR c++/12909
7832         * cgraph.h (varpool_node): Add extra_name field.
7833         * varpool.c (varpool_extra_name_alias): New.
7834         (varpool_assemble_decl): Emit extra name aliases.
7835         (varpool_mark_needed_node): Look past an extra name alias.
7836         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
7837         * lto-streamer-in.c (lto_input_tree): Read it.
7838         * lto-streamer-out.c (output_unreferenced_globals): Write it.
7839
7840 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
7841
7842         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
7843         (sparc*-*-solaris2*): ...this.
7844
7845 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
7846
7847         PR debug/43229
7848         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
7849         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
7850         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
7851         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
7852
7853         PR debug/43237
7854         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
7855         fallthrough to default handling, just with want_address 0 instead of 2.
7856         For single element lists, add_AT_loc directly, otherwise create an
7857         artificial variable DIE and stick location list to it.
7858
7859         PR debug/43177
7860         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
7861         (VAL_EXPR_HAS_REVERSE): Define.
7862         (reverse_op): New function.
7863         (add_stores): For reversible operations add an extra MO_VAL_USE.
7864
7865 2010-03-02  Jason Merrill  <jason@redhat.com>
7866
7867         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
7868
7869 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
7870
7871         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
7872         (sparc64-*-linux*): Likewise.
7873         (sparc64-*-solaris2*): Include assembler files before linker ones.
7874         (sparc-*-solaris2*): Simplify and reorder to match previous case.
7875         * config/sparc/gas.h: Delete.
7876         * config/sparc/sol2-64.h: Add copyright notice.
7877         * config/sparc/sol2-gas-bi.h: Likewise.
7878         * config/sparc/sol2-gld.h: Likewise.
7879         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
7880         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
7881         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
7882         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
7883         (sparc_elf_asm_named_section): Rename into...
7884         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
7885
7886 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
7887
7888         * config/alpha/alpha.c (override_options): Fix -mtune error message.
7889
7890 2010-03-02  Jeff Law  <law@redhat.com>
7891
7892         PR middle-end/42431
7893         * reload1.c (rtx_p, substitute_stack): Declare.
7894         (substitute): Record addresses of changed rtxs.
7895         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
7896         Restore the original rtx when complete.
7897         (reload): Free subsitute_stack when complete.
7898
7899 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
7900
7901         * doc/gccint.texi (menu): Add Testsuites as a chapter.
7902         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
7903         new chapter.
7904         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
7905         LTO Testing, gcov Testing, profopt Testing, compat Testing,
7906         Torture Tests): Change from subsection to section.
7907
7908 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
7909             Steven Bosscher  <steven@gcc.gnu.org>
7910
7911         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
7912         instead of bb.
7913
7914 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
7915
7916         PR middle-end/42640
7917         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
7918         the assignment from the new induction variable to the assignment
7919         of the value from the original loop PHI function.
7920
7921 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
7922             Daniel Jacobowitz  <dan@codesourcery.com>
7923
7924         * doc/sourcebuild.texi (Test directives): Clarify options to
7925         dg-skip-if.
7926
7927 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7928
7929         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
7930         Disable cfi directives unless GCC and gas agree on using read-only
7931         .eh_frame sections for 64-bit.
7932         * configure: Regenerate.
7933
7934 2010-03-01  Richard Guenther  <rguenther@suse.de>
7935
7936         PR tree-optimization/43220
7937         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
7938         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
7939
7940 2010-03-01  Richard Guenther  <rguenther@suse.de>
7941             Martin Jambor  <mjambor@suse.cz>
7942
7943         PR middle-end/41250
7944         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
7945         gimplified parameters.
7946
7947 2010-03-01  Christian Bruel  <christian.bruel@st.com>
7948
7949         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
7950
7951 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
7952
7953         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
7954
7955 2010-03-01  Richard Guenther  <rguenther@suse.de>
7956
7957         PR middle-end/43213
7958         * expr.c (expand_assignment): Use the alias-oracle to tell
7959         if the rhs aliases the result decl.
7960
7961 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7962
7963         PR pch/14940
7964         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
7965         to sol_gt_pch_get_address.
7966         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
7967         64-bit, SPARC and x86.
7968         (sol_gt_pch_get_address): New function.
7969
7970 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
7971
7972         * toplev.h (inform_n, error_n): Declare.
7973         * diagnostic.c (inform_n, error_n): New function.
7974
7975 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
7976
7977         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
7978         has no rtl yet when processing local_decls, queue it and recheck
7979         if deferred stack allocation hasn't assigned it rtl.
7980
7981 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
7982
7983         * config/sh/sh.c (unspec_bbr_uid): New.
7984         (gen_block_redirect): Use it instead of INSN_UID.
7985         (gen_far_branch): Likewise.
7986
7987 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
7988
7989         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
7990         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
7991
7992 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7993
7994         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
7995         (Warning Options): -Wno-conversion-null is valid for
7996         Objective-C++ as well.
7997         * doc/tm.texi (Named Address Spaces): Likewise.
7998         * doc/plugins.texi (Plugins): Replace TABs with spaces.
7999         * doc/tree-ssa.texi (Tree SSA): Likewise.
8000
8001 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8002
8003         PR bootstrap/43202
8004         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8005         by default.  Don't set the default arch for
8006         i[34567]86-*-darwin*|x86_64-*-darwin*.
8007
8008 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8009
8010         PR bootstrap/43202
8011         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8012         default.  Set the default 32bit/64bit archs with $with_arch
8013         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8014
8015 2010-02-27  Richard Guenther  <rguenther@suse.de>
8016
8017         PR tree-optimization/43186
8018         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8019         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8020         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8021         unroller iterations.
8022
8023 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8024
8025         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8026         required and i[34567]86-*-* targets don't support 64bit ISA.
8027
8028 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8029
8030         PR ada/43096
8031         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8032         the same alias set.
8033
8034 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8035
8036         * config.gcc: Set the default arch at least to Prescott for
8037         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8038         if SSE math is enabled.
8039
8040 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8041
8042         * diagnostic.c (diagnostic_initialize): Update.
8043         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8044         informative notes.
8045         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8046         (diagnostic_inhibit_notes): New.
8047         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8048
8049 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8050
8051         PR c/20631
8052         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8053         * doc/standards.texi: Likewise.
8054         * doc/extend.texi: Likewise.
8055         * doc/trouble.texi: Likewise.
8056         * doc/cppopts.texi: Likewise.
8057         * doc/install.texi: Likewise.
8058         * c.opt (std=c90,std=gnu90): New options.
8059         * c-opts.c (c_common_handle_option): Handle them.
8060
8061 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8062
8063         PR c/24577
8064         * c-decl.c (undeclared_variable): Use an informative note.
8065
8066 2010-02-26  Richard Guenther  <rguenther@suse.de>
8067
8068         PR tree-optimization/43186
8069         * gimple.h (gimple_fold): Remove.
8070         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8071         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8072         Try harder for conditions.
8073
8074 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8075
8076         PR debug/43190
8077         * function.c (used_types_insert): Don't skip through named pointer
8078         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8079         and it is different from the main variant's type.
8080
8081 2010-02-26  Nick Clifton  <nickc@redhat.com>
8082
8083         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8084
8085 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8086
8087         * config.gcc: Support --with-fpmath=sse for x86.
8088
8089         * config/i386/ssemath.h: New.
8090
8091         * doc/install.texi (--with-fpmath=sse): Documented.
8092
8093 2010-02-26  Richard Guenther  <rguenther@suse.de>
8094
8095         PR tree-optimization/43188
8096         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8097         vector types of over-aligned element type.
8098
8099 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8100
8101         PR target/43175
8102         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8103         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8104
8105 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8106
8107         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8108
8109 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8110
8111         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8112         * var-tracking.c: Include diagnostic.h.
8113         (debug_dv): New function.
8114         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8115
8116         PR debug/43160
8117         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8118         (add_value_chain, add_value_chains, remove_value_chain,
8119         remove_value_chains): Handle DEBUG_EXPRs.
8120         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8121
8122         PR debug/43161
8123         * regcprop.c (struct queued_debug_insn_change): New type.
8124         (struct value_data_entry): Add debug_insn_changes field.
8125         (struct value_data): Add n_debug_insn_changes field.
8126         (debug_insn_changes_pool): New variable.
8127         (free_debug_insn_changes, apply_debug_insn_changes,
8128         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8129         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8130         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8131         fields.
8132         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8133         changes for them.
8134         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8135         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8136         changes, call cprop_find_used_regs via note_stores.
8137         (copyprop_hardreg_forward): When copying vd from predecessor
8138         which has any queued DEBUG_INSN changes, make sure the pointers are
8139         cleared.  At the end call df_analyze and then if there are any
8140         DEBUG_INSN changes queued at the end of some basic block for still
8141         live registers, apply them.
8142         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8143
8144 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8145
8146         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8147         (arm*-*-*): Ditto.
8148
8149 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8150
8151         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8152         targets.  Set the default with_cpu/with_arch from arch/cpu.
8153         Allow x86-64 and native for with_cpu/with_arch.
8154
8155 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8156
8157         * ebitmap.c: Change calls to verify_popcount with calls to
8158         sbitmap_verify_popcount.
8159         (ebitmap_clear_bit): Fixed map->cacheindex test and
8160         map>cache update when bit clearing results in an empty
8161         element.
8162
8163 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8164
8165         PR target/43154
8166         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8167         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8168         and support both V2DF and V2DI modes.
8169         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8170         support both V2DF and V2DI modes.
8171         (general): Delete trailing whitespace from a few patterns.
8172
8173         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8174         V2DF/V2DI interleave high/low builtins.
8175
8176         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8177         new VSX builtins.
8178
8179         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8180         interleave high/low functions.
8181
8182 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8183
8184         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8185         #pragma extern_prefix.
8186
8187 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8188
8189         PR debug/43166
8190         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8191         BLKmode, assert op0 is a MEM and just adjust its mode.
8192
8193         PR debug/43165
8194         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8195         if bitpos isn't multiple of mode's bitsize.
8196
8197 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8198
8199         * c.opt (-ftemplate-depth=): New.
8200         (-ftemplate-depth-): Deprecate.
8201         * optc-gen.awk: Handle -ftemplate-depth=.
8202         * opth-gen.awk: Likewise.
8203         * c-opts.c (c_common_handle_option): Likewise.
8204         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8205
8206 2010-02-24  Jason Merrill  <jason@redhat.com>
8207
8208         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8209
8210 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8211
8212         * cfg.c (alloc_aux_for_block): Remove inline.
8213         (alloc_aux_for_edge): Likewise.
8214
8215 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8216
8217         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8218
8219 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8220
8221         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8222         * config/i386/sol2-gas.h: New file.
8223         * config.gcc (i[34567]86-*-solaris2*): Use it.
8224
8225 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8226
8227         PR c/43128
8228         * c-typeck.c (ep_convert_and_check): New.
8229         (build_conditional_expr): Use it.
8230         (build_binary_op): Likewise.
8231
8232 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8233
8234         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8235
8236         PR debug/43150
8237         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8238         bounds even for -O+.
8239         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8240         expr needs to have DECL_NAME set.
8241
8242 2010-02-24  Nick Clifton  <nickc@redhat.com>
8243
8244         * config/mep/mep.c: Include gimple.h.
8245         (mep_function_uses_sp): Delete unused function.
8246         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8247         parameters.  Use unsigned integers to count args.  Return a
8248         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8249
8250 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8251
8252         PR target/43107
8253         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8254         greater or equal to nelt instead of 2 * nelt.
8255         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8256         with nelt - 1.
8257
8258 2010-02-23  Jason Merrill  <jason@redhat.com>
8259
8260         PR debug/42800
8261         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8262         in cfun->local_decls even if they have register types.
8263
8264         PR c++/42837
8265         * stor-layout.c (place_field): Don't warn about unnecessary
8266         DECL_PACKED if the type is packed.
8267
8268 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8269
8270         PR target/43139
8271         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8272         GOTOFF relocs, even when the base reg isn't pic pointer.
8273
8274 2010-02-23  Michael Matz  <matz@suse.de>
8275
8276         PR debug/43077
8277         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8278         (expand_gimple_basic_block): Generate and use debug temps if there
8279         are debug uses left after the last real use of TERed ssa names.
8280         Unlink debug immediate uses when they are expanded.
8281
8282 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8283
8284         PR 43123
8285         * config/i386/i386.c (override_options): Reorganise to provide
8286         better error messages.
8287
8288 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8289
8290         PR middle-end/43083
8291         * graphite-scop-detection.c (create_single_exit_edge): Move
8292         the call to find_single_exit_edge to....
8293         (create_sese_edges): ...here.  Don't handle multiple edges
8294         exiting the function.
8295         (build_graphite_scops): Don't handle multiple edges
8296         exiting the function.
8297
8298 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8299
8300         PR middle-end/43097
8301         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8302         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8303
8304 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8305
8306         PR middle-end/43026
8307         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8308
8309 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8310
8311         PR c++/43126
8312         * c-typeck.c (convert_arguments): Print declaration location.
8313         * c-common.c (validate_nargs): Rename as
8314         builtin_function_validate_nargs.
8315         (check_builtin_function_arguments): Update.
8316
8317 2010-02-22  Richard Guenther  <rguenther@suse.de>
8318
8319         PR lto/43045
8320         * tree-inline.c (declare_return_variable): Use the type of
8321         the call stmt lhs if available.
8322
8323 2010-02-22  Duncan Sands  <baldrick@free.fr>
8324
8325         * passes.c (register_pass): Always consider all pass lists when
8326         ref_pass_instance_number is zero.
8327
8328 2010-02-22  Richard Guenther  <rguenther@suse.de>
8329
8330         PR tree-optimization/42749
8331         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
8332         parameter.  Do arithmetic in the original type.
8333         (update_accumulator_with_ops): Likewise.
8334         (adjust_accumulator_values): Adjust.
8335
8336 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8337
8338         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
8339         (QI to BLKmode splitter): New splitter.
8340
8341 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
8342
8343         * config/i386/i386.c (initial_ix86_tune_features): Turn on
8344         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
8345
8346 2010-02-22  Richard Guenther  <rguenther@suse.de>
8347
8348         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
8349
8350 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
8351
8352         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
8353         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
8354         ($(T)crti.o, $(T)crtn.o): Remove rules.
8355
8356 2010-02-21  Tobias Burnus  <burnus@net-b.de>
8357
8358         PR fortran/35259
8359         * doc/invoke.texi (-fassociative-math): Document that this
8360         option is automatically enabled for Fortran.
8361
8362 2010-02-20  David S. Miller  <davem@davemloft.net>
8363
8364         * configure.ac: Test if linker and assembler properly support
8365         GOTDATA_OP relocations.
8366         * configure: Rebuild.
8367         * config.in: Likewise.
8368         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
8369         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
8370         (movsi_high_pic): Likewise.
8371         (movdi_lo_sum_pic): Likewise.
8372         (movdi_high_pic): Likewise.
8373         (movsi_pic_gotdata_op): New pattern.
8374         (movdi_pic_gotdata_op): Likewise.
8375         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
8376         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
8377
8378 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
8379
8380         PR target/43067
8381         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
8382         attribute to ssemul.
8383         (xop_mulv2div2di3_high): Ditto.
8384
8385 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8386
8387         PR c++/35669
8388         * c.opt (Wconversion-null): New option.
8389         * doc/invoke.texi (Wconversion-null): Document.
8390
8391 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8392
8393         * common.opt (Wlarger-than-): Add Undocumented.
8394
8395 2010-02-19  Mike Stump  <mikestump@comcast.net>
8396
8397         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
8398
8399 2010-02-19  Jason Merrill  <jason@redhat.com>
8400
8401         PR target/40332
8402         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
8403         * configure: Likewise.
8404
8405 2010-02-20  Alan Modra  <amodra@gmail.com>
8406
8407         PR middle-end/42344
8408         * cgraph.h (cgraph_make_decl_local): Declare.
8409         * cgraph.c (cgraph_make_decl_local): New function.
8410         (cgraph_make_node_local): Use it.
8411         * cgraphunit.c (cgraph_function_versioning): Likewise.
8412         * ipa.c (function_and_variable_visibility): Likewise.
8413
8414 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8415
8416         PR bootstrap/43121
8417         * except.c (sjlj_emit_function_enter): Don't call
8418         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
8419         directly.
8420         * rtl.h (add_reg_br_prob_note): Remove prototype.
8421
8422 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8423
8424         PR 41779
8425         * c-common.c (conversion_warning): Remove widening conversions
8426         before checking the conversion of integers to reals.
8427
8428 2010-02-19  Mike Stump  <mikestump@comcast.net>
8429
8430         PR middle-end/43125
8431         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
8432
8433         PR objc/43061
8434         * cgraphunit.c (process_function_and_variable_attributes): Check
8435         DECL_PRESERVE_P instead of looking up attribute "used".
8436         * ipa-pure-const.c (check_decl): Likewise.
8437         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
8438         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
8439         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
8440         instead of attribute "used".
8441         * config/sol2-c.c (solaris_pragma_init): Likewise.
8442         (solaris_pragma_fini): Likewise.
8443
8444 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8445
8446         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
8447         Use XCNEW instead of xcalloc.
8448         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
8449         XNEW instead of xmalloc.
8450         (get_fields): Use XNEWVEC instead of xmalloc.
8451
8452         PR debug/43084
8453         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
8454         populate vars array.
8455         (create_new_general_access): For debug stmts just reset value.
8456         (get_stmt_accesses): For accesses within debug stmts just record them
8457         using add_access_to_acc_sites instead of preventing the peeling or
8458         counting them as accesses.
8459
8460         PR middle-end/42233
8461         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
8462
8463 2010-02-19  Richard Guenther  <rguenther@suse.de>
8464
8465         PR tree-optimization/42916
8466         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
8467         instructions.
8468
8469 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
8470
8471         * configure.ac: Replace all uses of changequote in macro arguments
8472         with proper quoting.
8473
8474 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8475
8476         PR middle-end/42233
8477         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
8478
8479 2010-02-19  Richard Guenther  <rguenther@suse.de>
8480
8481         PR tree-optimization/42944
8482         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
8483         test for aliasing with errno.
8484
8485 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8486
8487         PR middle-end/42233
8488         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
8489         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
8490         * dojump.c: Include output.h.
8491         (inv): New inline function.
8492         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
8493         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
8494         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
8495         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
8496         argument, pass it down to other calls.
8497         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
8498         add REG_BR_PROB note to the conditional jump.
8499         * cfgexpand.c (add_reg_br_prob_note): Removed.
8500         (expand_gimple_cond): Don't call it, add the probability
8501         as last argument to jumpif_1/jumpifnot_1.
8502         * Makefile.in (dojump.o): Depend on output.h.
8503         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
8504         callers.
8505         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
8506         * stmt.c (do_jump_if_equal): Likewise.
8507         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
8508         * loop-unswitch.c (compare_and_jump_seq): Likewise.
8509         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
8510         Likewise.
8511         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
8512         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
8513         jumpifnot_1 callers.
8514         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
8515         callers.
8516         (store_expr): Adjust jumpifnot caller.
8517         (store_constructor): Adjust jumpif caller.
8518
8519         PR middle-end/42233
8520         * gimplify.c (gimple_boolify): For __builtin_expect call
8521         gimple_boolify also on its first argument.
8522
8523 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
8524
8525         * configure.ac (gnu-unique-object): Wrap regexps using [] in
8526         changequote block.
8527         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
8528         * configure: Regenerated.
8529
8530 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8531
8532         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
8533         lang_hooks.types_compatible_p instead of comptypes.
8534
8535 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
8536
8537         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
8538         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
8539         if __prefer_thumb__ is defined.
8540
8541 2010-02-18  Martin Jambor  <mjambor@suse.cz>
8542
8543         PR tree-optimization/43066
8544         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
8545         array with zero-sized element type.
8546
8547 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
8548
8549         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
8550         rtx, allocate struct var_loc_node here and return it to the
8551         caller, and only if it is actually needed.
8552         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
8553         move it earlier and return immediately if it returns NULL.
8554
8555 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
8556
8557         * config/sparc/gas.h: New file.  Restore
8558         TARGET_ASM_NAMED_SECTION to its ELF default.
8559         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
8560         check !HAVE_GNU_AS.
8561         * config/sparc/sparc.c (sparc_elf_asm_named_section):
8562         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
8563         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
8564         after sparc/sysv4.h.
8565
8566 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
8567
8568         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
8569
8570 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
8571
8572         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
8573         patterns from predicated pattern.
8574
8575 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
8576
8577         PR target/43103
8578         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
8579         for insn mnemonic suffix.
8580
8581 2010-02-17  Richard Guenther  <rguenther@suse.de>
8582
8583         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
8584         to loop PHI nodes.
8585
8586 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
8587
8588         PR debug/42918
8589         * caller-save.c (save_call_clobbered_regs): If BB ends with
8590         a DEBUG_INSN, move any notes in between last real insn and the last
8591         DEBUG_INSN after the last DEBUG_INSN.
8592
8593 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
8594
8595         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
8596         Fix return type.  Fix argument type.  Explain meaning of return value.
8597
8598 2010-02-16  Richard Guenther  <rguenther@suse.de>
8599
8600         PR tree-optimization/41043
8601         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
8602         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
8603         statements ...
8604         (vrp_visit_phi_node): ... but only for loop PHI nodes.
8605
8606 2010-02-16  Ira Rosen  <irar@il.ibm.com>
8607
8608         PR tree-optimization/43074
8609         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
8610         * tree-vect-loop.c (vect_analyze_loop_operations): Add
8611         vectorizable cycles in hybrid SLP check.
8612         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
8613
8614 2010-02-16  Richard Guenther  <rguenther@suse.de>
8615
8616         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
8617         (true_dependence): If memrefs_conflict_p computes must-alias
8618         trust it.  Move TBAA check after offset-based disambiguation.
8619         (canon_true_dependence): Likewise.
8620
8621 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
8622
8623         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
8624         * doc/invoke.texi: Document it.
8625         * var-tracking.c: Include toplev.h and params.h.
8626         (vt_find_locations): Return bool indicating success.  Compute
8627         hash sizes unconditionally.  Check new parameter, report.
8628         (variable_tracking_main_1): Check vt_find_locations results and
8629         retry.  Renamed from...
8630         (variable_tracking_main): ... this.  New wrapper to preserve
8631         flag_var_tracking_assignments.
8632         * Makefile.in (var-tracking.o): Adjust dependencies.
8633
8634 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
8635             Jakub Jelinek <jakub@redhat.com>
8636
8637         PR target/42854
8638         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
8639         if weak_import attribute is present.
8640         * config/darwin.c (machopic_select_section): Likewise.
8641
8642 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
8643
8644         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
8645         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
8646         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
8647         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
8648
8649         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
8650         types.
8651
8652         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
8653         Fix argument types.
8654
8655         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
8656         Rewrite text to refer to the names.
8657
8658 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
8659
8660         * config/i386/i386-builtin-types.def
8661         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
8662         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
8663         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
8664         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
8665         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
8666         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
8667         IX86_BUILTIN_VPERMIL2PS256.
8668         (MULTI_ARG_4_DF2_DI_I): Defined.
8669         (MULTI_ARG_4_DF2_DI_I1): Defined.
8670         (MULTI_ARG_4_SF2_SI_I): Defined.
8671         (MULTI_ARG_4_SF2_SI_I1): Defined.
8672         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
8673         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
8674         __builtin_ia32_vpermil2ps256.
8675         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8676         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8677         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
8678         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8679         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8680         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
8681         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
8682         CODE_FOR_xop_vpermil2v8sf3.
8683         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
8684         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
8685         * config/i386/xopintrin.h (_mm_permute2_pd): New.
8686         (_mm256_permute2_pd): New.
8687         (_mm_permute2_ps): New.
8688         (_mm256_permute2_ps): New.
8689
8690 2010-02-15  Nick Clifton  <nickc@redhat.com>
8691
8692         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
8693         boolean parameters.  Use emit_jump_insn when emitting a pop
8694         instruction containing a return insn.
8695         (push): Use 'true' rather than '1' as second parameter to F.
8696         (h8300_expand_prologue): Likewise.
8697         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
8698         (h8300_expand_epilogue): Likewise.
8699
8700 2010-02-15  Richard Guenther  <rguenther@suse.de>
8701
8702         PR middle-end/43068
8703         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
8704         if that is zero.
8705
8706 2010-02-15  Nick Clifton  <nickc@redhat.com>
8707
8708         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
8709         delta.
8710
8711 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
8712
8713         * intl.c (fake_ngettext): New function.
8714         * intl.h (fake_ngettext): Declare.
8715         (ngettext): Define macro.
8716         * collect2.c (notice_translated): New function.
8717         (main): Use notice_translated and ngettext.
8718         * collect2.h (notice_translated): Declare.
8719
8720 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
8721
8722         * reorg.c (delete_computation): Comment fixes.
8723         * caller-save.c (setup_save_areas): Idem.
8724         * sel-sched-dump.c (dump_lv_set): Idem.
8725         * rtl.def: Idem.
8726
8727 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8728
8729         * config/s390/s390.c (s390_sched_init): New function.
8730         (TARGET_SCHED_INIT): Target hook defined.
8731
8732 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
8733             Jack Howarth  <howarth@bromo.med.uc.edu>
8734             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
8735
8736         PR target/42982
8737         Partial revert of unintended change in fix for PR41605.
8738         * config/darwin.h: Fix typo.
8739         * config/darwin9.h: Same.
8740
8741 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
8742
8743         * c-pch.c (pch_init): Clear v.
8744
8745 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8746
8747         PR middle-end/42930
8748         * graphite-scop-detection.c (graphite_can_represent_scev): Call
8749         graphite_can_represent_init for MULT_EXPR.
8750
8751 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8752
8753         PR middle-end/42914
8754         PR middle-end/42530
8755         * graphite-sese-to-poly.c (remove_phi): New.
8756         (translate_scalar_reduction_to_array): Call remove_phi.
8757
8758 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8759
8760         PR middle-end/42771
8761         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
8762         * graphite-clast-to-gimple.h (gloog): Update declaration.
8763         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
8764         * graphite-poly.h (struct poly_bb): Add missing comments.
8765         (struct scop): Add poly_scop_p field.
8766         (POLY_SCOP_P): New.
8767         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
8768         * graphite.c (graphite_transform_loops): Build the polyhedral
8769         representation for each scop before code generation.
8770         * sese.c (rename_variables_in_operand): Removed.
8771         (rename_variables_in_expr): Return the renamed expression.
8772         (rename_sese_parameters): New.
8773         * sese.h (rename_sese_parameters): Declared.
8774
8775 2010-02-11  Richard Guenther  <rguenther@suse.de>
8776
8777         PR tree-optimization/42998
8778         * tree-ssa-pre.c (create_expression_by_pieces): Treat
8779         POINTER_PLUS_EXPR properly.
8780
8781 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8782             Changpeng Fang  <changpeng.fang@amd.com>
8783
8784         PR middle-end/40886
8785         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
8786         the cost of an IV candidate when the IV is used in a test against zero.
8787
8788         * gcc.dg/tree-ssa/ivopts-3.c: New.
8789
8790 2010-02-11  Richard Guenther  <rguenther@suse.de>
8791
8792         PR lto/41664
8793         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
8794         pointer-vs-decl case by swapping refs.  Handle some cases
8795         of pointer-vs-decl disambiguations more conservatively.
8796         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
8797         to false after expanding.
8798
8799 2010-02-11  Richard Guenther  <rguenther@suse.de>
8800
8801         PR driver/43021
8802         * gcc.c (process_command): Handle LTO file@offset case more
8803         appropriately.
8804
8805 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
8806
8807         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
8808         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
8809         of DEBUG_INSNs.
8810         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
8811
8812         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
8813         if MEM's mode size isn't DWARF2_ADDR_SIZE.
8814         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
8815         Optimize eq/ne comparisons when both arguments are known to be
8816         zero-extended.
8817         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
8818         Don't mask operands unnecessarily if they are known to be already
8819         zero-extended.
8820
8821 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8822
8823         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
8824         instead of loop.
8825
8826 2010-02-10  Richard Guenther  <rguenther@suse.de>
8827
8828         PR tree-optimization/43017
8829         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
8830         for wrapping signed arithmetic.
8831
8832 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
8833
8834         PR debug/43010
8835         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
8836         if no debug info should be emitted for it.
8837
8838 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
8839
8840         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
8841         note when flag_exceptions is set.
8842
8843 2010-02-10  Duncan Sands  <baldrick@free.fr>
8844
8845         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
8846
8847 2010-02-10  Richard Guenther  <rguenther@suse.de>
8848
8849         PR c/43007
8850         * tree.c (get_unwidened): Handle constants.
8851         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
8852
8853 2010-02-10  Martin Jambor  <mjambor@suse.cz>
8854
8855         PR lto/42985
8856         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
8857         check for variable argument counts independently.
8858
8859 2010-02-10  Christian Bruel  <christian.bruel@st.com>
8860
8861         PR target/42841
8862         * config/sh/sh.c (find_barrier): Increase length for non delayed
8863         conditional branches.
8864
8865 2010-02-10  Christian Bruel  <christian.bruel@st.com>
8866
8867         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
8868
8869 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
8870
8871         * builtins.c (set_builtin_user_assembler_name): Also handle
8872         ffs if int is smaller than word.
8873
8874 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
8875
8876         PR middle-end/42973
8877         * ira-conflicts.c (get_dup): Remove.
8878         (process_reg_shuffles): Add new parameter.  Use it as an
8879         additional guard for copy generation.
8880         (add_insn_allocno_copies): Rewrite.
8881
8882 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
8883
8884         * common.opt (fsched2-use-traces): Preserved for backward
8885         compatibility.
8886         * doc/invoke.texi: Remove the documentation about option
8887         -fsched2-use-traces.
8888         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
8889         flag_sched2_use_traces.
8890         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
8891         the backward compatibility flag section.
8892
8893 2010-02-09  Richard Guenther  <rguenther@suse.de>
8894
8895         PR tree-optimization/43008
8896         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
8897         make HEAP variables initialized from global memory if they
8898         are not known builtin functions.
8899         (find_func_aliases): Adjust.
8900
8901 2010-02-09  Richard Guenther  <rguenther@suse.de>
8902
8903         PR tree-optimization/43000
8904         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
8905         arithmetic manually.
8906
8907 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
8908
8909         PR tree-optimization/42931
8910         * tree-loop-linear.c (try_interchange_loops): Don't call
8911         double_int_mul if estimated_loop_iterations failed.
8912
8913 2010-02-08  Martin Jambor  <mjambor@suse.cz>
8914
8915         PR middle-end/42898
8916         * tree-sra.c (build_accesses_from_assign): Do not mark in
8917         should_scalarize_away_bitmap if stmt has volatile ops.
8918         (sra_modify_assign): Do not process assigns piecemeal if if stmt
8919         has volatile ops.
8920
8921 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
8922
8923         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
8924
8925 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
8926
8927         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
8928         before the pattern.
8929
8930 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
8931
8932         PR middle-end/42946
8933         * df-core.c (df_finish_pass): Change type of saved_flags to int.
8934
8935 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
8936
8937         PR middle-end/42988
8938         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
8939         to unknown_dependence.
8940         (graphite_legal_transform_dr): Handle the unknown_dependence.
8941         (graphite_carried_dependence_level_k): Same.
8942
8943 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
8944
8945         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
8946
8947 2010-02-07  Richard Guenther  <rguenther@suse.de>
8948
8949         PR middle-end/42991
8950         * expr.c (get_inner_reference): Always initialize *pbitsize.
8951
8952 2010-02-07  Richard Guenther  <rguenther@suse.de>
8953
8954         PR middle-end/42956
8955         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
8956         new ARRAY_REFs on variable size element or minimal index arrays.
8957         Complete.
8958         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
8959         gimple_fold_indirect_ref.
8960
8961 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
8962
8963         PR target/42957
8964         * arm.c (arm_override_options): Just return if the user has specified
8965         an invalid fpu name.
8966
8967 2010-02-03  Jason Merrill  <jason@redhat.com>
8968
8969         PR c++/42870
8970         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
8971         i386_pe_maybe_record_exported_symbol.
8972
8973 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
8974
8975         PR target/42924
8976         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
8977         (pa_delegitimize_address): New function.
8978
8979 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
8980
8981         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
8982         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
8983
8984 2010-02-05  Richard Guenther  <rguenther@suse.de>
8985
8986         PR lto/42762
8987         * lto-streamer-in.c (get_resolution): Deal with references
8988         to undefined functions.
8989
8990 2010-02-05  Richard Guenther  <rguenther@suse.de>
8991
8992         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
8993         (fold_const_aggregate_ref): Likewise.
8994         (ccp_fold_stmt): Substitute loads.
8995         (maybe_fold_reference): Verify types before substituting.
8996         Unshare properly.
8997         (fold_gimple_assign): Unshare properly.
8998         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
8999
9000 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9001
9002         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9003         for rs6000_gen_cell_microcode.
9004
9005 2010-02-04  Richard Guenther  <rguenther@suse.de>
9006
9007         PR rtl-optimization/42952
9008         * dse.c (const_or_frame_p): Remove MEM handling.
9009
9010 2010-02-04  Nick Clifton  <nickc@redhat.com>
9011
9012         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9013         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9014         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9015         (mn10300_asm_output_mi_thunk): New function.
9016         (mn10300_can_output_mu_thunk): New function.
9017         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9018         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9019         (FUNCTION_ARG): Delete incorrect comment.
9020
9021 2010-02-03  Jason Merrill  <jason@redhat.com>
9022
9023         PR c++/40138
9024         * fold-const.c (operand_equal_p): Handle erroneous types.
9025
9026 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9027
9028         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9029
9030 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9031
9032         PR rtl-optimization/42941
9033         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9034         of xmalloc.
9035
9036 2010-02-03  Jason Merrill  <jason@redhat.com>
9037
9038         PR c++/35652
9039         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9040
9041 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9042
9043         PR debug/42896
9044         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9045         (cselib_reset_table): Renamed from...
9046         (cselib_reset_table_with_next_value): ... this.
9047         (cselib_get_next_uid): Renamed from...
9048         (cselib_get_next_unknown_value): ... this.
9049         * cselib.c (next_uid): Renamed from...
9050         (next_unknown_value): ... this.
9051         (cselib_clear_table): Adjust.
9052         (cselib_reset_table): Adjust.  Renamed from...
9053         (cselib_reset_table_with_next_value): ... this.
9054         (cselib_get_next_uid): Adjust.  Renamed from...
9055         (cselib_get_next_unknown_value): ... this.
9056         (get_value_hash): Use hash.
9057         (cselib_hash_rtx): Likewise.
9058         (new_cselib_val): Adjust.  Set and dump uid.
9059         (cselib_lookup_mem): Pass next_uid as hash.
9060         (cselib_subst_to_values): Likewise.
9061         (cselib_log_lookup): Dump uid.
9062         (cselib_lookup): Pass next_uid as hash.  Adjust.
9063         (cselib_process_insn): Adjust.
9064         (cselib_init): Initialize next_uid.
9065         (cselib_finish): Adjust.
9066         (dump_cselib_table): Likewise.
9067         * dse.c (canon_address): Dump value uid.
9068         * print-rtl.c (print_rtx): Print value uid.
9069         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9070         (dvuid): New type.
9071         (dv_uid): New function, sort of renamed from...
9072         (dv_htab_hash): ... this, reimplemented in terms of it and...
9073         (dv_uid2hash): ... this.  New.
9074         (variable_htab_eq): Drop excess assertions.
9075         (tie_break_pointers): Removed.
9076         (canon_value_cmp): Compare uids.
9077         (variable_post_merge_New_vals): Print uids.
9078         (vt_add_function_parameters): Adjust.
9079         (vt_initialize): Reset table.  Adjust.
9080
9081 2010-02-03  Richard Guenther  <rguenther@suse.de>
9082
9083         PR tree-optimization/42944
9084         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9085         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9086         malloc and calloc clobbering errno.
9087
9088 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9089
9090         * doc/invoke.texi: Fix name of sched1 dump.
9091
9092         * opts.c (decode_options): Set flag_tree_switch_conversion
9093         only conditionally on optimize >= 2.
9094
9095         * gcse.c: Assorted comment fixes in pass description.
9096
9097 2010-02-03  Anthony Green  <green@moxielogic.com>
9098
9099         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9100         nop padding in order to maintain alignment of storage location of
9101         target function address.
9102         (moxie_trampoline_init): Store target function address at newly
9103         aligned location.
9104         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9105         to 32.
9106         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9107
9108 2010-02-03  Richard Guenther  <rguenther@suse.de>
9109
9110         PR middle-end/42927
9111         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9112
9113 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9114
9115         * config.gcc: Reenable check for obsolete targets.
9116         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9117         mips-sgi-irix6.[0-4]*.
9118
9119 2010-02-02  Nick Clifton  <nickc@redhat.com>
9120
9121         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9122         constant size of 4 as being the same as 0.
9123         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9124         can take values in the range 0..4.
9125
9126 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9127
9128         PR java/41991
9129         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9130         as _darwin10_Unwind_FindEnclosingFunction().
9131         * libgcc-libsystem.ver: New.
9132
9133 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9134
9135         PR target/41399
9136         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9137         implicitly set registers.
9138
9139 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9140
9141         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9142         (arm_override_options): Allow automatic selection of the thread
9143         pointer register if thumb2.
9144         (legitimize_pic_address): Improve code sequences for Thumb2.
9145         (arm_call_tls_get_addr): Likewise.
9146         (legitimize_tls_address): Likewise.
9147         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9148         (pic_load_addr_32bit): ... this.  New named pattern.
9149         * thumb2.md (pic_load_addr_thumb2): Delete.
9150         (pic_load_dot_plus_four): Delete.
9151         (tls_load_dot_plus_four): New named pattern.
9152
9153 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9154
9155         PR libgomp/29986
9156         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9157         Document fix for TLS bug.
9158
9159 2010-01-31  Richard Guenther  <rguenther@suse.de>
9160
9161         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9162         conservatively correct.
9163
9164 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9165
9166         PR target/42850
9167         Revert:
9168         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9169
9170         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9171
9172 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9173
9174         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9175
9176 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9177
9178         * config.gcc: Adjust order of makefile fragments for mingw targets.
9179
9180 2010-01-31  Richard Guenther  <rguenther@suse.de>
9181
9182         PR middle-end/42898
9183         * gimplify.c (gimplify_init_constructor): For volatile LHS
9184         initialize a temporary.
9185
9186 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9187
9188         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9189         --with-headers
9190         * configure: Regenerate.
9191
9192 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9193
9194         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9195         the same alias set and their sizes different constantness.
9196         (aliasing_component_refs_p): Revert 2009-10-24 change.
9197
9198 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9199
9200         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9201         unused.
9202
9203 2010-01-29  Richard Guenther  <rguenther@suse.de>
9204
9205         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9206         Assert we successfully updated the call.
9207
9208 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9209
9210         PR rtl-optimization/42889
9211         * df.h (df_set_bb_dirty_nonlr): New prototype.
9212         * df-core.c (df_set_bb_dirty_nonlr): New function.
9213         * df-scan.c (df_insn_rescan): Call it instead of
9214         df_set_bb_dirty for DEBUG_INSNs.
9215
9216 2010-01-29  Richard Guenther  <rguenther@suse.de>
9217
9218         PR middle-end/37448
9219         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9220         quadratic behavior in most cases.
9221
9222 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9223
9224         PR target/42891
9225         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9226         in the call to gen_x86_movsicc_0_m1.
9227
9228 2010-01-28  Richard Guenther  <rguenther@suse.de>
9229
9230         PR tree-optimization/42871
9231         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9232
9233 2010-01-28  Richard Guenther  <rguenther@suse.de>
9234
9235         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9236         into call arguments.
9237
9238 2010-01-28  Richard Guenther  <rguenther@suse.de>
9239
9240         PR middle-end/42883
9241         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9242         the forwarder if the destination is an EH landing pad.
9243
9244 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9245
9246         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9247         block list passed to gimple_duplicate_sese_tail.
9248         (parallelize_loops): Avoid parallelization when the function
9249         has_nonlocal_label.
9250         Avoid parallelization when the preheader is IRREDUCIBLE.
9251         Try to optimize when estimated_loop_iterations_int is unresolved.
9252         Add the loop's location to the dump file.
9253         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9254         (gimple_duplicate_sese_tail): Remove the check for the latch.
9255         Redirect nexits to the exit block.
9256         Remove handling of the incoming edges to the latch.
9257         Redirect the backedge from the copied latch to the exit bb.
9258
9259 2010-01-28  Michael Matz  <matz@suse.de>
9260
9261         PR target/42881
9262         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9263         Wrap force_reg into a sequence, emit it before user.
9264
9265 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9266
9267         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9268         (arm_rev): New.
9269         (arm_legacy_rev): Likewise.
9270         (thumb_legacy_rev): Likewise.
9271
9272 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9273
9274         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9275         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9276         on MEM's address failed, try avoid_constant_pool_reference and
9277         recurse if it returned something different.
9278         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9279         address, try avoid_constant_pool_reference and recurse if it
9280         returned something different.
9281         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9282         address and avoid_constant_pool_reference returned something
9283         different, don't set have_address.
9284
9285 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
9286
9287         PR debug/42861
9288         * var-tracking.c (val_store): Add modified argument, obey it.
9289         Adjust callers.
9290         (count_uses): Move down logging of main.
9291         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9292         don't need resolution.
9293         (emit_notes_in_bb): Likewise.
9294
9295 2010-01-27  Richard Guenther  <rguenther@suse.de>
9296
9297         PR middle-end/42878
9298         * tree-inline.c (remap_decl): Delay remapping of SSA name
9299         default definitions until we need them.
9300
9301 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9302
9303         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9304         (rs6000_delegitimize_address): New function.
9305
9306         * config/s390/s390.c (s390_delegitimize_address): Call
9307         delegitimize_mem_from_attrs.
9308
9309         PR middle-end/42874
9310         * tree-inline.c (cannot_copy_type_1): Removed.
9311         (copy_forbidden): Don't forbid copying of functions containing
9312         records/unions with variable length fields.
9313
9314 2010-01-27  Christian Bruel  <christian.bruel@st.com>
9315
9316         Revert:
9317         PR target/42841
9318         * config/sh/sh.c (find_barrier): Increase length for non delayed
9319         conditional branches.
9320
9321 2010-01-27  Matthias Klose  <doko@ubuntu.com>
9322
9323         * configure.ac (gnu-unique-object): Fix ldd version check.
9324         * configure: Regenerate.
9325
9326 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9327
9328         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
9329         HAVE_GNU_AS value.
9330         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
9331         Test for HAVE_GNU_AS value.
9332
9333 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9334
9335         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
9336         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
9337         INT64_TYPE): Define.
9338         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
9339         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9340         INT_LEAST64_TYPE): Define.
9341         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
9342         UINT_LEAST64_TYPE): Define.
9343         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
9344         INT_FAST64_TYPE): Define.
9345         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9346         UINT_FAST64_TYPE): Define.
9347         (INTMAX_TYPE, UINTMAX_TYPE): Define.
9348         (INTPTR_TYPE, UINTPTR_TYPE): Define.
9349         (SIG_ATOMIC_TYPE): Define.
9350
9351 2010-01-26  Richard Guenther  <rguenther@suse.de>
9352
9353         * df-scan.c (df_scan_set_bb_info): Remove assert.
9354         (df_insn_rescan_debug_internal): Merge asserts.
9355         (df_install_ref): Likewise.
9356         (df_mark_reg): Use bitmap_set_range.
9357         (df_hard_reg_used_p): Remove assert.
9358         (df_hard_reg_used_count): Likewise.
9359
9360 2010-01-26  Richard Guenther  <rguenther@suse.de>
9361
9362         PR rtl-optimization/42685
9363         * web.c (web_main): Ignore DEBUG_INSNs.
9364
9365 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
9366
9367         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
9368
9369         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
9370         Fix types of fndecl and arglist parameters.
9371
9372 2010-01-26  Richard Guenther  <rguenther@suse.de>
9373
9374         PR middle-end/42806
9375         * tree-eh.c (unsplit_eh): Skip debug insns.
9376
9377 2010-01-26  Richard Guenther  <rguenther@suse.de>
9378
9379         PR tree-optimization/42250
9380         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
9381
9382 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
9383
9384         PR fortran/42866
9385         * omp-low.c (expand_omp_sections): Only use single_pred if
9386         l2_bb is single_pred_p.
9387
9388 2010-01-25  Christian Bruel  <christian.bruel@st.com>
9389
9390         PR target/42841
9391         * config/sh/sh.c (find_barrier): Increase length for non delayed
9392         conditional branches.
9393         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
9394
9395 2010-01-24  David S. Miller  <davem@davemloft.net>
9396
9397         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
9398         define if not using GAS.
9399         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9400         Likewise.  Delete SECTION_MERGE code, which is only applicable
9401         when using GAS.
9402
9403 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
9404
9405         PR c++/42748
9406         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
9407         mangling of va_list in system headers.
9408
9409 2010-01-23  Toon Moene  <toon@moene.org>
9410
9411         * tree-predcom.c (combine_chains): Return NULL, not false.
9412
9413 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
9414
9415         * tree-loop-distribution.c (distribute_loop): Fix declaration and
9416         initialization of variable res to agree with return type.
9417
9418 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
9419
9420         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
9421         * tree-sra.c: Add include of expr.h.
9422
9423 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
9424
9425         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
9426         insert the debug stmt on the single non-EH edge from the stmt.
9427
9428 2010-01-22  Richard Henderson  <rth@redhat.com>
9429
9430         PR tree-opt/42833
9431         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
9432         the RHS until after generate_subtree_copies has insertted its
9433         code before the current statement.
9434
9435 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
9436
9437         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
9438
9439         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
9440
9441 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9442
9443         PR tree-optimization/42585
9444         * tree-sra.c (struct access): New field grp_total_scalarization.
9445         (dump_access): Dump the new field.
9446         (should_scalarize_away_bitmap): New variable.
9447         (cannot_scalarize_away_bitmap): Likewise.
9448         (sra_initialize): Allocate new bitmaps.
9449         (sra_deinitialize): Free new bitmaps.
9450         (create_access_1): New function.
9451         (create_access): Parts moved to create_access_1.
9452         (type_consists_of_records_p): New function.
9453         (completely_scalarize_record): Likewise.
9454         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
9455         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
9456         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
9457         access.
9458         (analyze_all_variable_accesses): Completely scalarize small eligible
9459         records.
9460
9461 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9462
9463         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
9464
9465 2010-01-21  Andrew Haley  <aph@redhat.com>
9466
9467         * gcc.c (process_command): Move lang_specific_driver before
9468         setting cc_libexec_prefix.
9469
9470 2010-01-21  Richard Guenther  <rguenther@suse.de>
9471
9472         PR middle-end/19988
9473         * fold-const.c (negate_expr_p): Pretend only negative
9474         real constants are easily negatable.
9475
9476 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
9477             Jason Merrill  <jason@redhat.com>
9478
9479         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
9480         (TYPE_TRANSPARENT_AGGR): this, for union and record.
9481         * calls.c (initialize argument_information): Handle it.
9482         * c-common.c (handle_transparent_union_attribute): Use new name.
9483         * c-decl.c (finish_struct): Ditto.
9484         * c-typeck.c (type_lists_compatible_p): Ditto.
9485         (convert_for_assignment): Use new name and also handle record.
9486         * function.c (aggregate_value_p): Handle it.
9487         (pass_by_reference): Ditto.
9488         (assign_parm_data_types): Ditto.
9489         * print-tree.c (print_node): Ditto.
9490         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
9491         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
9492         * tree.c (first_field): New fn.
9493
9494 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9495
9496         PR target/42818
9497         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
9498         even when linking statically, for now.
9499
9500 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
9501
9502         PR debug/42715
9503         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
9504         without a cselib val.
9505         (count_uses): Accept MO_VAL_SET with no val on stores.
9506         (add_stores): Likewise.
9507
9508 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9509
9510         * var-tracking.c (check_value_val): Add a compile time assertion.
9511         (dv_is_decl_p): Simplify.
9512         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
9513         gcc_assert if ENABLE_CHECKING.
9514
9515 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
9516
9517         PR debug/42782
9518         * var-tracking.c: Include tree-flow.h.
9519         (mem_dies_at_call): New.
9520         (dataflow_set_preserve_mem_locs): Use it.
9521         (dataflow_set_remove_mem_locs): Likewise.
9522         (dump_var): Renamed from dump_variable.  Adjust all callers.
9523         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
9524         * Makefile.in (var-tracking.o): Adjust deps.
9525
9526 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
9527
9528         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
9529
9530 2010-01-20  Richard Guenther  <rguenther@suse.de>
9531
9532         PR tree-optimization/42717
9533         * tree-ssa-dce.c (get_live_post_dom): Remove.
9534         (forward_edge_to_pdom): Take an arbitrary edge to copy
9535         degenerate PHI args from.
9536         (remove_dead_stmt): Use the first post-dominator even if it
9537         does not contain live statements as redirection destination.
9538
9539 2010-01-20  Richard Guenther  <rguenther@suse.de>
9540
9541         * tree-inline.c (estimate_num_insns): Handle EH builtins.
9542
9543 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9544
9545         * sel-sched.c (create_speculation_check): Remove set but not used
9546         variable twin.
9547         (try_transformation_cache): Remove set but not used variable ds.
9548         (calculate_privileged_insns): Remove set but not used variables
9549         cur_insn and min_spec_insn.
9550         (find_best_expr): Remove set but not used variable avail_n.
9551         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
9552         variable e.
9553         * cgraphunit.c (assemble_thunk): Remove set but not used variable
9554         false_label.
9555         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
9556         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
9557         new_scop_exit_edge.
9558
9559 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
9560
9561         PR bootstrap/42786
9562         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
9563         cpu types.  Add support for *-sse3 cpu types.
9564         (x86_64-*-*): Ditto.
9565
9566 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9567
9568         PR middle-end/42803
9569         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
9570         argument, call initializer_constant_valid_p_1 instead of
9571         initializer_constant_valid_p, pass CACHE to it, return NULL
9572         immediately if first call returns NULL.
9573         (initializer_constant_valid_p_1): New function.
9574         (initializer_constant_valid_p): Use it.
9575
9576 2010-01-20  Thomas Quinot  <quinot@adacore.com>
9577
9578         * tree.def (PLACEHOLDER_EXPR): Fix comment.
9579
9580 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9581
9582         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
9583         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
9584         (loc_list_from_tree): Don't handle unsigned division.  Handle
9585         signed modulo using DW_OP_{over,over,div,mul,minus}.
9586         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
9587         modulo instead of signed.
9588
9589 2010-01-20  DJ Delorie  <dj@redhat.com>
9590
9591         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
9592         (Fpa): Pass it
9593         (h8300_emit_stack_adjustment): Propogate it.
9594         (push): Pass it.
9595         (h8300_expand_prologue): Likewise.
9596         (h8300_expand_epilogue): Likewise.
9597
9598 2010-01-19  Michael Matz  <matz@suse.de>
9599
9600         PR tree-optimization/41783
9601         * tree-data-ref.c (toplevel): Include flags.h.
9602         (dump_data_dependence_relation):  Also dump the inputs if the
9603         result will be unknown.
9604         (split_constant_offset_1): Look through some conversions.
9605         * tree-predcom.c (determine_roots_comp): Restart a new chain if
9606         the offset from last element is too large.
9607         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
9608         (reassociate_to_the_same_stmt): Handle vector registers.
9609         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
9610         (e.g. conversions).
9611         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
9612         wide_prolog_niters argument, emit widening instructions.
9613         (vect_do_peeling_for_alignment): Adjust caller, use widened
9614         variant of the iteration cound.
9615         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
9616
9617 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9618
9619         PR target/38697
9620         * config/arm/neon-testgen.m (emit_automatics): New parameter
9621         features. Adjust for Fixed_return_reg feature.
9622         (test_intrinsic): Call emit_automatics with new feature.
9623         * config/arm/neon.ml: Update copyright years.
9624         (features): New Fixed_return_reg feature.
9625         (ops): Update feature for Vget_low.
9626
9627 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
9628
9629         PR tree-optimization/42719
9630         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
9631         stmt uses.
9632
9633         PR debug/42728
9634         * fwprop.c (all_uses_available_at): Return false if def_set dest
9635         is a REG that is used in def_insn.
9636
9637 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
9638
9639         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
9640
9641         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
9642         Add argument names.
9643
9644         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
9645
9646         * target.h (struct gcc_target) <secondary_reload>: Change type
9647         of last argument to secondary_reload_info *.
9648
9649 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
9650
9651         PR target/42774
9652         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
9653         memory references with unaligned offsets.  Remove CQImode handling.
9654         (unaligned_memory_operand): Return 1 for memory references with
9655         unaligned offsets.  Remove CQImode handling.
9656
9657 2010-01-18  Richard Guenther  <rguenther@suse.de>
9658
9659         PR middle-end/39954
9660         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
9661         builtin calls.
9662
9663 2010-01-18  Richard Guenther  <rguenther@suse.de>
9664
9665         PR tree-optimization/42781
9666         * tree-ssa-structalias.c (find_what_var_points_to): Skip
9667         restrict processing only if the original variable was artificial.
9668
9669 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
9670
9671         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
9672         find number of popped argument bytes.
9673
9674         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
9675         Fix the text that describes the return value for invalid insns.
9676
9677         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
9678
9679         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
9680         Clarify what 'cost of the -dependence' is.  Fix quoting.
9681
9682         * toplev.c (default_get_pch_validity): Rename argument to "sz".
9683         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
9684
9685 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
9686
9687         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
9688         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
9689
9690 2010-01-17  Richard Guenther  <rguenther@suse.de>
9691
9692         PR middle-end/42248
9693         * function.c (split_complex_args): Take a VEC to modify.
9694         (assign_parms_augmented_arg_list): Build a VEC instead of
9695         a chain of PARM_DECLs.
9696         (assign_parms_unsplit_complex): Take a VEC of arguments.
9697         Do not fixup unmodified parms.
9698         (assign_parms): Deal with the VEC.
9699         (gimplify_parameters): Likewise.
9700
9701 2010-01-17  Richard Guenther  <rguenther@suse.de>
9702
9703         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
9704         node existence check.
9705         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
9706         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
9707         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
9708         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
9709         (gimple_execute_on_growing_pred): Likewise.
9710
9711 2010-01-17  Richard Guenther  <rguenther@suse.de>
9712
9713         PR tree-optimization/42773
9714         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
9715         (compute_antic_aux): Likewise.
9716         (compute_partial_antic_aux): Likewise.
9717
9718 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
9719
9720         PR debug/42767
9721         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
9722         and US_TRUNCATE.
9723
9724 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
9725
9726         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
9727         appearance.
9728
9729         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
9730         Fix markup for strict argument.
9731
9732         (TARGET_SCHED_REORDER2): Fix argument types.
9733
9734         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
9735         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
9736
9737         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
9738         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
9739
9740         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
9741         Add argument name.
9742
9743         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
9744         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
9745         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
9746         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
9747         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
9748
9749         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
9750
9751         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
9752
9753         (TARGET_ASM_RELOC_RW_MASK): Add return type.
9754         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
9755
9756         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
9757
9758         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
9759         Use prototype.
9760
9761         (TARGET_ASM_NAMED_SECTION): Fix argument list.
9762
9763         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
9764         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
9765
9766         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
9767
9768         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
9769
9770         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
9771         referring to it.  Fix language.
9772
9773         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
9774
9775         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
9776
9777         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
9778
9779         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
9780
9781         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
9782         '@var{stream}.  Remove stray 'and'.
9783
9784         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
9785
9786         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
9787
9788         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
9789
9790         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
9791         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
9792
9793         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
9794         Fix description of return value.
9795         Rename argument "sz" to "len."
9796
9797         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
9798         Clarify meaning of 'true' return value.
9799
9800         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
9801
9802         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
9803         rep_mode versus mode_rep.
9804
9805         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
9806
9807         (TARGET_BUILTIN_DECL): Fix name.
9808
9809         (TARGET_COMMUTATIVE_P): Fix type of first argument.
9810
9811         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
9812
9813         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
9814
9815         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
9816
9817         (TARGET_RELAXED_ORDERING): Use @deftypevr.
9818
9819         (TARGET_GET_DRAP_RTX): Note that this is a hook.
9820         Clarify language.
9821
9822         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
9823         Rename argument tm_fn to md_fn.
9824
9825         (TARGET_OPTION_PRINT): Fix argument list.
9826
9827 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
9828
9829         PR target/42664
9830         * config/i386/i386.c (ix86_fixup_binary_operands):
9831         Revert FMA4 fixup of operands.
9832
9833 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9834
9835         PR gcc/42525
9836         * Makefile.in (write_entries_to_file, install-plugin):
9837         Use \012 instead of \n with tr.
9838
9839 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
9840
9841         * configure.ac (HAVE_AS_REF): New C macro.
9842         * configure: Regenerate.
9843         * config.in: Likewise.
9844         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
9845         if HAVE_AS_REF.
9846         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
9847         if HAVE_AS_REF.
9848
9849 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
9850
9851         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
9852
9853         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
9854
9855         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
9856
9857         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
9858
9859         (TARGET_IN_SMALL_DATA_P): Fix argument type.
9860
9861         (TARGET_BINDS_LOCAL_P): Fix argument type.
9862
9863         (TARGET_ASM_FILE_END): Use prototype.
9864
9865         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
9866
9867         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
9868
9869         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
9870
9871         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
9872
9873         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
9874         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
9875
9876         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
9877         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
9878
9879         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
9880         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
9881         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
9882         (TARGET_ADDR_SPACE_CONVERT): Likewise.
9883
9884         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
9885
9886         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
9887
9888         (TARGET_INIT_BUILTINS): Use prototype.
9889
9890         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
9891         Put 'const char *' in braces.  Fix parameter types.
9892         (TARGET_INVALID_CONVERSION): Fix parameter types.
9893         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
9894         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
9895
9896         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
9897         Fix argument type.
9898
9899         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
9900
9901         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
9902
9903 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
9904
9905         * doc/tm.texi (TARGET_HELP): Fix return type.
9906
9907         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
9908         in braces.  Fix argument types.
9909
9910         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
9911
9912         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
9913
9914         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
9915
9916         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
9917         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
9918
9919         (TARGET_MANGLE_TYPE): Fix argument types.
9920
9921         (TARGET_IRA_COVER_CLASSES): Use prototype.
9922
9923         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
9924
9925         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
9926
9927         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
9928
9929         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
9930
9931         (TARGET_CALLEE_COPIES): Fix argument types.
9932
9933         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
9934
9935         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
9936
9937         (TARGET_FUNCTION_VALUE): Fix argument types.
9938
9939         (TARGET_RETURN_IN_MSB): Fix argument type.
9940
9941         (TARGET_RETURN_IN_MEMORY): Fix argument types.
9942
9943         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
9944
9945         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
9946
9947         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
9948         agree with return type.
9949
9950         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
9951
9952 2010-01-15  Jing Yu  <jingyu@google.com>
9953
9954         PR rtl-optimization/42691
9955         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
9956         a pseudo to a constant and are merged, and adjust comments.
9957
9958 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9959
9960         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
9961
9962 2010-01-15  Richard Guenther  <rguenther@suse.de>
9963
9964         PR middle-end/42739
9965         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
9966         labels of computed or non-local gotos to the destination.
9967         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
9968         landing pad label is the first label.
9969
9970 2010-01-15  Richard Guenther  <rguenther@suse.de>
9971
9972         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
9973
9974 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9975
9976         PR target/42747
9977         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
9978         to allow generation of the xssqrtdp instruction on power7.
9979         (sqrtdf2_fpr): Ditto.
9980
9981 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9982
9983         PR middle-end/42674
9984         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
9985         functions with noreturn attribute.
9986
9987         PR c++/42608
9988         * varasm.c (declare_weak): Add weak attribute to decl if it
9989         doesn't have one already.
9990         (assemble_external): Only add decls to weak_decls if they also
9991         have weak attribute.
9992
9993 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
9994
9995         * var-tracking.c (var_reg_delete): Don't delete the association
9996         between REGs and values or one-part variables if the register
9997         isn't clobbered.
9998
9999 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10000
10001         PR debug/42657
10002         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10003         because its first operand is a non-localized variable.
10004
10005 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10006
10007         PR tree-optimization/42706
10008         * tree-sra.c (encountered_recursive_call): New variable.
10009         (encountered_unchangable_recursive_call): Likewise.
10010         (sra_initialize): Initialize both new variables.
10011         (callsite_has_enough_arguments_p): New function.
10012         (scan_function): Call decl and flags check only for IPA-SRA, check
10013         whether there is a recursive call and whether it has enough arguments.
10014         (all_callers_have_enough_arguments_p): New function.
10015         (convert_callers): Look for recursive calls only when
10016         encountered_recursive_call is set.
10017         (ipa_early_sra): Bail out either if
10018         !all_callers_have_enough_arguments_p or
10019         encountered_unchangable_recursive_call.
10020
10021 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10022
10023         * sel-sched.c: Add 2010 to copyright years.
10024         * sel-sched-ir.c: Likewise.
10025         * sel-sched-ir.h: Likewise.
10026
10027 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10028
10029         PR tree-optimization/42714
10030         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10031         constructors specially.
10032
10033 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10034
10035         * config/i386/drivers-i386.c (detect_caches_intel):
10036         Add l2sizekb parameter and fill in.
10037         (host_detect_local_cpu): Add l2sizekb, fill in.
10038         Add Atom small cache heuristic.
10039
10040 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10041
10042         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10043         Add level3 parameter and fill in.
10044         (detect_caches_intel): Handle level3 cache.
10045
10046 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10047
10048         * config/i386/drivers-i386.c (host_detect_local_cpu):
10049         Fix core duo detection.
10050
10051 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10052
10053         * config/i386/drivers-i386.c (host_detect_local_cpu):
10054         Fix Atom detection.
10055
10056 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10057
10058         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10059         (rs6000_variable_issue_1): this.  Use...
10060         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10061
10062 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10063
10064         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10065         sel_restore_notes.  Update all callers.  Call reemit_notes
10066         for all insns.
10067
10068 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10069
10070         PR rtl-optimization/42246
10071         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10072         loops.
10073
10074 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10075
10076         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10077         all successors is the same as number of successors in current region.
10078
10079 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10080
10081         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10082         to rename is not separable.  Otherwise check that its LHS is not NULL.
10083
10084 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10085
10086         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10087
10088 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10089
10090         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10091         available registers when failed to discover LHS register class.
10092         Fix indentation.  Update comment.
10093
10094 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10095             Alexander Monakov  <amonakov@ispras.ru>
10096
10097         PR rtl-optimization/42389
10098         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10099         to can_issue_more.
10100         (advance_state_on_fence): Likewise.
10101         (sel_target_adjust_priority): Print debug output only when
10102         sched_verbose >= 4, not 2.
10103         (get_expr_cost): Do not issue all unique insns on the next cycle.
10104         (fill_insns): Initialize can_issue_more from the value saved
10105         with the fence.
10106         * sel-sched-ir.c (flist_add): New parameter issue_more.
10107         Init FENCE_ISSUE_MORE with it.
10108         (merge_fences): Likewise.
10109         (init_fences): Update call to flist_add.
10110         (add_to_fences, add_clean_fence_to_fences)
10111         (add_dirty_fence_to_fences): Likewise.
10112         (move_fence_to_fences): Update call to merge_fences.
10113         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10114         sched groups.
10115         * sel-sched-ir.h (struct _fence): New field issue_more.
10116         (FENCE_ISSUE_MORE): New accessor macro.
10117
10118 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10119
10120         PR rtl-optimization/42388
10121         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10122         that have no predecessors nor successors.  Do not call move_bb_info
10123         for empty blocks outside of current region.
10124
10125 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10126
10127         PR rtl-optimization/42294
10128         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10129         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10130         originators' originators.
10131
10132 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10133
10134         PR rtl-optimization/39453
10135         PR rtl-optimization/42246
10136         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10137         for pipelining_p.
10138         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10139
10140 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10141             Alexander Monakov  <amonakov@ispras.ru>
10142
10143         PR middle-end/42245
10144         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10145         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10146         argument.  Update all callers.
10147         (tidy_control_flow): ... and here.  Recompute topological order
10148         of basic blocks in region if necessary.
10149         (sel_redirect_edge_and_branch): Change return type.  Return true
10150         if topological order might have been invalidated.
10151         (purge_empty_blocks): Export and move from...
10152         * sel-sched.c (purge_empty_blocks): ... here.
10153         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10154         (maybe_tidy_empty_bb): Delete prototype.
10155         (purge_empty_blocks): Declare.
10156
10157 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10158
10159         PR rtl-optimization/42249
10160         * sel-sched.c (try_replace_dest_reg): When chosen register
10161         and original register is the same, do not bail out early, but
10162         still check all original insns for validity of replacing destination
10163         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10164         in this case.
10165
10166 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10167
10168         PR c/42721
10169         Port from no-undefined-overflow branch:
10170         2009-03-09  Richard Guenther  <rguenther@suse.de>
10171
10172         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10173
10174 2010-01-14  Richard Guenther  <rguenther@suse.de>
10175
10176         PR lto/42665
10177         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10178
10179 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10180
10181         PR tree-optimization/42709
10182         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10183         as scalar type in creation of constant vector operand.
10184
10185 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10186
10187         PR testsuite/42414
10188         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10189         (check-parallel-%): Match `testsuite' directory component only
10190         at the end.
10191
10192 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10193
10194         PR translation/39521
10195         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10196         strings with _().
10197
10198 2010-01-13  Richard Guenther  <rguenther@suse.de>
10199
10200         PR tree-optimization/42730
10201         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10202         offset zero.
10203
10204 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10205
10206         PR target/pr42542
10207         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10208         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10209         them signed.
10210
10211 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10212
10213         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10214         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10215         ___umulsi3_highpart.
10216
10217         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10218         rather than schedule_insns if the pass is enabled.
10219
10220 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10221
10222         PR tree-optimization/42704
10223         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10224         SSA_NAMEs.
10225
10226 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10227
10228         PR tree-optimization/42703
10229         * tree-sra.c (analyze_access_subtree): Check that we can build a
10230         reference to the original data within the aggregate.
10231
10232 2010-01-13  Richard Guenther  <rguenther@suse.de>
10233
10234         PR tree-optimization/42705
10235         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10236
10237 2010-01-13  Richard Guenther  <rguenther@suse.de>
10238
10239         PR middle-end/42716
10240         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10241
10242 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10243
10244         PR debug/41371
10245         * var-tracking.c (values_to_unmark): New variable.
10246         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10247         values_to_unmark vector.  Moved body to...
10248         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10249         instead queue it into values_to_unmark vector.
10250         (vt_find_locations): Free values_to_unmark vector.
10251
10252 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10253
10254         * config/s390/s390.c (override_options): Set
10255         default of max-pending-list-length to 256
10256
10257 2010-01-13  Richard Guenther  <rguenther@suse.de>
10258
10259         PR lto/42678
10260         * tree-pass.h (PROP_gimple_lcx): New.
10261         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10262         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10263         before the final cleanup_eh.
10264         (dump_properties): Dump PROP_gimple_lcx.
10265         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10266         (tree_lower_complex_O0): Remove.
10267         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10268         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10269         tree_lower_complex, schedule TODO_update_ssa.
10270         * lto-streamer-out.c (output_function): Stream the functions
10271         properties.
10272         * lto-streamer-in.c (input_function): Likewise.
10273         (lto_read_body): Do not override them here.
10274
10275 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10276
10277         PR c/42708
10278         * c-typeck.c (build_c_cast): Fold value cast to union type before
10279         wrapping it in a CONSTRUCTOR.
10280
10281 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10282
10283         PR rtl-optimization/42699
10284         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10285         involved.
10286
10287 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10288
10289         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10290         SUBTARGET_WARN_UNUSED_SPEC): Move ...
10291         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10292         SUBTARGET_WARN_UNUSED_SPEC): ... here
10293         * config/mips/iris5.h (LIBGCC_SPEC): Define.
10294
10295 2010-01-12  Julian Brown  <julian@codesourcery.com>
10296
10297         * config/arm/neon-schedgen.ml (Utils): Don't try to
10298         open missing module.
10299         (find_with_result): New.
10300
10301 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10302
10303         PR debug/42662
10304         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10305         sharing when canonicalizing ({lt,ge}u (plus a b) b).
10306
10307         PR tree-optimization/42645
10308         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
10309         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10310         decl_map, set processing_debug_stmt to -1 and return name without
10311         any remapping.
10312
10313 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10314
10315         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
10316         binutils version, and reword target configuration description.
10317
10318 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10319
10320         * config/avr/avr.h (LINKER_NAME): Remove.
10321
10322 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
10323
10324         PR target/42416
10325         * config/rs6000/rs6000.c (rs6000_override_options): On targets
10326         that support VSX, warn for -mno-altivec if vsx is not disabled,
10327         and disable vsx.
10328
10329 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
10330             Shujing Zhao  <pearly.zhao@oracle.com>
10331
10332         PR translation/42469
10333         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
10334         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
10335         character between option name and help text.
10336         * c.opt (imultilib): Likewise.
10337
10338 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
10339
10340         * lto-streamer-out.c (output_unreferenced_globals): Output static
10341         variables.
10342
10343 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
10344
10345         PR rtl-optimization/42621
10346         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
10347         optimizing for size.
10348         (duplicate_computed_gotos): Remove now-redundant check.
10349
10350 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
10351
10352         PR target/37454
10353         * configure.ac: Save and restore LDFLAGS and LIBS
10354         * configure: Regenerate.
10355
10356 2010-01-10  Richard Guenther  <rguenther@suse.de>
10357
10358         PR middle-end/42667
10359         * builtins.c (fold_builtin_strlen): Add type argument and
10360         convert the resulting length to it.
10361         (fold_builtin_1): Adjust.
10362
10363 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
10364
10365         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
10366         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
10367         1 insn.
10368         (num_insns_constant_wide): Adjust for that change.
10369
10370 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10371
10372         PR debug/42631
10373         * web.c (union_defs): Add used argument, to combine uses of
10374         uninitialized regs.
10375         (entry_register): Adjust type and tests of used argument.
10376         (web_main): Widen used for new use.  Pass it to union_defs.
10377         * df.h (union_defs): Adjust prototype.
10378
10379 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10380
10381         PR debug/42630
10382         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
10383         uses in new incoming argument.  Free body.
10384         (reset_debug_uses_in_loop): New.
10385         (analyze_insn_to_expand_var): Call the latter if the former found
10386         anything.  Fix whitespace.  Reject invalid dest overlaps before
10387         going through all insns in the loop.
10388
10389 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10390
10391         PR debug/42629
10392         * haifa-sched.c (dying_use_p): Debug insns don't count.
10393
10394 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10395
10396         PR middle-end/42363
10397         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
10398         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
10399         (verify_gimple_call): Reject LHS in noreturn calls.
10400
10401 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10402
10403         PR debug/42604
10404         PR debug/42395
10405         * tree-vect-loop-manip.c (adjust_info): New type.
10406         (adjust_vec): New pointer to vector.
10407         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
10408         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
10409         (slpeel_update_phis_for_duplicate_loop): Use them.
10410         (slpeel_update_phi_nodes_for_guard1): Likewise.
10411         (slpeel_update_phi_nodes_for_guard2): Likewise.
10412         (slpeel_tree_peel_loop_to_edge): Likewise.
10413         (vect_update_ivs_after_vectorizer): Likewise.
10414
10415 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10416
10417         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
10418         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
10419
10420 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10421
10422         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
10423         bogus uninitialized warning.
10424
10425 2010-01-09  Richard Guenther  <rguenther@suse.de>
10426
10427         PR middle-end/42512
10428         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
10429         the evolution is compatible with the initial condition.
10430
10431 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
10432
10433         * gcc.c (process_command): Update copyright notice dates.
10434         * gcov.c (print_version): Likewise.
10435         * gcov-dump.c (print_version): Likewise.
10436         * mips-tfile.c (main): Likewise.
10437         * mips-tdump.c (main): Likewise.
10438
10439 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10440
10441         PR target/41885
10442         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
10443         (rotlhi3): Delete.
10444         (rotlhi3_8): Delete.
10445         (rotlsi3): Delete.
10446         (rotlsi3_8): Delete.
10447         (rotlsi3_16): Delete.
10448         (rotlsi3_24): Delete.
10449         (rotl<mode>3): New.
10450         (*rotw<mode>3): New.
10451         (*rotb<mode>3): New.
10452         * config/avr/avr.c (avr_rotate_bytes): New function.
10453         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
10454
10455 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
10456
10457         PR target/37454
10458         * configure.ac: Modify -rdynamic check.
10459         * configure: Regenerate.
10460
10461 2010-01-08  DJ Delorie  <dj@redhat.com>
10462
10463         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
10464         register popping order.
10465
10466 2010-01-08  Richard Guenther  <rguenther@suse.de>
10467
10468         PR lto/42528
10469         * c.opt (fsigned-char): Also let LTO handle this option.
10470         (funsigned-char): Likewise.
10471
10472 2010-01-07  Richard Guenther  <rguenther@suse.de>
10473
10474         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
10475         (gimple_op): Likewise.
10476         (gimple_op_ptr): Likewise.
10477         (gimple_assign_set_lhs): Remove gcc_assert.
10478         (gimple_assign_set_rhs1): Likewise.
10479         (gimple_assign_set_rhs2): Likewise.
10480         (gimple_call_set_lhs): Likewise.
10481         (gimple_call_set_fn): Likewise.
10482         (gimple_call_set_fndecl): Likewise.
10483         (gimple_call_fndecl): Likewise.
10484         (gimple_call_return_type): Likewise.
10485         (gimple_call_set_chain): Likewise.
10486         (gimple_call_num_args): Likewise.
10487         (gimple_call_set_arg): Likewise.
10488         (gimple_cond_set_code): Likewise.
10489         (gimple_cond_set_lhs): Likewise.
10490         (gimple_cond_set_rhs): Likewise.
10491         (gimple_cond_set_true_label): Likewise.
10492         (gimple_cond_set_false_label): Likewise.
10493         (gimple_label_set_label): Likewise.
10494         (gimple_goto_set_dest): Likewise.
10495         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
10496         (gimple_debug_bind_get_value): Likewise.
10497         (gimple_debug_bind_get_value_ptr): Likewise.
10498         (gimple_debug_bind_set_var): Likewise.
10499         (gimple_debug_bind_set_value): Likewise.
10500         (gimple_debug_bind_reset_value): Likewise.
10501         (gimple_debug_bind_has_value_p): Likewise.
10502         (gimple_return_retval_ptr): Remove gcc_assert.
10503         (gimple_return_retval): Likewise.
10504         (gimple_return_set_retval): Likewise.
10505         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
10506         (safe_referenced_var_iterator): Remove.
10507         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
10508         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
10509         (fill_referenced_var_vec): Remove.
10510         (first_readonly_imm_use): Remove redundant gcc_assert.
10511         (phi_arg_index_from_use): Combine gcc_asserts.
10512         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
10513         (first_imm_use_stmt): Remove redundant gcc_assert.
10514         * tree-cfg.c (verify_gimple_call): Verify function and chain
10515         operands.  Verify arguments.
10516         (verify_types_in_gimple_stmt): Verify condition code and labels.
10517
10518 2010-01-07  Richard Guenther  <rguenther@suse.de>
10519
10520         PR tree-optimization/42641
10521         * sese.c (rename_map_elt_info): Use the SSA name version, do
10522         not hash pointers.
10523
10524 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
10525
10526         PR tree-optimization/42625
10527         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
10528         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
10529
10530 2010-01-07  Duncan Sands  <baldrick@free.fr>
10531
10532         * Makefile.in (PLUGIN_HEADERS): Add version.h.
10533
10534 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
10535
10536         PR target/42511
10537         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
10538         note itself is not function_invariant_p.
10539
10540 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
10541
10542         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
10543         Do not add the DF_NOTE problem.
10544         * store-motion.c (execute_rtl_store_motion): Likewise.
10545
10546 2010-01-07  Martin Jambor  <mjambor@suse.cz>
10547
10548         PR tree-optimization/42157
10549         * tree-sra.c (compare_access_positions): Stabilize sort if both
10550         accesses have integer types, return zero immediately if they are the
10551         same.
10552
10553 2010-01-06  Richard Henderson  <rth@redhat.com>
10554
10555         PR middle-end/41883
10556         * haifa-sched.c (add_to_note_list): Merge into ...
10557         (concat_note_lists): ... here, and ...
10558         (unlink_other_notes, rm_other_notes): Merge into...
10559         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
10560         NOTE_INSN_EPILOGUE_BEG.
10561
10562 2010-01-06  Richard Guenther  <rguenther@suse.de>
10563
10564         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
10565         not inline regular functions into always-inline functions.
10566
10567 2010-01-06  Nick Clifton  <nickc@redhat.com>
10568
10569         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
10570         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
10571         used together.
10572         (OVERRIDE_OPTIONS): Delete.
10573         (OPTIMIZATION_OPTIONS): Define.
10574         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
10575         * config/rx/rx.c (rx_handle_option): Issue an error message if
10576         -mcpu=rx200 and -fpu are used together.
10577         (rx_set_optimization_options): New function.  Issue an error
10578         message if an optimization attribute attempts to reset the FPU/
10579         math optimization pairing.
10580         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
10581         * config/rx/rx.opt: Set the default to 32-bit doubles.
10582         * config/rx/t-rx: Add multilibs for -nofpu option.
10583         * doc/invoke.texi: Update documentation of RX options.
10584
10585 2010-01-06  Richard Guenther  <rguenther@suse.de>
10586
10587         * tree-ssa-pre.c (name_to_id): New global.
10588         (alloc_expression_id): Simplify SSA name handling.
10589         (lookup_expression_id): Likewise.
10590         (init_pre): Zero name_to_id.
10591         (fini_pre): Free it.
10592
10593 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
10594
10595         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
10596
10597 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
10598
10599         PR target/42542
10600         * config/i386/sse.md (smaxv2di3): New.
10601         (umaxv2di3): Likewise.
10602         (sminv2di3): Likewise.
10603         (uminv2di3): Likewise.
10604
10605 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10606
10607         PR target/42564
10608         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
10609         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
10610         (legitimize_tls_address): Likewise.
10611         (sparc_tls_referenced_p): Likewise.
10612         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
10613         and adjust calls to legitimize_pic_address.
10614         (legitimate_constant_p) Use sparc_tls_referenced_p.
10615         (legitimate_pic_operand_p): Likewise.
10616         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
10617         (sparc_tls_symbol_ref_1): Delete.
10618         (sparc_tls_referenced_p): Make static, recognize specific patterns.
10619         (legitimize_tls_address): Make static, handle CONST patterns.
10620         (legitimize_pic_address): Make static, remove unused parameter and
10621         adjust recursive calls.
10622         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
10623         and adjust call to legitimize_pic_address.
10624         (sparc_output_mi_thunk): Likewise.
10625
10626 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
10627             H.J. Lu  <hongjiu.lu@intel.com>
10628
10629         PR target/42542
10630         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
10631         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
10632         operands to make them signed.
10633
10634         Revert:
10635         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10636
10637         PR target/42542
10638         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10639         GTU to GT for V4SI and V2DI.
10640
10641         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10642         (umin<mode>3): Removed.
10643         (uminv8hi3): New.
10644         (uminv4si3): Likewise.
10645
10646 2010-01-05  Martin Jambor  <mjambor@suse.cz>
10647
10648         PR tree-optimization/42462
10649         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
10650         current_function_decl to helper functions and macros.
10651
10652 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10653
10654         PR bootstrap/41771
10655         * flags.h: Don't include real.h.
10656         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
10657         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
10658         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
10659         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
10660         * dominance.c: Update copyright.
10661         * gimple.c (walk_gimple_op): Remove inline.
10662         * tree-ssa-reassoc.c: Include real.h.
10663         * Makefile.in (FLAGS_H): Remove $(REAL_H).
10664         (tree-ssa-reassoc.o): Depend on $(REAL_H).
10665
10666 2010-01-05  Nick Clifton  <nickc@redhat.com>
10667
10668         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
10669         register to push into the stack frame when the accumulator has to
10670         be saved during interrupts.
10671
10672 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
10673
10674         * doc/invoke.texi: Remove the documentation about option
10675         -Wunreachable-code.
10676         * common.opt (Wunreachable-code):  Preserved for backward
10677         compatibility.
10678         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
10679         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
10680         the backward compatibility flag section.
10681
10682 2010-01-05  Richard Guenther  <rguenther@suse.de>
10683
10684         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
10685
10686 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
10687
10688         PR other/42611
10689         * cfgexpand.c (expand_one_var): Diagnose too large variables.
10690
10691         PR tree-optimization/42508
10692         * tree-sra.c (convert_callers): Check for recursive call
10693         by comparing cgraph nodes instead of decls.
10694         (modify_function): Call ipa_modify_formal_parameters also
10695         on all same_body aliases.
10696
10697         * cgraphunit.c (cgraph_materialize_all_clones): Compare
10698         cgraph nodes when checking for same_body aliases.
10699
10700 2010-01-05  Richard Guenther  <rguenther@suse.de>
10701
10702         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
10703         allocation and lookup.
10704         (get_or_alloc_expr_for_constant): Likewise.
10705         (phi_translate): Sink allocation.
10706
10707 2010-01-04  Richard Guenther  <rguenther@suse.de>
10708
10709         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
10710         a new entry only if needed.
10711         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
10712         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
10713         hashtable lookup.
10714         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
10715         the result array.
10716         (phi_translate): Handle CONSTANTs early.
10717
10718 2010-01-04  Martin Jambor  <mjambor@suse.cz>
10719
10720         PR tree-optimization/42398
10721         * tree-sra.c (struct access): Removed flag grp_different_types.
10722         (dump_access): Do not dump the removed flag.
10723         (sort_and_splice_var_accesses): Do not set the removed flag.
10724         (sra_modify_expr): Check for type compatibility directly.
10725
10726 2010-01-04  Martin Jambor  <mjambor@suse.cz>
10727
10728         PR tree-optimization/42366
10729         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
10730         edges with variable number of parameters.
10731         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
10732         flag instead of asserting it.
10733         (ipa_read_node_info): Read uses_analysis_done flag.
10734
10735 2010-01-04  Richard Guenther  <rguenther@suse.de>
10736
10737         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
10738         iterative_hash_* as intended.
10739         (vn_reference_compute_hash): Likewise.  Simplify hashing
10740         SSA names.
10741         (vn_reference_lookup_2): Likewise.
10742         (vn_nary_op_compute_hash): Likewise.
10743         (vn_phi_compute_hash): Likewise.
10744         (expressions_equal_p): Remove strange code.
10745         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
10746         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
10747         (bitmap_insert_into_set_1): Take value-id as parameter.
10748         (add_to_value): Pass it.
10749         (bitmap_insert_into_set): Likewise.
10750         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
10751
10752 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
10753
10754         PR driver/42442
10755         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
10756         (do_self_spec): For switches with SWITCH_IGNORE set set also
10757         SWITCH_IGNORE_PERMANENTLY.
10758         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
10759         of SWITCH_IGNORE.
10760
10761 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
10762
10763         * lto-streamer-out.c (output_unreferenced_globals): Output the full
10764         tree of an unreferenced global var.
10765
10766 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10767
10768         PR target/42542
10769         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10770         GTU to GT for V4SI and V2DI.
10771
10772         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10773         (umin<mode>3): Removed.
10774         (uminv8hi3): New.
10775         (uminv4si3): Likewise.
10776
10777 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10778
10779         PR lto/42581
10780         * collect2.c (main): Turn on trace in collect2 if -v is passed
10781         to gcc with LTO.
10782
10783 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
10784
10785         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
10786         description of expression operand.
10787
10788 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
10789
10790         * configure.ac: Add install-html to target_list for Make-hooks.
10791         * configure: Regenerate.
10792         * fortran/Make-lang.in (F95_HTMLFILES): New.
10793         (fortran.html): Use it.
10794         (fortran.install-html): New.
10795         * Makefile.in (install-html): Add lang.install-html.
10796         * java/Make-lang.in (JAVA_HTMLFILES): New.
10797         (java.html): Use it.
10798         (java.install-html): New.
10799         * objc/Make-lang.in (objc.install-html): New.
10800         * objcp/Make-lang.in (obj-c++.install-html): New.
10801         * cp/Make-lang.in (c++.install-html): New.
10802         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
10803         * lto/Make-lang.in (lto.install-html): New.
10804
10805 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10806
10807         PR lto/42520
10808         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
10809
10810 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
10811
10812         PR rtl-optimization/41862
10813         * store-motion.c (store_killed_in_insn, compute_store_table,
10814         remove_reachable_equiv_notes, replace_store_insn,
10815         build_store_vectors): Ignore all DEBUG_INSNs.
10816
10817 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10818
10819         PR lto/41564
10820         * common.opt: Add dumpdir.
10821
10822         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
10823         isn't specified.
10824         (option_map): Add --dumpdir.
10825
10826         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
10827
10828         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
10829
10830         * opts.c (decode_options): Try dump_dir_name first if
10831         dump_base_name isn't an absolute path.
10832         (common_handle_option): Handle OPT_dumpdir.
10833
10834         * toplev.c (dump_dir_name): New.
10835         (print_switch_values): Also ignore -dumpdir.
10836
10837         * toplev.h (dump_dir_name): New.
10838
10839 2010-01-03  Richard Guenther  <rguenther@suse.de>
10840
10841         PR tree-optimization/42589
10842         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
10843         double-word expansion of bswap32.
10844
10845 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
10846
10847         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
10848         with BLOCK_FOR_INSN.
10849         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
10850         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
10851         noce_process_if_block): Likewise.
10852         * gcse.c (compute_local_properties, insert_expr_in_table,
10853         insert_set_in_table, canon_list_insert, find_avail_set,
10854         pre_insert_copy_insn): Likewise.
10855
10856         * basic-block.h (BLOCK_NUM): Move from here...
10857         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
10858
10859 2010-01-03  Richard Guenther  <rguenther@suse.de>
10860
10861         PR tree-optimization/42438
10862         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
10863         contains_may_not_return_call flag.
10864         (BB_MAY_NOTRETURN): New.
10865         (valid_in_sets): Trapping nary operations are not valid
10866         in blocks that may not return.
10867         (insert_into_preds_of_block): Remove check for trapping expressions.
10868         (compute_avail): Compute also BB_MAY_NOTRETURN.
10869
10870 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
10871
10872         * doc/invoke.texi: Add 2010 to copyright years.
10873
10874 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10875
10876         * config/sparc/sparc.c: Fix formatting nits.
10877
10878 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
10879             Alexander Monakov  <amonakov@ispras.ru>
10880
10881         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
10882
10883 2010-01-02  Richard Guenther  <rguenther@suse.de>
10884
10885         PR middle-end/42577
10886         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
10887         (simplify_switch_using_ranges): Mark to be removed edges
10888         as non-executable.
10889
10890 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10891
10892         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10893
10894         * collect2.c (scan_libraries): Add missing argument in call to
10895         scan_prog_file.
10896
10897 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
10898
10899         PR target/42448
10900         * config/alpha/predicates.md (aligned_memory_operand): Return false
10901         for CQImode.
10902         (unaligned_memory_operand): Return true for CQImode.
10903         * config/alpha/alpha.c (get_aligned_mem): Assert that location
10904         doesn not cross aligned SImode word boundary.
10905
10906 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
10907
10908         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
10909         Remove.
10910         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
10911         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
10912
10913 2010-01-02  Richard Guenther  <rguenther@suse.de>
10914
10915         PR lto/41597
10916         * toplev.c (compile_file): Emit LTO marker properly.  Change
10917         it to __gnu_lto_v1.
10918         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
10919
10920 2010-01-01  Richard Guenther  <rguenther@suse.de>
10921
10922         PR debug/42455
10923         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
10924
10925 2010-01-01  Richard Guenther  <rguenther@suse.de>
10926
10927         PR c/42570
10928         * c-decl.c (grokdeclarator): For zero-size arrays force
10929         structural equality checks as layout_type does.
10930
10931 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
10932
10933         * builtins.c: Update copyright to 2010.
10934
10935 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
10936
10937         PR lto/42531
10938         * lto-streamer-out.c (produce_asm): Revert the last change.
10939         (copy_function): Likewise.
10940
10941         * lto-streamer.c (lto_get_section_name): Skip any leading
10942         asterisk in name.
10943
10944 2010-01-01  Richard Guenther  <rguenther@suse.de>
10945
10946         PR middle-end/42559
10947         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
10948         for LABEL_DECLs.
10949
10950 \f
10951 Copyright (C) 2010 Free Software Foundation, Inc.
10952
10953 Copying and distribution of this file, with or without modification,
10954 are permitted in any medium without royalty provided the copyright
10955 notice and this notice are preserved.