OSDN Git Service

gcc/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
4         New core types.
5         * sbitmap.h (struct sbitmap_def): Do not typedef here.
6         * sbitmap.c: Include sbitmap.h.
7         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
8         hard-reg-set.h.  Split everything related to regsets out from here...
9         * regset.h: ...to here.  New file.
10         * df.h: Include regset.h and sbitmap.h.
11         * tree-flow.h: Likewise.
12         * cfgloop.h: Likewise.
13         * except.h: Do not include sbitmap.h.  Include hashtab.h.
14         * cgraph.h: Include vec.h and function.h.
15         * reload.h (struct insn_chain): Change types of live_throughout
16         and dead_or_set from regset_head to bitmap_head.
17         (compute_use_by_pseudos): Be defined also if regset.h is not included.
18         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
19         spilled_regs from regset_head to bitmap_head to avoid dependency
20         in regset.h.
21         * sel-sched-ir.h: Include regset.h.
22         * reload.c: Include df.h before reload.h.
23         * caller-save.c: Likewise.
24         * reload1.c: Likewise.
25         * ira.c: Likewise.
26         (mark_elimination): Update type of r to bitmap, consistent with
27         DF_LR_IN.
28         * dominance.c: Include bitmap.h.
29         * modulo-sched.c: Include df.h.
30         * cfganal.c: Include bitmap.h and sbitmap.h.
31         * cfgbuild.c: Include sbitmap.h.
32         * lcm.c: Include sbitmap.h.
33         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
34         * domwalk.c: Include sbitmap.h, exclude ggc.h.
35         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
36         * cselib.c: Include bitmap.h.
37         * tree-optimize.c: Include regset.h.
38         * stmt.c: Include bitmap.h.
39         * Makefile.in: Update dependencies.
40
41 2010-05-22  Jan Hubicka  <jh@suse.cz>
42
43         * cgraph.h (struct varpool_node): Add same_comdat_group.
44         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
45         pointer.
46         (output_varpool): Update call of lto_output_varpool_node.
47         (input_varpool): Read same_comdat_group pointer.
48         (input_varpool_1): Fixup same_comdat_group pointer.
49         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
50         group is needed, all are.
51         * varpool.c (varpool_remove_node): Remove node from same comdat group
52         linklist too.
53         (varpool_analyze_pending_decls): Walk same comdat groups.
54
55 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
56
57         * rtl.h (union rtunion_def): Remove rt_bit member.
58         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
59         * print-rtl (print_rtx): Do not print the member.
60         * gengtype.c (adjust_field_rtx_def): Do not handle it.
61         * gengenrtl.c (type_from_format): Likewise.
62         (accessor_from_format): Likewise.
63
64 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
65
66         * dbgcnt.c: Include toplev.h instead of errors.h.
67         * ira-emit.c: Don't include errors.h.
68         * ira.c: Include toplev.h instead of errors.h.
69         * lto-compress.c: Include toplev.h instead of errors.h.
70         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
71         ira.o, dbgcnt.o): Update dependencies.
72
73 2010-05-22  Richard Guenther  <rguenther@suse.de>
74
75         * gimple.c (gimple_types_compatible_p): Check type qualifications
76         before merging pointer to complete and pointer to incomplete type.
77         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
78         we use our own resolution algorithm.  The gold linker plugin
79         doesn't do the job we want it to do here.
80
81 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
82
83         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
84         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
85         (sparc_mode_dependent_address_p): New function.
86
87 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
88
89         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
90
91         * timevar.c: Do not include any core headers.
92         (timevar_print): De-i18n-ize.
93         (print_time): Likewise.
94         * timevar.h (timevar_push, timevar_pop): Make inline functions.
95
96 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
97
98         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
99         langhooks-def.h.
100         (diagnostic_initialize): Initialize x_data not last_function.
101         (diagnostic_report_current_function): Move to tree-diagnostic.c.
102         (default_diagnostic_starter): Call
103         diagnostic_report_current_module not
104         diagnostic_report_current_function.
105         (diagnostic_report_diagnostic): Initialize x_data not
106         abstract_origin.
107         (verbatim): Likewise.
108         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
109         x_data.
110         (struct diagnostic_context): Change last_function to x_data.
111         (diagnostic_auxiliary_data): Replace with
112         diagnostic_context_auxiliary_data and
113         diagnostic_info_auxiliary_data.
114         (diagnostic_last_function_changed, diagnostic_set_last_function,
115         diagnostic_report_current_function): Move to tree-diagnostic.h.
116         (print_declaration, dump_generic_node, print_generic_stmt,
117         print_generic_stmt_indented, print_generic_expr,
118         print_generic_decl, debug_c_tree, dump_omp_clauses,
119         print_call_name, debug_generic_expr, debug_generic_stmt,
120         debug_tree_chain, default_tree_printer): Move to
121         tree-pretty-print.h.
122         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
123         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
124         gimple-pretty-print.h.
125         * pretty-print.c: Don't include tree.h
126         (pp_base_format): Don't handle %K here.
127         (pp_base_tree_identifier): Move to tree-pretty-print.c.
128         * pretty-print.h (text_info): Change abstract_origin to x_data.
129         (pp_tree_identifier, pp_unsupported_tree,
130         pp_base_tree_identifier): Move to tree-pretty-print.h.
131         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
132         tree-pretty-print.h: New files.
133         * tree-pretty-print.c: Include tree-pretty-print.h.
134         (percent_K_format): New.  Moved from pretty-print.c.
135         (pp_base_tree_identifier): Move from pretty-print.c.
136         * c-objc-common.c: Include tree-pretty-print.h.
137         (c_tree_printer): Handle %K here.
138         * langhooks.c: Include tree-diagnostic.h.
139         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
140         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
141         (default_tree_printer): Handle %K using percent_K_format.
142         (general_init): Use default_tree_diagnostic_starter.
143         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
144         (free_lang_data): Use default_tree_diagnostic_starter.
145         * c-pretty-print.c: Include tree-pretty-print.h.
146         * cfgexpand.c: Include tree-pretty-print.h and
147         gimple-pretty-print.h.
148         * cgraphunit.c: Include tree-pretty-print.h and
149         gimple-pretty-print.h.
150         * dwarf2out.c: Include tree-pretty-print.h.
151         * except.c: Include tree-pretty-print.h.
152         * gimple-pretty-print.c: Include tree-pretty-print.h and
153         gimple-pretty-print.h.
154         * gimplify.c: Include tree-pretty-print.h.
155         * graphite-poly.c: Include tree-pretty-print.h and
156         gimple-pretty-print.h.
157         * ipa-cp.c: Include tree-pretty-print.h.
158         * ipa-inline.c: Include gimple-pretty-print.h.
159         * ipa-prop.c: Include tree-pretty-print.h and
160         gimple-pretty-print.h.
161         * ipa-pure-const.c: Include gimple-pretty-print.h.
162         * ipa-struct-reorg.c: Include tree-pretty-print.h and
163         gimple-pretty-print.h.
164         * ipa-type-escape.c: Include tree-pretty-print.h.
165         * print-rtl.c: Include tree-pretty-print.h.
166         * print-tree.c: Include gimple-pretty-print.h.
167         * sese.c: Include tree-pretty-print.h.
168         * tree-affine.c: Include tree-pretty-print.h.
169         * tree-browser.c: Include tree-pretty-print.h.
170         * tree-call-cdce.c: Include gimple-pretty-print.h.
171         * tree-cfg.c: Include tree-pretty-print.h and
172         gimple-pretty-print.h.
173         * tree-chrec.c: Include tree-pretty-print.h.
174         * tree-data-ref.c: Include tree-pretty-print.h and
175         gimple-pretty-print.h.
176         * tree-dfa.c: Include tree-pretty-print.h.
177         * tree-if-conv.c: Include tree-pretty-print.h and
178         gimple-pretty-print.h.
179         * tree-inline.c: Include tree-pretty-print.h.
180         * tree-into-ssa.c: Include tree-pretty-print.h and
181         gimple-pretty-print.h.
182         * tree-nrv.c: Include tree-pretty-print.h.
183         * tree-object-size.c: Include tree-pretty-print.h and
184         gimple-pretty-print.h.
185         * tree-outof-ssa.c: Include tree-pretty-print.h and
186         gimple-pretty-print.h.
187         * tree-parloops.c: Include tree-pretty-print.h and
188         gimple-pretty-print.h.
189         * tree-predcom.c: Include tree-pretty-print.h and
190         gimple-pretty-print.h.
191         * tree-scalar-evolution.c: Include tree-pretty-print.h and
192         gimple-pretty-print.h.
193         * tree-sra.c: Include tree-pretty-print.h.
194         * tree-ssa-address.c: Include tree-pretty-print.h.
195         * tree-ssa-alias.c: Include tree-pretty-print.h.
196         * tree-ssa-ccp.c: Include tree-pretty-print.h and
197         gimple-pretty-print.h.
198         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
199         * tree-ssa-copy.c: Include tree-pretty-print.h and
200         gimple-pretty-print.h.
201         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
202         * tree-ssa-dce.c: Include tree-pretty-print.h and
203         gimple-pretty-print.h.
204         * tree-ssa-dom.c: Include tree-pretty-print.h and
205         gimple-pretty-print.h.
206         * tree-ssa-dse.c: Include gimple-pretty-print.h.
207         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
208         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
209         * tree-ssa-live.c: Include tree-pretty-print.h and
210         gimple-pretty-print.h.
211         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
212         gimple-pretty-print.h.
213         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
214         gimple-pretty-print.h.
215         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
216         gimple-pretty-print.h.
217         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
218         gimple-pretty-print.h.
219         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
220         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
221         * tree-ssa-operands.c: Include tree-pretty-print.h and
222         gimple-pretty-print.h.
223         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
224         gimple-pretty-print.h.
225         * tree-ssa-pre.c: Include tree-pretty-print.h and
226         gimple-pretty-print.h.
227         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
228         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
229         gimple-pretty-print.h.
230         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
231         gimple-pretty-print.h.
232         * tree-ssa-sink.c: Include gimple-pretty-print.h.
233         * tree-ssa-ter.c: Include tree-pretty-print.h and
234         gimple-pretty-print.h.
235         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
236         * tree-ssa.c: Include tree-pretty-print.h and
237         gimple-pretty-print.h.
238         * tree-stdarg.c: Include gimple-pretty-print.h.
239         * tree-switch-conversion.c: Include gimple-pretty-print.h.
240         * tree-tailcall.c: Include tree-pretty-print.h and
241         gimple-pretty-print.h.
242         * tree-vect-data-refs.c: Include tree-pretty-print.h and
243         gimple-pretty-print.h.
244         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
245         gimple-pretty-print.h.
246         * tree-vect-loop.c: Include tree-pretty-print.h and
247         gimple-pretty-print.h.
248         * tree-vect-patterns.c: Include gimple-pretty-print.h.
249         * tree-vect-slp.c: Include tree-pretty-print.h and
250         gimple-pretty-print.h.
251         * tree-vect-stmts.c: Include tree-pretty-print.h and
252         gimple-pretty-print.h.
253         * tree-vectorizer.c: Include tree-pretty-print.h.
254         * tree-vrp.c: Include tree-pretty-print.h and
255         gimple-pretty-print.h.
256         * value-prof.c: Include tree-pretty-print.h and
257         gimple-pretty-print.h.
258         * var-tracking.c: Include tree-pretty-print.h.
259         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
260         (tree-diagnostic.o): New dependencies.
261         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
262         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
263         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
264         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
265         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
266         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
267         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
268         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
269         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
270         tree-ssa-address.o, tree-ssa-loop-niter.o,
271         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
272         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
273         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
274         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
275         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
276         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
277         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
278         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
279         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
280         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
281         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
282         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
283         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
284         tree-switch-conversion.o, var-tracking.o, value-prof.o,
285         cfgexpand.o, pretty-print.o): Update dependencies.
286
287 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
288
289         * tree-ssa-structalias.c: Remove tm_p.h from include.
290
291 2010-05-21  Jeff Law  <law@redhat.com>
292
293         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
294
295 2010-05-21  Jason Merrill  <jason@redhat.com>
296
297         * tree-eh.c (cleanup_is_dead_in): New.
298         (lower_try_finally): Don't generate a dead cleanup region.
299         (lower_cleanup): Likewise.
300
301 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
302
303         PR debug/44223
304         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
305         unchain each use from the cyclic next_regno_use chain first.
306
307 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
308
309         * real: Do not include gmp.h, mpfr.h, and mpc.h.
310         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
311         (real_value_negate, real_value_abs): New prototypes.
312         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
313         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
314         new include file for interface between MPFR and REAL_VALUE_TYPE.
315         * real.c: Include realmpfr.h.
316         (real_arithmetic2): Remove legacy function.
317         (real_value_negate): New.
318         (real_value_abs): New.
319         (mfpr_from_real, real_from_mpfr): Move from here...
320         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
321         * builtins.c: Include realmpfr.h.
322         * fold-const.c: Include realmpfr.h.
323         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
324         (fold_negate_const): Likewise.
325         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
326         * toplev.c: Include realmpfr.h.
327         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
328         and real_value_negate.
329         * fixed-value.c (check_real_for_fixed_mode): Likewise.
330         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
331         (vfp3_const_double_index): Likewise.
332         (arm_print_operand): Likewise.
333         * Makefile.in: Update dependencies.
334
335 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
336
337         * config/s390/s390.c (override_options): Increase the default
338         of max-completely-peel-times.
339
340 2010-05-21  Julian Brown  <julian@codesourcery.com>
341             Mark Mitchell  <mark@codesourcery.com>
342
343         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
344         sibling calls for Thumb-1.
345         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
346         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
347         Thumb-2.
348         (*call_insn, *call_value_insn): Don't use for Thumb-2.
349         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
350         for Thumb-2.
351         (return): New expander.
352         (*arm_return): New name for ARM return insn.
353         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
354
355 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
356
357         * config.gcc (sparc64-*-rtems*): New target.
358
359 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
360
361         * tree.c (build_function_decl_skip_args): Fix grammar.
362         (build_function_type_list_1): Fix typos, adjust formatting.
363
364 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
365
366         * tree.h: Include real.h and fixed-value.h as basic datatypes.
367         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
368         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
369         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
370         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
371         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
372         tree-pretty-print.c, tree-loop-distribution.c,
373         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
374         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
375         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
376         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
377         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
378         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
379         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
380         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
381         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
382         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
383         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
384         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
385         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
386         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
387         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
388         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
389         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
390         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
391         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
392         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
393         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
394         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
395         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
396         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
397         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
398         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
399         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
400         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
401         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
402         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
403         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
404         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
405         config/score/score7.c, config/score/score.c, config/arm/arm.c,
406         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
407         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
408         config/bfin/bfin.c:
409         Clean up redundant includes.
410         * Makefile.in: Update accordingly.
411
412 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
413
414         PR middle-end/44204
415         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
416         statement has no arguments.
417
418 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
419
420         PR/44139
421         * varasm.c (emutls_decl): Merge attributes to new decl.
422
423 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
424
425         PR middle-end/44101
426         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
427         around the uniquized constructor if its type requires a conversion.
428
429 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
430
431         PR debug/44205
432         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
433         at -O0 goto_locus of any of the incoming edges differs from
434         goto_locus of outgoing edge, or gimple_location of any of the
435         labels differs.
436
437 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
438
439         * ira.c (ira_non_ordered_class_hard_regs): Define.
440         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
441         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
442         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
443         cost of unaligned hard regs when allocating multi-reg pseudos.
444
445 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
446
447         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
448         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
449         for TARGET_NO_FLOAT.
450         * config/mips/mips.c (mips_file_start): Expand conditional expression
451         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
452         (mips_override_options): Move -mno-float override -msoft-float and
453         -mhard-float.
454         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
455         Condition(TARGET_SUPPORTS_NO_FLOAT).
456         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
457         __mips_no_float here.
458         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
459         (TARGET_SUPPORTS_NO_FLOAT): Define.
460         * config/mips/sdemtk.opt: Delete.
461
462 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
463
464         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
465         out if !cond.
466
467 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
468
469         PR target/43733
470         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
471         * configure: Regenerate.
472         * config.in: Regenerate.
473         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
474         instead of sahf only for 64bit targets.
475
476 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
477
478         PR debug/44178
479         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
480         setup_ref_regs for DEBUG_INSNs.
481
482 2010-05-20  Jan Hubicka  <jh@suse.cz>
483
484         PR middle-end/44197
485         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
486
487 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
488
489         PR bootstrap/43870
490         * df-scan.c (df_ref_compare): Stabilize sort.
491
492 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
493
494         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
495         argument.  Don't use DW_OP_piece if offset is non-zero,
496         put offset into second DW_OP_bit_piece argument.
497         (dw_sra_loc_expr): Adjust callers.  For memory expressions
498         compute offset.
499
500 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
501
502         PR target/44202
503         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
504         settings for 16-bit-constant "addo" alternative.
505
506 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
507
508         * config/mips/mips-dsp.md (add<DSPV:mode>3,
509         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
510
511         PR target/43764
512         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
513         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
514         Use it.
515
516 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
517
518         * diagnostic.c (FLOAT, FFS): Don't undefine.
519         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
520         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
521         include ordering.
522
523 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
524
525         * combine.c (propagate_for_debug): Call make_compound_operation
526         on the source value.
527         (try_combine): When implementing a split chosen by find_split_point,
528         either copy i2src or set it to null.  Assert that i2src is not null
529         before substituting into CALL_INSN_FUNCTION_USAGE.
530
531 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
532
533         * double-int.h (double_int_ior): New function.
534         * tree.h (build_int_cst_wide_type): Remove.
535         * tree.c (build_int_cst_wide_type): Remove.
536         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
537         of build_int_cst_wide_type.
538         * stor-layout.c (set_sizetype): (Ditto.).
539         * dojump.c (do_jump): Use build_int_cstu instead of
540         build_int_cst_wide_type.
541
542 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
543
544         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
545         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
546         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
547         * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
548         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
549         propagate the 'data' argument to copy_tree_r.
550         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
551         Propagate 'data' argument to walk_tree.
552         (copy_if_shared): New function.
553         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
554         (unmark_visited): New function.
555         (unshare_body): Call copy_if_shared instead of doing it manually.
556         (unvisit_body): Call unmark_visited instead of doing it manually.
557
558 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
559
560         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
561         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
562         * hooks.c: Likewise.
563         * target-def.h (TARGET_FOLD_BUILTIN): Define to
564         hook_tree_tree_int_treep_bool_null.
565         * target.h: (struct gcc_target): Update signature of fold_builtin
566         field.
567         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
568         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
569         instead of the call expression.
570         (fold_builtin_call_array): Pass n and argarray directly.
571         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
572         consing a list.
573         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
574         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
575         `i' and use it in place of `arity'.
576         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
577         Dereference `args' directly.
578         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
579
580 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
581
582         * doc/sourcebuild.texi (Effective-Target Keywords): Document
583         3dnow, sse3, sse2.
584         (Directives): Document optional dg-require-effective-target
585         selector.
586
587 2010-05-19  Richard Guenther  <rguenther@suse.de>
588
589         PR lto/44196
590         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
591
592 2010-05-19  Richard Guenther  <rguenther@suse.de>
593
594         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
595         * common.opt (fwhopr=): New.
596         * opts.c (common_handle_option): Handle OPT_fwhopr.
597         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
598         * collect2.c (main): Match -fwhopr*.
599         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
600         Execute ltrans stage in parallel when jobs is bigger than 1.
601
602 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
603
604         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
605         pentiumpro on Solaris 8/x86 with Sun as.
606         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
607         hidden alias bug.
608         (gcc_cv_as_ix86_quad): Check for .quad directive.
609         * configure: Regenerate.
610         * config.in: Regenerate.
611         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
612
613 2010-05-19  Martin Jambor  <mjambor@suse.cz>
614
615         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
616         also for indirect edges.  Actual printing moved...
617         (ipa_print_node_jump_functions_for_edge): ...here.
618         (ipa_compute_jump_functions): Renamed to
619         ipa_compute_jump_functions_for_edge and made static.
620         (ipa_compute_jump_functions): New function.
621         (make_edge_direct_to_target): Check if the number of arguments on
622         the newly direct edge is the same as the number of parametrs of
623         the callee.
624         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
625         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
626         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
627         analysis functions unconditionally, call the new
628         ipa_analyze_params_uses on the node instead of every edge.
629
630 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
631
632         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
633         to tree.
634         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
635         also checks for a constant int vs.  non-constant but
636         loop-invariant steps.
637         (find_or_create_group): Change the sort algorithm to only consider
638         steps that are constant ints.
639         (idx_analyze_ref): Adopt code to handle a tree instead of a
640         HOST_WIDE_INT for step.
641         (gather_memory_references_ref): Handle tree instead of int and be
642         prepared to see a NULL_TREE.
643         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
644         prefetches if the step cannot be calculated at compile time.
645         (issue_prefetch_ref): Issue prefetches for non-constant but
646         loop-invariant steps.
647
648 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
649
650         Revert:
651         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
652
653         * tree.h (build_call_list): Remove.
654         * tree.c (build_call_list): Remove.
655
656 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
657
658         * tree.h (build_call_list): Remove.
659         * tree.c (build_call_list): Remove.
660
661 2010-05-18  Jan Hubicka  <jh@suse.cz>
662
663         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
664
665 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
666
667         PR rtl-optimization/43332
668         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
669
670 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
671
672         * tree.h (build_int_cstu): Implement as static inline.
673         * tree.c (build_int_cstu): Remove function.
674         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
675         sign extended.
676
677 2010-05-18  Richard Guenther  <rguenther@suse.de>
678
679         PR lto/44143
680         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
681         (debug): Initialize from -save-temps.
682         (collect_execute): Print command-line when verbose.
683         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
684         for ltrans invocation.  Produce -dumpbase flag again.
685         (process_args): Remove.
686         (main): Simplify.
687         * collect2.c (maybe_run_lto_and_relink): Only pass object
688         files to lto-wrapper.
689         * gcc.c (LINK_COMMAND_SPEC): Likewise.
690
691 2010-05-18  Jan Hubicka  <jh@suse.cz>
692
693         * opts.c (decode_options): Do not disable whopr at ipa_cp.
694         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
695
696 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
697
698         PR lto/44184
699         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
700         in a GIMPLE_ASM.
701         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
702         in a GIMPLE_ASM.
703
704 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
705
706         PR debug/41371
707         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
708         rtx_equal_p inline.
709
710 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
711
712         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
713         lto-macho as lto_binary_reader.
714
715         * darwin.c (darwin_asm_named_section): Do not add assembler comment
716         after .section directive; just print it before the directive instead.
717
718 2010-05-17  Jan Hubicka  <jh@suse.cz>
719
720         * cgraph.c (cgraph_create_virtual_clone): Only check
721         versionable_function_p when not in wpa and checking is enabled.
722         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
723         there are no more functions to materialize.
724
725 2010-05-17  Jan Hubicka  <jh@suse.cz>
726
727         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
728         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
729         New functions.
730         (output_cgraph): Call output_cgraph_opt_summary.
731         (input_cgrpah): Call input_cgraph_opt_summary.
732         (output_cgraph_opt_summary_p, output_node_opt_summary,
733         input_node_opt_summary, input_cgraph_opt_section): New functions.
734         * lto-section-in.c (lto_section_name): Add cgraphopt.
735         * tree-inline.c (tree_function_versioning): Handle parm_num.
736         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
737         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
738
739 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
740
741         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
742         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
743         the insn to prefetch ratio heuristic to loops with known trip count.
744
745 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
746
747         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
748         (schedule_prefetches): Do not generate a prefetch if the unroll factor
749         is far from what is required by the prefetch.
750
751 2010-05-17  Jan Hubicka  <jh@suse.cz>
752
753         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
754         (ipcp_estimate_growth): Likewise.
755         (ipcp_const_param_count): Likewise.
756         (ipcp_insert_stage): Likewise.
757         * ipa-prop.c (visit_load_for_mod_analysis): New function.
758         (visit_store_addr_for_mod_analysis): Set used flag.
759         (ipa_detect_param_modifications): Set used flag for SSE params;
760         update use of walk_stmt_load_store_addr_ops.
761         (ipa_print_node_params): Print used flag.
762         (ipa_write_node_info): Stream used flag.
763         (ipa_read_node_info): Likewise.
764         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
765         (ipa_is_param_used): New function.
766         (lto_ipa_fixup_call_notes): Remove unused declaration.
767
768 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
769
770         PR target/44074
771         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
772         * configure: Regenerate.
773         * config.in: Regenerate.
774         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
775         !HAVE_AS_IX86_REP_LOCK_PREFIX.
776         Don't emit whitespace.
777         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
778         (*rep_movsi): Likewise.
779         (*rep_movsi_rex64): Likewise.
780         (*rep_movqi): Likewise.
781         (*rep_movqi_rex64): Likewise.
782         (*rep_stosdi_rex64): Likewise.
783         (*rep_stossi): Likewise.
784         (*rep_stossi_rex64): Likewise.
785         (*rep_stosqi): Likewise.
786         (*rep_stosqi_rex64): Likewise.
787         (*cmpstrnqi_nz_1): Use {%;} after repz.
788         (*cmpstrnqi_nz_rex_1): Likewise.
789         (*cmpstrnqi_1): Likewise.
790         (*cmpstrnqi_rex_1): Likewise.
791         (*strlenqi_1): Use {%;} after repnz.
792         (*strlenqi_rex_1): Likewise.
793         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
794         (*sync_compare_and_swap<mode>): Likewise.
795         (sync_double_compare_and_swap<mode>): Likewise.
796         (*sync_double_compare_and_swapdi_pic): Likewise.
797         (sync_old_add<mode>): Likewise.
798         (sync_add<mode>): Likewise.
799         (sync_sub<mode>): Likewise.
800         (sync_<code><mode>): Likewise.
801
802 2010-05-17  Martin Jambor  <mjambor@suse.cz>
803
804         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
805         otr_token and polymorphic.
806         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
807         (cgraph_clone_edge): Copy the above fields.
808         * tree.c (get_binfo_at_offset): New function.
809         * tree.h (get_binfo_at_offset): Declare.
810         * ipa-prop.h (enum jump_func_type): Added known_type jump function
811         type, reordered items, updated comments.
812         (union jump_func_value): Added base_type field, reordered fields.
813         (enum ipa_lattice_type): Moved down in the file.
814         (struct ipa_param_descriptor): New field polymorphic.
815         (ipa_is_param_polymorphic): New function.
816         * ipa-prop.c: Include gimple.h and gimple-fold.h.
817         (ipa_print_node_jump_functions): Print known type jump functions.
818         (compute_complex_pass_through): Renamed to...
819         (compute_complex_assign_jump_func): this.
820         (compute_complex_ancestor_jump_func): New function.
821         (compute_known_type_jump_func): Likewise.
822         (compute_scalar_jump_functions): Create known type and complex ancestor
823         jump functions.
824         (ipa_note_param_call): New parameter polymorphic, set the corresponding
825         flag in the call note accordingly.
826         (ipa_analyze_call_uses): Renamed to...
827         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
828         variable var only in the block where it is used.
829         (ipa_analyze_virtual_call_uses): New function.
830         (ipa_analyze_call_uses): Likewise.
831         (combine_known_type_and_ancestor_jfs): Likewise.
832         (update_jump_functions_after_inlining): Implemented handling of a
833         number of new jump function types combination.
834         (print_edge_addition_message): Removed.
835         (make_edge_direct_to_target): New function.
836         (try_make_edge_direct_simple_call): Likewise.
837         (try_make_edge_direct_virtual_call): Likewise.
838         (update_call_notes_after_inlining): Renamed to...
839         (update_indirect_edges_after_inlining): this.  Moved edge creation for
840         indirect calls to try_make_edge_direct_simple_call, also calls
841         try_make_edge_direct_virtual_call for virtual calls.
842         (ipa_print_node_params): Changed the header message.
843         (ipa_write_jump_function): Stream also known type jump functions.
844         (ipa_read_jump_function): Likewise.
845         (ipa_write_indirect_edge_info): Stream new fields in
846         cgraph_indirect_call_info.
847         (ipa_read_indirect_edge_info): Likewise.
848         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
849         GIMPLE_FOLD_H.
850
851 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
852
853         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
854
855 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
856
857         * tree.h (CALL_EXPR_ARGS): Delete.
858         (call_expr_arglist): Delete.
859         * tree.c (call_expr_arglist): Delete.
860         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
861         targetm.fold_builtin.
862         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
863         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
864         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
865         arglist parameter.  Use CALL_EXPR_ARG.
866         (picochip_expand_builtin_3op): Likewise.
867         (picochip_expand_builtin_2opvoid): Likewise.
868         (picochip_expand_array_get): Likewise.
869         (picochip_expand_array_put): Likewise.
870         (picochip_expand_array_testport): Likewise.
871         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
872         rather than arglist.
873         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
874         CALL_EXPR_ARGS.
875         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
876         than TREE_VALUE and TREE_CHAIN.
877         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
878         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
879         the arglist.
880
881 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
882
883         PR bootstrap/42347
884         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
885         to have no fallthru edge.
886
887         PR middle-end/44102
888         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
889         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
890         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
891         add BARRIER after previous bb if needed.
892
893 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
894
895         * tree.c (build_function_type_list_1): Remove bogus assert condition.
896
897 2010-05-17  Alan Modra  <amodra@gmail.com>
898
899         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
900         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
901         with copy_reg rtx param.
902         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
903         Correct cases where code for ABI_V4 did not initialise the reg
904         used to access frame.  Also leave frame_reg_rtx as sp for large
905         frames that save no regs.
906
907 2010-05-17  Martin Jambor  <mjambor@suse.cz>
908
909         PR middle-end/44133
910         * tree-sra.c (create_access_replacement): New parameter rename, mark
911         the replaement for renaming only when it is true.
912         (get_access_replacement): Pass true in the rename parameter of
913         create_access_replacement.
914         (get_unrenamed_access_replacement): New function.
915         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
916         replacement declaration from it.
917
918 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
919
920         * function.c (try_fit_stack_local, add_frame_space): New static
921         functions.
922         (assign_stack_local_1): Use them.  Look for opportunities to use
923         space previously wasted on alignment.
924         * function.h (struct frame_space): New.
925         (struct rtl_data): Add FRAME_SPACE_LIST member.
926         * reload1.c (something_was_spilled): New static variable.
927         (alter_reg): Set it.
928         (reload): Test it in addition to testing if the frame size changed.
929
930 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
931
932         * config/s390/s390.c: Define sane prefetch settings and activate
933         flag_prefetch_loop_arrays on -O3.
934         * config/s390/s390.h: Declare that read can use write prefetch.
935
936 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
937
938         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
939         build.
940
941 2010-05-16  Jan Hubicka  <jh@suse.cz>
942
943         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
944         function body; do not check stdarg field of struct function.
945
946 2010-05-16  Jan Hubicka  <jh@suse.cz>
947
948         * cgraph.c (dump_cgraph_node): Dump versionable flag.
949         * cgraph.h (cgraph_local_info): Add versionable flag.
950         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
951         (ipcp_versionable_function_p): Use it.
952         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
953         versionable flag.
954
955 2010-05-16  Jan Hubicka  <jh@suse.cz>
956
957         * cgraph.c (cgraph_clone_node): Take decl argument and insert
958         clone into hash when it is different from orig.
959         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
960         * cgraph.h (cgraph_clone_node): Update prototype.
961         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
962         (lto_cgraph_encoder_delete): Delete body map.
963         (lto_cgraph_encoder_size): Move to header.
964         (lto_cgraph_encoder_encode_body_p,
965         lto_set_cgraph_encoder_encode_body): New.
966         (lto_output_node): Do not take written_decls argument; output clone_of
967         pointer.
968         (add_node_to): Add include_body_argument; call
969         lto_set_cgraph_encoder_encode_body on master of the clone.
970         (add_references): Update use of add_node_to.
971         (compute_ltrans_boundary): Likewise.
972         (output_cgraph): Do not create written_decls bitmap.
973         (input_node): Take nodes argument; stream in clone_of correctly.
974         (input_cgraph_1): Update use of input_node.
975         * lto-streamer-out.c (lto_output): Use encoder info to decide
976         what bodies to output.
977         * ipa-inline.c (cgraph_clone_inlined_nodes,
978         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
979         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
980         (lto_cgraph_encoder_size): Define here.
981         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
982         Declare.
983
984 2010-05-16  Richard Guenther  <rguenther@suse.de>
985
986         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
987         -fipa-type-escape.
988         * ipa-type-escape.c (gate_type_escape_vars): Run when
989         -fipa-struct-reorg runs.
990         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
991         * common.opt (fipa-type-escape): Remove.
992
993 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
994
995         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
996         (decode_options): Likewise.
997         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
998
999 2010-05-16  Jan Hubicka  <jh@suse.cz>
1000
1001         * ipa.c (function_and_variable_visibility): Also bring local all
1002         aliases.
1003
1004 2010-05-16  Richard Guenther  <rguenther@suse.de>
1005
1006         * alias.c (nonoverlapping_memrefs_p): Remove use of
1007         IPA type-escape information.
1008
1009 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1010
1011         * c-common.c (c_common_reswords): Add _Static_assert for C.
1012         * c-parser.c (c_token_starts_declaration,
1013         c_parser_next_token_starts_declaration,
1014         c_parser_static_assert_declaration_no_semi,
1015         c_parser_static_assert_declaration): New.
1016         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1017         Handle static assertions if static_assert_ok.
1018         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1019         c_parser_compound_statement_nostart, c_parser_label,
1020         c_parser_for_statement, c_parser_objc_methodprotolist,
1021         c_parser_omp_for_loop): All callers of
1022         c_parser_declaration_or_fndef changed.
1023         (c_parser_struct_declaration): Handle static assertions.
1024         (c_parser_compound_statement_nostart): Use
1025         c_parser_next_token_starts_declaration and
1026         c_token_starts_declaration to detect start of declarations.
1027         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1028         Likewise.
1029
1030 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1031
1032         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1033         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1034         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1035         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1036         (mmix_function_outgoing_value): Rename to...
1037         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1038         (mmix_function_value_regno_p): Make static.
1039         (mmix_libcall_value): New function.
1040         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1041         mmix_function_value_regno_p): Remove declaration.
1042
1043 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1044
1045         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1046         BUILT_IN_ALLOCA if stack checking is enabled.
1047
1048 2010-05-16  Richard Guenther  <rguenther@suse.de>
1049
1050         * var-tracking.c (vars_copy_1): Inline ...
1051         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1052         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1053         (variable_merge_over_cur): Adjust.  Merge asserts.
1054         (variable_merge_over_src): Likewise.
1055         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1056         (variable_post_merge_new_vals): Merge asserts.
1057         (variable_post_merge_perm_vals): Likewise.
1058         (find_mem_expr_in_1pdv): Likewise.
1059         (dataflow_set_different_value): Remove.
1060         (onepart_variable_different_p): Merge asserts.
1061         (variable_different_p): Likewise.
1062         (dataflow_set_different_1): Inline ...
1063         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1064         (emit_notes_for_differences_1): Merge asserts.
1065
1066 2010-05-16  Richard Guenther  <rguenther@suse.de>
1067
1068         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1069         * optabs.c (libfunc_decl_hash): Likewise.
1070         * varasm.c (emutls_decl): Likewise.
1071
1072 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1073
1074         * c-decl.c: Don't include gimple.h.
1075         (merge_decls): Do not copy gimple_body.
1076
1077 2010-05-15  Jason Merrill  <jason@redhat.com>
1078
1079         * c.opt: Add -fnothrow-opt.
1080
1081 2010-05-15  Jan Hubicka  <jh@suse.cz>
1082
1083         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1084         analyzed.
1085         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1086
1087 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1088
1089         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1090         * Makefile.in: Add it.
1091         Fix all other Makefile dependencies for changes below.
1092         * tree.h: Include it instead of defining VEC primitives here.
1093         * gimple.h: Likewise.
1094         * rtl.h: Likewise.
1095         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1096         * except.h: Include vecir.h, break dependence on tree.h.
1097
1098         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1099         Move from here...
1100         * tree-iterator.c: ...to here.
1101         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1102
1103         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1104         tm_p.h.
1105         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1106         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1107         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1108         tree-mudflap.h, and target.h.
1109         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1110         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1111         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1112         Add FIXME for why gimple.h is still included (should be unnecessary
1113         since GCC 4.5 gimplification unit-at-a-time).
1114         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1115         * c-pragma.c: Add FIXME for why function.h needs to be included just
1116         for cfun, at front-end level.
1117         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1118         Do not include ggc.h, but include vecprim.h for VEC(char).
1119         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1120         Explain why target.h is included.
1121         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1122         Explain why gimple.h is included.
1123         * c-ppoutput.c: Do not include tm.h.
1124         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1125         * c-parses.c: Explain why rtl.h is included, and that this (and only
1126         this) is also why tm.h must be included.
1127         Do not include except.h.
1128         * c-lang.c: Do not include ggc.h.
1129
1130 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1131
1132         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1133
1134 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
1135
1136         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1137         unions by default if those structs and unions have no tags.  Do
1138         not condition anonymous struct and unions handling on flag_iso.
1139         Allow anonymous structs and unions for C1X.
1140         (finish_struct): Do not diagnose lack of named fields when
1141         anonymous structs and unions present for C1X.  Accept flexible
1142         array members in structure with anonymous structs or unions but no
1143         directly named fields.
1144         * doc/extend.texi (Unnamed Fields): Update.
1145
1146 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1147
1148         * gimple.h (compare_field_offset): Rename into...
1149         (gimple_compare_field_offset): ...this.
1150         * gimple.c (compare_field_offset): Rename into...
1151         (gimple_compare_field_offset): ...this.  Compare the full access if
1152         the offset is self-referential.
1153         (gimple_types_compatible_p): Adjust for above renaming.
1154         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
1155         DECL_NONADDRESSABLE_P flag of fields before merging them.
1156
1157 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
1158
1159         * tree.h (ctor_to_list): Delete.
1160         * tree.c (ctor_to_list): Delete.
1161
1162 2010-05-15  Jan Hubicka  <jh@suse.cz>
1163
1164         * ipa-reference.c: Include toplev.h
1165         (is_proper_for_analysis): Only add to all_module_statics
1166         if it is allocated.
1167         (write_node_summary_p, stream_out_bitmap,
1168         ipa_reference_write_optimization_summary,
1169         ipa_reference_read_optimization_summary): New.
1170         (struct ipa_opt_pass_d pass_ipa_reference): Add
1171         optimization summary streaming.
1172         * lto-cgraph.c (referenced_from_this_partition_p,
1173         reachable_from_this_partition_p): New functions.
1174         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1175         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
1176         * opts.c (decode_options): Enable ipa_reference.
1177         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
1178         * lto-streamer.h (referenced_from_this_partition_p,
1179         reachable_from_this_partition_p): Declare.
1180
1181 2010-05-15  Richard Guenther  <rguenther@suse.de>
1182
1183         PR tree-optimization/44038
1184         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
1185         taking the address of a V_C_E of a constant.
1186
1187 2010-05-14  Jan Hubicka  <jh@suse.cz>
1188
1189         * tree.h (memory_identifier_string): Remove.
1190         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
1191         (ipa_reference_global_vars_info_d): Remove statics_not_read and
1192         statics_not_written.
1193         (ipa_reference_optimization_summary_d): New structure.
1194         (ipa_reference_optimization_summary_t): New type and vector.
1195         (ipa_reference_vars_info_d): Embedd structures instead of using
1196         pointers.
1197         (reference_vars_to_consider): Remove out of GGC space.
1198         (module_statics_escape): Remove.
1199         (global_info_obstack): Rename to ...
1200         (optimization_summary_obstack): ... this one.
1201         (initialization_status_t): Remove.
1202         (memory_identifier_string): Remove.
1203         (get_reference_vars_info): Fix indenting.
1204         (set_reference_vars_info): Likewise.
1205         (get_reference_optimization_summary): New.
1206         (set_reference_optimization_summary): New.
1207         (get_global_reference_vars_info): Remove.
1208         (ipa_reference_get_read_global): Remove.
1209         (ipa_reference_get_written_global): Remove.
1210         (ipa_reference_get_not_read_global): Update.
1211         (ipa_reference_get_not_written_global): Update.
1212         (is_proper_for_analysis): Outlaw addressable.
1213         (propagate_bits): Update for new datastructures.
1214         (analyze_variable): Remove.
1215         (init_function_info): Update for new datastructures.
1216         (clean_function_local_data): Remove.
1217         (clean_function): Remove.
1218         (copy_global_bitmap): Use optimizations_summary_obstack.
1219         (duplicate_node_data): Duplicate optimization summary only.
1220         (remove_node_data): Remove optimization summary only.
1221         (generate_summary): Do not analyze variables; do not compute
1222         module_statics_escape; do not prune solutions by it.
1223         (read_write_all_from_decl): Fix typos in comments.
1224         (propagate): Doscover readonly and nonaddressable first;
1225         update for new datastructures; share global bitmaps.
1226         * ipa-reference.h (ipa_reference_get_read_global,
1227         ipa_reference_get_written_global): Remove.
1228         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
1229         * Makefile.in: Remove ipa-refereference from GT files.
1230
1231 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1232
1233         PR debug/44112
1234         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
1235         for all SYMBOL_REF_DECLs.
1236
1237 2010-05-14  Jan Hubicka  <jh@suse.cz>
1238
1239         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
1240         (varpool_all_refs_explicit_p): New inline function.
1241         * ipa-reference.c: Update comment.
1242         (module_statics_written): Remove.
1243         (get_static_decl): Remove.
1244         (ipa_init): Do not initialize module_statics_written.
1245         (analyze_function): Likewise.
1246         (generate_summary): Likewise; do not compute module_statics_readonly
1247         and do not update variable flags.
1248         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
1249         * ipa.c: Inlucde flags.h
1250         (cgraph_local_node_p): New.
1251         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
1252         promote functions to local.
1253         (ipa_discover_readonly_nonaddressable_vars): New function.
1254         (function_and_variable_visibility): Use cgraph_local_node_p.
1255         * varpool.c (varpool_finalize_decl): Set force_output for
1256         DECL_PRESERVE_P vars.
1257
1258 2010-05-14  Jan Hubicka  <jh@suse.cz>
1259
1260         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
1261
1262 2010-05-14  Richard Guenther  <rguenther@suse.de>
1263
1264         PR tree-optimization/44119
1265         * tree-ssa-pre.c (eliminate): Properly mark replacement of
1266         a PHI node necessary.
1267
1268 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1269
1270         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
1271
1272 2010-05-14  Jason Merrill  <jason@redhat.com>
1273
1274         PR c++/44127
1275         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
1276         (gimple_call_set_nothrow): New.
1277         * gimple.c (gimple_build_call_from_tree): Call it.
1278         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
1279
1280         PR c++/44127
1281         * gimplify.c (gimplify_seq_add_stmt): No longer static.
1282         * gimple.h: Declare it.
1283         * gimple.c (gimple_build_eh_filter): No ops.
1284
1285 2010-05-14  Jan Hubicka  <jh@suse.cz>
1286
1287         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
1288         nodes already in queue.
1289         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
1290         re-enqueueing node.
1291
1292 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1293
1294         PR debug/44136
1295         * cfgexpand.c (expand_debug_expr): If non-memory op0
1296         has BLKmode, return NULL.
1297
1298 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
1299
1300         * config.gcc: Add support for --with-cpu option for bdver1.
1301         * config/i386/i386.h (TARGET_BDVER1): New macro.
1302         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
1303         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1304         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
1305         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1306         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
1307         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
1308         (processor_type): Add PROCESSOR_BDVER1.
1309         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
1310         processor_type in config/i386/i386.h.
1311         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
1312         movaps <reg, reg> instead of movapd <reg, reg> when replacing
1313         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
1314         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
1315         to emit packed xor instead of packed double/packed integer
1316         xor for SSE and AVX when moving a zero value.
1317         * config/i386/sse.md: Add check for
1318         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
1319         movapd/movdqa for SSE and AVX.
1320         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
1321         single logical operations i.e and, or and xor instead of packed double
1322         logical operations for SSE and AVX.
1323         * config/i386/i386-c.c (ix86_target_macros_internal):
1324         Add PROCESSOR_BDVER1.
1325         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
1326         (has_fma4, has_xop): New.
1327         * config/i386/i386.c (bdver1_cost): New variable.
1328         (m_BDVER1): New macro.
1329         (m_AMD_MULTIPLE): Add m_BDVER1.
1330         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
1331         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
1332         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
1333         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
1334         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
1335         x86_tune_sse_partial_reg_dependency,
1336         x86_tune_sse_unaligned_load_optimal,
1337         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
1338         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
1339         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
1340         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
1341         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1342         Enable/disable for bdver1.
1343         (processor_target_table): Add bdver1_cost.
1344         (cpu_names): Add bdver1.
1345         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
1346          processor_alias_table.
1347         (ix86_expand_vector_move_misalign): Change.
1348         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
1349         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
1350         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
1351         of movupd/movdqu for SSE and AVX.
1352         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
1353         (ix86_tune_adjust_cost): Add code for bdver1.
1354         (standard_sse_constant_opcode): Add check for
1355         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
1356         of packed double xor for SSE and AVX.
1357
1358 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
1359
1360         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
1361         result to unsigned.
1362
1363 2010-05-14  Tristan Gingold  <gingold@adacore.com>
1364
1365         * toplev.c (default_debug_hooks): Remove this variable.
1366         (process_options): Remove assignments to default_debug_hooks.
1367
1368 2010-05-14  Martin Jambor  <mjambor@suse.cz>
1369
1370         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
1371         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
1372         * langhooks.h (struct lang_hooks_for_decls): Removed field
1373         fold_obj_type_ref.
1374         * tree.c (free_lang_data): Remove assignment to
1375         lang_hooks.fold_obj_type_ref.
1376         * tree.def (OBJ_TYPE_REF): Update comment.
1377
1378 2010-05-14  Richard Guenther  <rguenther@suse.de>
1379
1380         PR tree-optimization/44124
1381         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
1382
1383 2010-05-14  Alan Modra  <amodra@gmail.com>
1384
1385         PR target/44075
1386         * config/rs6000/rs6000.c (struct machine_function): Reorder
1387         fields for better packing.  Add lr_save_state.
1388         (rs6000_ra_ever_killed): Return lr_save_state if set.
1389         (rs6000_emit_eh_reg_restore): Set lr_save_state.
1390
1391 2010-05-13  Jan Hubicka  <jh@suse.cz>
1392
1393         * varpool.c (decide_is_variable_needed): Drop code checking
1394         TREE_SYMBOL_REFERENCED.
1395
1396 2010-05-13  Jan Hubicka  <jh@suse.cz>
1397
1398         * final.c (output_addr_const): Do not call mark_decl_referenced.
1399         * cgraphunit.c (process_function_and_variable_attributes): Use
1400         mark_needed_node dirrectly.
1401         (assemble_thunk): Do not call mark_decl_referenced.
1402
1403 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
1404
1405         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
1406
1407 2010-05-13  Jeff Law  <law@redhat.com>
1408
1409         * ira-conflicts.c (print_allocno_conflicts): New function broken out
1410         from...
1411         (print_conflicts): Call print_allocno_conflicts.
1412
1413 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1414
1415         PR debug/44104
1416         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
1417         if it is NULL.
1418
1419 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
1420
1421         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
1422         t-mingw-w64 or t-mingw-w32 for multilib configuration.
1423         * config/i386/t-mingw-w32: New.
1424         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
1425
1426 2010-05-13  Martin Jambor  <mjambor@suse.cz>
1427
1428         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
1429         gimple-fold.c).
1430         * gimple-fold.c (get_base_binfo_for_type): New function.
1431         (gimple_get_relevant_ref_binfo): Likewise.
1432         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1433         (gimple_fold_obj_type_ref): Likewise.
1434         (fold_gimple_call): Simplify condition for folding virtual calls
1435         and call gimple_fold_obj_type_ref.
1436         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
1437         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1438
1439 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
1440
1441         * config/rs6000/rs6000-protos.h
1442         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
1443         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
1444         (rs6000_debug_mode_dependent_address)
1445         (rs6000_mode_dependent_address_ptr): Likewise.
1446
1447 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1448
1449         PR debug/43983
1450         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
1451         by SRA.
1452         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
1453         * tree-sra.c (create_access_replacement): Call unshare_expr before
1454         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
1455         * dwarf2out.c: Include tree-flow.h.
1456         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
1457         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1458         Handle DW_OP_bit_piece.
1459         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
1460         construct_piece_list, adjust_piece_list): New functions.
1461         (add_var_loc_to_decl): Handle SRA optimized variables.
1462         Adjust for var_loc_note to loc field renaming.
1463         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
1464         in VAR_LOCATION note.
1465         (new_loc_descr_op_bit_piece): New function.
1466         (dw_sra_loc_expr): New function.
1467         (dw_loc_list): Use it.  Don't handle the last range after the
1468         loop, handle it inside of the loop.  Adjust for var_loc_note
1469         to loc field renaming.
1470         (add_location_or_const_value_attribute): Only special case
1471         single entry loc lists if loc is NOTE_P.  Adjust for
1472         var_loc_note to loc field renaming.
1473         (dwarf2out_var_location): Don't set newloc->var_loc_note
1474         and newloc->next here.
1475
1476 2010-05-12  Jan Hubicka  <jh@suse.cz>
1477
1478         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
1479         flag.
1480         * cgraph.h (cgraph_only_called_directly_p,
1481         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
1482         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
1483         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
1484         (assemble
1485         * ipa.c (cgraph_remove_unreachable_nodes): Use
1486         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
1487         flags.
1488         * tree-inline.c (copy_bb): Check address_taken flag.
1489         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
1490         externally_visible flag.
1491
1492 2010-05-12  Jason Merrill  <jason@redhat.com>
1493
1494         PR bootstrap/44048
1495         PR target/44099
1496         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
1497         * sdbout.c (plain_type_1): Likewise.
1498         * dwarf2out.c (is_base_type): Likewise.
1499         (gen_type_die_with_usage): Likewise.  Generate
1500         DW_TAG_unspecified_type for any LANG_TYPE.
1501
1502 2010-05-12  Jan Hubicka  <jh@suse.cz>
1503
1504         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
1505         indrect edges too.
1506         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
1507         (cgraph_clone_edge): Update.
1508         (cgraph_node_remove_callees): Remove indirect calls too.
1509         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
1510         (cgraph_create_indirect_edge): Update prototype.
1511         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
1512         is_proper_for_analysis.
1513         (add_new_function, visited_nodes, function_insertion_hook_holder,
1514         get_local_reference_vars_info, mark_address_taken, mark_address,
1515         mark_load, mark_store, check_asm_memory_clobber, check_call,
1516         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
1517         (ipa_init): Do not initialize visited_nodes;
1518         function_insertion_hook_holder.
1519         (analyze_variable): Rewrite.
1520         (analyze_function): Rewrite.
1521         (copy_local_bitmap): Remove.
1522         (duplicate_node_dat): Do not duplicate local info.
1523         (generate_summary): Simplify to only walk cgraph.
1524         (write_node_summary_p, ipa_reference_write_summary,
1525         ipa_reference_read_summary): Remove.
1526         (propagate): Do not remove function insertion;
1527         generate summary.
1528         (pass_ipa_reference): NULLify summary handling fields.
1529         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
1530         (input_edge): Input ecf_flags.
1531         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
1532         (update_indirect_edges_after_inlining): Ignore edges with unknown
1533         param.
1534
1535 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
1536
1537         * implicit-zee.c: New file.
1538         * tree-pass.h (pass_implicit_zee): Declare.
1539         * passes.c (init_optimization_passes): Add zee pass.
1540         * common.opt (fzee): New flag.
1541         * timevar.def (TV_ZEE): Define.
1542         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
1543         and beyond.
1544         * Makefile.in (implicit-zee.o): Add new build file.
1545
1546 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1547             Nathan Froyd  <froydnj@codesourcery.com>
1548
1549         * c-common.c (sync_resolve_params): Remove write-only variable.
1550
1551 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
1552
1553         * target.h (struct gcc_target): Add mode_dependent_address_p field.
1554         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1555         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
1556         * targhooks.c (default_mode_dependent_address_p): New function.
1557         * targhooks.h (default_mode_dependent_address_p): Declare function.
1558         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1559         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
1560         * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
1561         target hook. Change return type to bool.
1562         * recog.h: (mode_dependent_address_p): Change return type to bool.
1563
1564 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1565             Nathan Froyd  <froydnj@codesourcery.com>
1566
1567         * tree-mudflap.c (build_function_type_0, build_function_type_1,
1568         build_function_type_2, build_function_type_3): Remove.
1569         (mudflap_init): Use build_function_type_list.
1570
1571 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1572             Nathan Froyd  <froydnj@codesourcery.com>
1573
1574         * coverage.c (build_fn_info_value): Call build_constructor instead of
1575         build_constructor_from_list.
1576         (build_ctr_info_value): Likewise.
1577         (build_gcov_info): Likewise.
1578
1579 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
1580
1581         * tree.c (build_constructor): Compute TREE_CONSTANT for the
1582         resultant constructor.
1583         (build_constructor_single): Don't set TREE_CONSTANT.
1584         (build_constructor_from_list): Don't compute TREE_CONSTANT.
1585
1586 2010-05-12  Jan Hubicka  <jh@suse.cz>
1587
1588         * cgraph.h (struct varpool_node): Add aux.
1589         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
1590         * varpool.c (varpool_remove_node): Do not remove initializer.
1591         (varpool_reset_queue): Export.
1592         (varpool_finalize_decl): Volatile vars are forced to be output.
1593         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
1594         replaced decl.
1595         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
1596         process_references, varpool_can_remove_if_no_refs): New functions.
1597         (cgraph_remove_unreachable_nodes): Handle variables too.
1598
1599 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1600
1601         PR target/44088
1602         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
1603
1604 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
1605
1606         PR middle-end/44085
1607         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
1608         change value of ORT_TASK.
1609         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
1610         (omp_notice_threadprivate_variable): New function.
1611         (omp_notice_variable): Call it for threadprivate variables.
1612         If enclosing ctx is a task, print enclosing task rather than
1613         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
1614         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
1615         if task has untied clause.
1616
1617         PR debug/42278
1618         * dwarf2out.c (base_type_die): Don't add name attribute here.
1619         (modified_type_die): Instead of sizetype use
1620         its underlying original type.  If a DW_TAG_base_type doesn't
1621         have name added, add __unknown__.
1622         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
1623         always call force_type_die instead.
1624
1625 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
1626
1627         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
1628         for __stack_chk_guard.
1629
1630 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1631
1632         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
1633         don't call start_source_file debug hook here...
1634         (finish_options): ... but here, after outputting predefined and
1635         command line defines and undefs.
1636
1637         PR middle-end/44071
1638         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
1639         no fallthru edge.
1640         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
1641         optimizing away empty bb with no successors, move over its
1642         footer chain to fallthru predecessor.
1643         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
1644         (rtl_split_edge): For asm goto call patch_jump_insn even if
1645         splitting fallthru edge.
1646
1647         PR c++/44059
1648         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
1649         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
1650         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
1651         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
1652         on DW.ref.* decls.
1653
1654         PR c++/44062
1655         * c-parser.c (c_parser_expression): Mark LHS of a comma
1656         expression as read if it is a decl, handled component or
1657         COMPOUND_EXPR with that on the RHS.
1658         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
1659         if it is a decl or handled component.
1660
1661 2010-05-11  Jan Hubicka  <jh@suse.cz>
1662
1663         * lto-symtab.c (lto_symtab_free): New function.
1664         * lto-streamer.h (lto_symtab_free): Declare.
1665
1666 2010-05-11  Jan Hubicka  <jh@suse.cz>
1667
1668         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
1669         that if function is needed it is reachable.
1670         (lto_output_node): See if it the function is reachable or referenced.
1671         (output_cgraph): Update call of lto_output_node.
1672         * lto-streamer.h (reachable_from_other_partition_p): Declare.
1673
1674 2010-05-11  Jan Hubicka  <jh@suse.cz>
1675
1676         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
1677         Mark as used.
1678
1679 2010-05-11  Jan Hubicka  <jh@suse.cz>
1680
1681         PR tree-optimize/44063
1682         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
1683         queue.
1684         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
1685         limits.
1686         (estimate_function_body_sizes): Compute sizes even when disregarding.
1687
1688 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
1689
1690         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
1691
1692 2010-05-11  Jan Hubicka  <jh@suse.cz>
1693
1694         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
1695         into every boundary.
1696
1697 2010-05-11  Jan Hubicka  <jh@suse.cz>
1698
1699         * matrix-reorg.c (matrix_reorg): Rebuild edges.
1700
1701 2010-05-11  Jan Hubicka  <jh@suse.cz>
1702
1703         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
1704         lto_streamer_cache_delete): Put nodes into heap.
1705         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
1706         heap.
1707
1708 2010-05-11  Jan Hubicka  <jh@suse.cz>
1709
1710         * cgraphbuild.c (cgraph_rebuild_references): New.
1711         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
1712         out extern inlines.
1713         * cgraph.h (cgraph_rebuild_references): Declare.
1714         * tree-inline.c (tree_function_versioning): Use it.
1715         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
1716
1717 2010-05-11  Jan Hubicka  <jh@suse.cz>
1718
1719         * cgraph.c: Include ipa-utils.h
1720         (cgraph_create_virtual_clone): Update references.
1721         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
1722
1723 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1724
1725         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
1726         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
1727         cache size.
1728
1729 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1730
1731         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
1732
1733 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1734
1735         * gcc.c (execute): For -### don't quote arguments that
1736         contain just alphanumerics and _/-. characters.
1737         * doc/invoke.texi: Document that change for -###.
1738
1739         PR debug/44023
1740         * df-problems.c (struct dead_debug): Add to_rescan field.
1741         (dead_debug_init): Clear to_rescan field.
1742         (dead_debug_finish): Rescan all debug insns in to_rescan
1743         bitmap and free the bitmap.
1744         (dead_debug_insert_before): Instead of rescanning debug insns
1745         immediately queue their rescanning until dead_debug_finish.
1746         (df_note_bb_compute): After dead_debug_add do continue instead
1747         of break.
1748
1749 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
1750
1751         PR debug/44028
1752         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
1753         clear also INSN_REG_USE_LIST.
1754
1755 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1756
1757         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
1758
1759 2010-05-10  Jan Hubicka  <jh@suse.cz>
1760
1761         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
1762         commited change.
1763
1764 2010-05-10  Jan Hubicka  <jh@suse.cz>
1765
1766         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
1767         Allocate encoders.
1768         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
1769         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
1770         (lto_streamer_cache_create): Init alloc pool.
1771         (lto_streamer_cache_delete): Free alloc pool.
1772         * lto-streamer.h: Include alloc pool.
1773         (lto_streamer_cache_d): Use alloc pool.
1774         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
1775
1776 2010-05-10  Jan Hubicka  <jh@suse.cz>
1777
1778         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
1779         * cgraphbuild.c: Include except.h
1780         (record_type_list, record_eh_tables): New function.
1781         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
1782
1783 2010-05-10  Jan Hubicka  <jh@suse.cz>
1784
1785         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
1786         __frame_dummy_init_array_entry, force_to_data): Attribute as used
1787         rather than unused.
1788
1789 2010-05-10  Michael Matz  <matz@suse.de>
1790
1791         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
1792         (can_reassociate_p): Use FLOAT_TYPE_P.
1793         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
1794         (vect_force_simple_reduction): ... this.
1795         * tree-parloops.c (gather_scalar_reductions): Use
1796         vect_force_simple_reduction.
1797         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
1798         vect_is_simple_reduction, add modify argument, if true rewrite
1799         "a-b" into "a+(-b)".
1800         (vect_is_simple_reduction, vect_force_simple_reduction): New
1801         functions.
1802         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
1803
1804 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1805             Vladimir Makarov  <vmakarov@redhat.com>
1806
1807         PR rtl-optimization/44012
1808         * ira-build.c (remove_unnecessary_allocnos): Nullify
1809         regno_allocno_map of the removed allocno.
1810
1811 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1812
1813         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
1814         to /dev/null.
1815         * configure: Regenerate.
1816
1817 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1818
1819         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
1820         unused.
1821         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
1822         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
1823         support in Sun ld.
1824         * configure: Regenerate.
1825
1826 2010-05-10  Richard Guenther  <rguenther@suse.de>
1827
1828         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
1829         marked if the entry identifier is marked.
1830
1831 2010-05-10  Richard Guenther  <rguenther@suse.de>
1832
1833         * c-common.c (struct c_common_attributes): Add fnspec attribute.
1834         (handle_fnspec_attribute): New function.
1835         * gimple.h (gimple_call_return_flags): Declare.
1836         (gimple_call_arg_flags): Likewise.
1837         * gimple.c (gimple_call_arg_flags): New function.
1838         (gimple_call_return_flags): Likewise.
1839         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
1840         New argument flags.
1841         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
1842         return value flags.
1843         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
1844         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
1845         main work to ...
1846         (make_heapvar_for): ... this new function.
1847         (handle_rhs_call): Handle fnspec attribute argument specifiers.
1848         (handle_lhs_call): Likewise.
1849         (find_func_aliases): Adjust.
1850
1851 2010-05-10  Richard Guenther  <rguenther@suse.de>
1852
1853         PR tree-optimization/44050
1854         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
1855
1856 2010-05-10  Wei Guozhi  <carrot@google.com>
1857
1858         PR target/42879
1859         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
1860
1861 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
1862
1863         PR c/10676
1864         * c-typeck.c (lookup_field): Take a type directly.  Update
1865         recursive calls.
1866         (build_component_ref): Update call to lookup_field.
1867         (set_init_label): Use lookup_field to find initialized field.
1868         Handle returned list of fields like a sequence of designators.
1869
1870 2010-05-09  Richard Guenther  <rguenther@suse.de>
1871
1872         PR middle-end/44024
1873         * fold-const.c (tree_single_nonzero_warnv_p): Properly
1874         handle &FUNCTION_DECL.
1875
1876 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
1877
1878         PR c/4784
1879         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
1880         structures and unions recursively.
1881         (detect_field_duplicates): Move duplicate detection with a hash to
1882         detect_field_duplicates_hash.  Always use a hash if anonymous
1883         structures or unions are present.
1884         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
1885         give errors.
1886
1887 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1888
1889         PR target/44046
1890         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
1891         detect Atom, Core 2 and Core i7.
1892
1893 2010-05-09  Richard Guenther  <rguenther@suse.de>
1894
1895         * gcc.c (store_arg): Handle temporary file deletion for
1896         joined arguments.
1897
1898 2010-05-09  Richard Guenther  <rguenther@suse.de>
1899
1900         PR middle-end/44043
1901         * ipa-inline.c (estimate_function_body_sizes): Return after
1902         disregarding inline limits.
1903
1904 2010-05-09  Richard Guenther  <rguenther@suse.de>
1905
1906         * gcc.c (store_arg): Revert last change.
1907
1908 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
1909
1910         PR middle-end/28685
1911         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
1912         (optimize_ops_list): Call it.
1913
1914 2010-05-08  Richard Guenther  <rguenther@suse.de>
1915
1916         PR tree-optimization/44030
1917         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
1918         NECESSARY flag if we propagate from a inserted expression.
1919
1920 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1921
1922         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
1923         domain types as equal if they are both PLACEHOLDER_EXPRs.
1924
1925 2010-05-08  Richard Guenther  <rguenther@suse.de>
1926
1927         * lto-wrapper.c (run_gcc): Remove linker output from
1928         command line for LTRANS invocation.
1929
1930 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1931
1932         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1933         lto-macho as lto_binary_reader.
1934         * target.h (struct gcc_target): New hooks lto_start and lto_end.
1935         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
1936         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
1937         in lto_start and lto_end calls.
1938         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
1939         magic numbers.
1940         (scan_prog_file): Update is_elf_or_coff call.
1941         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
1942
1943         * collect2.c (main): Fix enum comparison.
1944
1945         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
1946         Add prototypes.
1947         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
1948         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
1949         and TARGET_ASM_LTO_END.
1950         * darwin.c: Include obstack.h and lto-streamer.h.
1951         (lto_section_names_offset, lto_section_names_obstack,
1952         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
1953         global variables.
1954         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
1955         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
1956         to a temporary file.
1957         (darwin_asm_lto_end): New function.  Restore asm_out_file.
1958         (darwin_asm_named_section): For LTO sections, replace the name with
1959         the offset of the section name in a string table, and build this
1960         table.
1961         (darwin_file_start): Initialize global vars for LTO support.
1962         (darwin_file_end): If output to asm_out_file was redirected, append it
1963         to the proper asm_out_file here.  Add the section names section.
1964
1965 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1966
1967         * c-pragma.c (pending_weak_d, pending_weak): New.
1968         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
1969         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
1970         handle_pragma_weak): Update the uses of pending_weaks.
1971
1972 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1973
1974         PR documentation/44016
1975         * doc/standards.texi (Standards): Link to unversioned
1976         cxx0x_status.html page.
1977
1978 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
1979
1980         PR target/43708
1981         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
1982         in addition to TREE_USED, to avoid "set but unused" warnings.
1983
1984 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1985
1986         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
1987         (is_loop_prefetching_profitable): Do not insert prefetches
1988         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
1989         times the prefetch ahead distance.
1990
1991 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1992
1993         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
1994         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
1995         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
1996         the unroll_factor.
1997
1998 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1999
2000         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2001         a diagnostic info when the insn-to-mem ratio is too small.
2002
2003 2010-05-07  Richard Guenther <rguenther@suse.de>
2004
2005         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2006         the linker plugin.
2007         (store_arg): Queue temp_filename for deletion instead of
2008         the whole argument.
2009
2010 2010-05-07  Richard Guenther  <rguenther@suse.de>
2011
2012         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2013         (run_gcc): Handle LTRANS phase invocation.
2014         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2015
2016 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2017
2018         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2019         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2020
2021 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2022
2023         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2024
2025 2010-05-07  Richard Guenther  <rguenther@suse.de>
2026
2027         PR tree-optimization/44020
2028         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2029         code when PRE is not yet initialized.
2030
2031 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2032
2033         * config/mips/dbxmdebug.h: Remove.
2034         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2035
2036 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2037
2038         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2039         with null pointer and also warn about ordered comparison of zero with
2040         pointer if -Wextra.
2041
2042 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2043
2044         * graphite-blocking.c
2045         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2046         * graphite-clast-to-gimple.c
2047         (clast_to_gcc_expression): Same.
2048         (precision_for_value): Same.
2049         (precision_for_interval): Same.
2050         (gcc_type_for_interval): Same.
2051         (graphite_create_new_guard): Same.
2052         (compute_bounds_for_level): Same.
2053         (graphite_create_new_loop_guard): Same.
2054         * graphite-interchange.c
2055         (build_linearized_memory_access): Same.
2056         (pdr_stride_in_loop): Same.
2057         (memory_strides_in_loop_1): Same.
2058         (memory_strides_in_loop): Same.
2059         (extend_scattering): Same.
2060         (psct_scattering_dim_for_loop_depth): Same.
2061         (pbb_number_of_iterations): Same.
2062         * graphite-poly.h
2063         (debug_iteration_domains): Same.
2064         * graphite-ppl.c
2065         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2066         (ppl_set_inhomogeneous_gmp): Same.
2067         (ppl_strip_loop): Same.
2068         (ppl_lexico_compare_linear_expressions): Same.
2069         (ppl_read_polyhedron_matrix): Same.
2070         (ppl_max_for_le_pointset): Same.
2071         * graphite-ppl.h
2072         (ppl_read_polyhedron_matrix): Same.
2073         (tree_int_to_gmp): Same.
2074         (gmp_cst_to_tree): Same.
2075         (ppl_set_inhomogeneous): Same.
2076         (ppl_set_inhomogeneous_tree): Same.
2077         (ppl_set_coef): Same.
2078         (ppl_set_coef_tree): Same.
2079         * graphite-sese-to-poly.c
2080         (build_pbb_scattering_polyhedrons): Same.
2081         (build_scop_scattering): Same.
2082         (scan_tree_for_params_right_scev): Same.
2083         (scan_tree_for_params): Same.
2084         (find_params_in_bb): Same.
2085         (find_scop_parameters): Same.
2086         (add_upper_bounds_from_estimated_nit): Same.
2087         (build_loop_iteration_domains): Same.
2088         (add_condition_to_domain): Same.
2089         (pdr_add_memory_accesses): Same.
2090
2091 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2092
2093         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2094         CLooG's value_* macros to their respective mpz_* counterparts.
2095         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2096         (graphite_create_new_loop_guard): Same.
2097         * graphite-interchange.c (build_linearized_memory_access): Same.
2098         (pdr_stride_in_loop): Same.
2099         (memory_strides_in_loop_1): Same.
2100         (1st_interchange_profitable_p): Same.
2101         * graphite-poly.c (extend_scattering): Same.
2102         (psct_scattering_dim_for_loop_depth): Same.
2103         (pbb_number_of_iterations): Same.
2104         (pbb_number_of_iterations_at_time): Same.
2105         * graphite-poly.h (new_1st_loop): Same.
2106         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2107         (oppose_constraint): Same.
2108         (insert_constraint_into_matrix): Same.
2109         (ppl_set_inhomogeneous_gmp): Same.
2110         (ppl_set_coef_gmp): Same.
2111         (ppl_strip_loop): Same.
2112         (ppl_lexico_compare_linear_expressions): Same.
2113         (ppl_max_for_le_pointset): Same.
2114         (ppl_min_for_le_pointset): Same.
2115         (ppl_build_realtion): Same.
2116         * graphite-ppl.h (gmp_cst_to_tree): Same.
2117         (ppl_set_inhomogeneous): Same.
2118         (ppl_set_inhomogeneous_tree): Same.
2119         (ppl_set_coef): Same.
2120         (ppl_set_coef_tree): Same.
2121         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2122         (build_scop_scattering): Same.
2123         (add_value_to_dim): Same.
2124         (scan_tree_for_params_right_scev): Same.
2125         (scan_tree_for_params_int): Same.
2126         (scan_tree_for_params): Same.
2127         (find_params_in_bb): Same.
2128         (find_scop_parameters): Same.
2129         (add_upper_bounds_from_estimated_nit): Same.
2130         (build_loop_iteration_domains): Same.
2131         (create_linear_expr_from_tree): Same.
2132         (add_condition_to_domain): Same.
2133         (pdr_add_memory_accesses): Same.
2134
2135 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2136             Jason Merrill  <jason@redhat.com>
2137
2138         * c-common.c (c_common_reswords): Add nullptr.
2139         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
2140         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2141         (gen_type_die_with_usage): Likewise.
2142         * dbxout.c (dbxout_type): Likewise.
2143         * sdbout.c (plain_type_1): Likewise.
2144
2145 2010-05-06  Jason Merrill  <jason@redhat.com>
2146
2147         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2148         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
2149         ret appropriately.
2150         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2151
2152         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
2153         stripping WITH_SIZE_EXPR.
2154         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
2155         change.
2156
2157 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2158
2159         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
2160         list of obsolete configurations.
2161         Disabled check for obsolete configurations.
2162         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
2163         Removed support for previous versions.
2164         * config/mips/iris.h: Removed.
2165         * config/mips/iris5.h: Removed.
2166         * config/mips/iris6.h: Merged old iris.h contents.
2167         (TARGET_IRIX): Removed.
2168         (DRIVER_SELF_SPECS): Removed mabi=32.
2169         (IDENT_ASM_OP): Removed undef.
2170         (STARTFILE_SPEC): Removed mabi=32.
2171         (ENDFILE_SPEC): Likewise.
2172         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
2173         (MACHINE_TYPE): Update for IRIX 6.5.
2174         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
2175         TARGET_IRIX by TARGET_IRIX6.
2176         (mips_file_start): Likewise.
2177         (mips_output_external): Remove IRIX 5/6 O32 support.
2178         (mips_output_function_prologue): Likewise.
2179         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
2180         TARGET_IRIX6.
2181         (TARGET_CPU_CPP_BUILTINS): Likewise.
2182         (TARGET_IRIX): Removed.
2183         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
2184         (MULTILIB_DIRNAMES): Removed 32.
2185         (MULTILIB_OSDIRNAMES): Removed ../lib.
2186         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
2187         (Specific, mips-sgi-irix5): Document removal.
2188         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
2189         Remove references to older IRIX 6 releases and the O32 ABI.
2190
2191 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
2192
2193         PR bootstrap/43994
2194         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
2195         instead of DF_REF_REAL_REG.
2196
2197 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2198
2199         PR target/43888
2200         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
2201         handling to still return true for x64 targets.
2202
2203 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2204
2205         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
2206
2207 2010-05-06  Jan Hubicka  <jh@suse.cz>
2208
2209         PR tree-optimization/43791
2210         * ipa-inline.c (update_caller_keys): Remove bogus
2211         disregard_inline_limits check.
2212
2213 2010-05-06  Michael Matz  <matz@suse.de>
2214
2215         PR tree-optimization/43984
2216         * tree-ssa-pre.c (inserted_phi_names): Remove.
2217         (inserted_exprs): Change to bitmap.
2218         (create_expression_by_pieces): Set bits, don't append to vector.
2219         (insert_into_preds_of_block): Don't handle inserted_phi_names.
2220         (eliminate): Don't look at inserted_phi_names, remove deleted
2221         insns from inserted_exprs.
2222         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
2223         (init_pre, fini_pre): Allocate and free bitmaps.
2224         (execute_pre): Insert insns on edges before elimination.
2225
2226 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2227
2228         * tree.c (initializer_zerop): Handle STRING_CST.
2229
2230 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2231
2232         PR 40989
2233         * doc/invoke.texi (Wimplicit): Document as C only.
2234         * opts.c (common_handle_option): Add argument kind.
2235         (handle_option): Rename as read_cmdline_option. Factor out code to...
2236         (handle_option): ... here. New.
2237         (handle_options): Rename as read_cmdline_options.
2238         (decode_options): Update call.
2239         (set_option): Use option index instead of option pointer. Classify
2240         diagnostics correctly.
2241         (enable_warning_as_error): Call handle_option.
2242         * opts.h (set_option): Update declaration.
2243         (handle_option): Declare.
2244         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
2245         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
2246         * c-opts.c (set_Wimplicit): Delete.
2247         (c_family_lang_mask): New static constant.
2248         (c_common_handle_option): Add argument kind. Use handle_option
2249         instead of set_Wimplicit.
2250         (c_common_post_options): warn_implicit and warn_implicit_int
2251         are disabled by default.
2252         * c-common.c (warn_implicit): Do not define here.
2253         * c-common.h (warn_implicit): Do not declare here.
2254         (c_common_handle_option): Update declaration.
2255         * lto-opts.c (lto_reissue_options): Update call to set_option.
2256
2257 2010-05-06  Richard Guenther  <rguenther@suse.de>
2258
2259         PR tree-optimization/43571
2260         * domwalk.c (walk_dominator_tree): Walk the dominator
2261         sons in more optimal order.
2262
2263 2010-05-06  Richard Guenther  <rguenther@suse.de>
2264
2265         PR tree-optimization/43934
2266         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
2267         (stmt_cost): Likewise.
2268         (extract_true_false_args_from_phi): New helper.
2269         (determine_max_movement): For PHI nodes verify we can hoist them
2270         and compute their cost.
2271         (determine_invariantness_stmt): Handle PHI nodes.
2272         (move_computations_stmt): Likewise.  Hoist PHI nodes in
2273         if-converted form using COND_EXPRs.
2274         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
2275         (tree_ssa_lim): Likewise.
2276         * tree-flow.h (tree_ssa_lim): Adjust prototype.
2277         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
2278
2279 2010-05-06  Richard Guenther  <rguenther@suse.de>
2280
2281         PR tree-optimization/43987
2282         * tree-ssa-structalias.c (could_have_pointers): For possibly
2283         address-taken variables force pointers to be recorded.
2284         (create_variable_info_for_1): Likewise.
2285         (push_fields_onto_fieldstack): Pass in wheter all fields
2286         must have pointers.
2287         (find_func_aliases): Query types instead of vars whether
2288         they contain pointers where appropriate.
2289
2290 2010-05-06  Jan Hubicka  <jh@suse.cz>
2291
2292         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
2293         (record_reference, mark_address, mark_load, mark_store): Record
2294         references.
2295         (record_references_in_initializer): Update call of record_references.
2296         (rebuild_cgraph_edges): Remove all references before rebuiding.
2297         * cgraph.c (cgraph_create_node): Clear ref list.
2298         (cgraph_remove_node): Remove references.
2299         (dump_cgraph_node): Dump references.
2300         (cgraph_clone_node): Clone references.
2301         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
2302         (struct cgraph_node, varpool_node): Add ref_lst.
2303         * ipa-ref.c: New file.
2304         * ipa-ref.h: New file.
2305         * ipa-ref-inline.h: New file.
2306         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
2307         (referenced_from_other_partition_p): New function.
2308         (lto_output_varpool_node): Take set arugment; call
2309         referenced_from_other_partition.
2310         (lto_output_ref): New.
2311         (add_references): New.
2312         (output_refs): New.
2313         (output_cgraph): Compute boundary based on references; output refs.
2314         (output_varpool): Accept cgraph_node_set argument.
2315         (input_ref): New.
2316         (input_refs): New.
2317         (input_cgraph): Call input_refs.
2318         * lto-section-in.c (lto_section_name): Add refs.
2319         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
2320         (ipa-ref.o): New file.
2321         * varpool.c (varpool_node): Clear ipa ref list.
2322         (varpool_remove_node): Remove references.
2323         (dump_varpool_node): Dump references.
2324         (varpool_assemble_decl): Only compile finalized ones.
2325         (varpool_extra_name_alias): Initialize ref list.
2326         * lto-streamer.c (lto-get_section_name): Add .refs section.
2327         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
2328         (referenced_from_other_partition_p): Declared.
2329
2330 2010-05-06  Ira Rosen  <irar@il.ibm.com>
2331
2332         PR tree-optimization/43901
2333         * tree-vect-stmts.c (vectorizable_call): Assert that vector
2334         type is not NULL if it's transformation phase, and return
2335         FALSE if it's analysis.
2336         (vectorizable_conversion, vectorizable_operation,
2337         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
2338
2339 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
2340
2341         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2342         Delete.
2343         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2344         New define.
2345         * config/mips/mips-protos.h
2346         (mips_small_register_classes_for_mode_p): Delete prototype.
2347
2348 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
2349
2350         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
2351         * config/arm/arm.c (multiple_operation_profitable_p,
2352         compute_offset_order): New static functions.
2353         (load_multiple_sequence, store_multiple_sequence): Use them.
2354         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
2355         memory offsets, not register numbers.
2356         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
2357
2358 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
2359
2360         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
2361         (get_pending_sizes, put_pending_size, put_pending_sizes):
2362         Update the uses of pending_sizes.
2363         * c-decl.c (store_parm_decls): Likewise.
2364         * c-tree.h (struct c_arg_info): Likewise.
2365         * tree.h: Update the prototype for get_pending_sizes and
2366         put_pending_sizes.
2367
2368 2010-05-05  Jason Merrill  <jason@redhat.com>
2369
2370         PR debug/43370
2371         * c-common.c (handle_aligned_attribute): Respect
2372         ATTR_FLAG_TYPE_IN_PLACE.
2373
2374         PR testsuite/43758
2375         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
2376         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2377         (TARGET_INITIALIZER): Use it.
2378         * c-common.c (attribute_takes_identifier_p): Call it.
2379         * c-common.h: Update prototype.
2380         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
2381         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2382
2383 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2384
2385         PR debug/43950
2386         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
2387         DW_ID_down_case for Fortran compilation units.
2388
2389 2010-05-05  Jan Hubicka  <jh@suse.cz>
2390
2391         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
2392         handle aliases.
2393
2394 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2395
2396         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
2397         a variable-sized RESULT_DECL.
2398
2399 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
2400
2401         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
2402
2403 2010-05-05  Jason Merrill  <jason@redhat.com>
2404
2405         PR c++/43787
2406         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
2407         returns GS_OK.
2408         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
2409
2410 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
2411             Jakub Jelinek  <jakub@redhat.com>
2412
2413         PR debug/43478
2414         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
2415         (dead_debug_init, dead_debug_finish): New functions.
2416         (dead_debug_add, dead_debug_insert_before): Likewise.
2417         (df_note_bb_compute): Initialize a dead_debug object, add dead
2418         debug uses to it, insert debug bind insns before death insns,
2419         reset debug insns that refer to pending uses at the end.
2420         * rtl.h (make_debug_expr_from_rtl): New prototype.
2421         * varasm.c (make_debug_expr_from_rtl): New function.
2422
2423 2010-05-05  Jan Hubicka  <jh@suse.cz>
2424
2425         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
2426         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
2427         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
2428         lto_varpool_encoder_deref, lto_varpool_encoder_size,
2429         lto_varpool_encoder_encode_initializer_p,
2430         lto_set_varpool_encoder_encode_initializer): New functions.
2431         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
2432         call output_varpool.
2433         (input_varpool_node): Do not always set analyzed.
2434         (input_cgraph_1): Return vector of cgraph nodes.
2435         (input_varpool_1): Return vector of varpools.
2436         (input_cgraph): Free the vectors.
2437         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2438         output only initializers needed.
2439         (lto_output): Only call output_cgraph.
2440         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
2441         * lto-section-out.c (lto_new_out_decl_state): Initialize
2442         state->varpool_node_encoder.
2443         * lto-streamer.h (lto_varpool_encoder_d): New.
2444         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2445         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
2446         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
2447         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
2448         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
2449         Declare.
2450         (output_varpool, input_varpool): Remove declarations.
2451
2452 2010-05-05  Jan Hubicka  <jh@suse.cz>
2453
2454         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
2455         with body can prevail.
2456
2457 2010-05-05  Jan Hubicka  <jh@suse.cz>
2458
2459         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
2460         size.
2461
2462 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2463
2464         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
2465
2466         * gengtype.h (erro_at_line): Constify pos argument.
2467
2468         * gengtype.c: Include hashtab.h.
2469         (enum gc_used): Document GC_MAYBE_POINTED_TO.
2470         (error_at_line): Constify pos argument.
2471         (do_typedef): Initialize p->opt field.
2472         (get_file_gtfilename): Fix comment typo.
2473         (struct walk_type_data): Constify line field.
2474         (get_output_file_for_structure): New function.
2475         (write_local_func_for_structure): Constify orig_s argument.
2476         Use get_output_file_for_structure.
2477         (write_func_for_structure): Use get_output_file_for_structure.
2478         (INDENT): New define.
2479         (dump_pair, dump_type, dump_type_list, dump_typekind)
2480         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
2481         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
2482         functions.
2483         (seen_types): New variable.
2484         (main): New variable do_dump.  Process "-d" command line option.
2485         Call dump_everything if dump requested.
2486
2487 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2488
2489         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
2490         in a temporary instead of invoking the macro multiple times.
2491         (track_expr_p): Likewise.
2492
2493 2010-05-04  Neil Vachharajani <nvachhar@google.com>
2494
2495         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
2496         per new semantics.
2497         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
2498         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
2499         conditions for printing notes.
2500         * common.opt (-Wcoverage-mismatch): Allow negative, default to
2501         true, update documentation.
2502         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
2503
2504 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
2505
2506         PR c/43981
2507         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
2508         on dimen.
2509
2510 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2511
2512         PR target/43799
2513         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
2514         (*sse_prologue_save_insn1): Likewise.
2515         (SSE prologue save splitter): Likewise.
2516
2517 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2518
2519         * tree.c (free_lang_data_in_one_sizepos): New inline function.
2520         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
2521         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
2522         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
2523         all decls.  Call it on DECL_FIELD_OFFSET of fields.
2524         (find_decls_types_r): Follow DECL_VALUE_EXPR.
2525         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
2526
2527 2010-05-04  Martin Jambor  <mjambor@suse.cz>
2528
2529         * tree-sra.c (build_access_from_expr_1): The first parameter type
2530         changed to simple tree.
2531         (build_access_from_expr): Likewise, gsi parameter was eliminated.
2532         (scan_assign_result): Renamed to assignment_mod_result, enum elements
2533         renamed as well.
2534         (build_accesses_from_assign): Removed all parameters except for a
2535         simple gimple statement.  Now returns a simple bool.
2536         (scan_function): All non-analysis parts moved to separate functions
2537         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
2538         parameters and updated both callers.
2539         (sra_modify_expr): Removed parameter data.
2540         (sra_modify_function_body): New function.
2541         (perform_intra_sra): Call sra_modify_function_body to modify the
2542         function body.
2543         (replace_removed_params_ssa_names): Parameter data changed into
2544         adjustments vector.
2545         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
2546         changed the parameter dont_convert to convert with the opposite
2547         meaning.
2548         (sra_ipa_modify_assign): Parameter data changed into adjustments
2549         vector, return value changed to bool.
2550         (ipa_sra_modify_function_body): New function.
2551         (sra_ipa_reset_debug_stmts): Updated a comment.
2552         (modify_function): Use ipa_sra_modify_function_body to modify function
2553         body.
2554
2555 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2556
2557         PR middle-end/43671
2558         * alias.c (true_dependence): Handle the same VALUE in x and mem.
2559         (canon_true_dependence): Likewise.
2560         (write_dependence_p): Likewise.
2561
2562 2010-05-04  Jan Hubicka  <jh@suse.cz>
2563
2564         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
2565         * cgraphbuild.c: Include ipa-utils.h
2566         (record_reference_ctx): New struct.
2567         (record_reference): Simplify to work on initializers; not statements.
2568         (mark_address, mark_load, mark_store): New.
2569         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2570         walk PHI nodes too.
2571         (record_references_in_initializer): Update use of record_reference.
2572         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2573         walk PHI nodes too.
2574
2575 2010-05-04  Jan Hubicka  <jh@suse.cz>
2576
2577         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
2578         node will be removed anyway.
2579         (lto_varpool_replace_node): Allow also unanalyzed nodes;
2580         relink aliases of node into prevailing node.
2581         * varpool.c (varpool_remove_node): Remove aliases properly;
2582         when removing node, remove all its aliases too; remove DECL_INITIAL
2583         of removed node; ggc_free the varpool node.
2584
2585 2010-05-04  Richard Guenther  <rguenther@suse.de>
2586
2587         PR tree-optimization/43879
2588         * tree-ssa-structalias.c (alias_get_name): Use
2589         DECL_ASSEMBLER_NAME if available.
2590         (create_function_info_for): Return the varinfo node.
2591         (ipa_pta_execute): Associate same-body aliases and extra names
2592         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
2593
2594 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2595
2596         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
2597
2598 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
2599
2600         PR bootstrap/43964
2601         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
2602         only if HONOR_REG_ALLOC_ORDER is not defined.
2603
2604 2010-05-04  Richard Guenther  <rguenther@suse.de>
2605
2606         PR tree-optimization/43949
2607         * tree-vrp.c (extract_range_from_binary_expr): Only handle
2608         TRUNC_MOD_EXPR.
2609
2610 2010-04-26  Jason Merrill  <jason@redhat.com>
2611
2612         * c.opt (-fstrict-enums): New.
2613         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
2614
2615 2010-05-03  David Ung <davidu@mips.com>
2616             James E. Wilson  <wilson@codesourcery.com>
2617
2618         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
2619         emit the trap instruction before the divide for TUNE_74K.
2620
2621 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
2622
2623         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
2624         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
2625         based on the above, for new target hook.
2626
2627         * hooks.c (hook_bool_mode_true): New generic hook.
2628         * hooks.h (hook_bool_mode_true): Add prototype.
2629
2630         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
2631         target hook.
2632         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
2633         target hook, set to hook_bool_mode_false.
2634         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
2635         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
2636         with targetm.small_register_classes_for_mode_p.
2637         (find_reusable_reload): Likewise.
2638         (combine_reloads): Likewise.
2639         * reload1.c (reload_as_needed): Likewise.
2640         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
2641         * ifcvt.c (noce_process_if_block, check_cond_move_block,
2642         dead_or_predicable): Likewise.
2643         * regmove.c (optimize_reg_copy_1): Likewise.
2644         * calls.c (prepare_call_address): Likewise.
2645         (precompute_register_parameters): Likewise.
2646
2647         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
2648         hook definition.
2649         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
2650         implementation of the hook that considers all register classes
2651         small except for SH64.
2652         (sh_override_options): Use the new hook.
2653         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
2654         Add prototype.
2655
2656         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
2657         hook definition.
2658         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
2659         implementation of the hook that considers all register classes
2660         small for THUMB1.
2661         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
2662         Add prototype.
2663
2664         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
2665         hook definition.
2666         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
2667         implementation of the hook that considers all register classes
2668         small for MIPS16.
2669         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
2670         Add prototype.
2671
2672         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
2673         hook definition.
2674         * config/m32c/m32c.h: Likewise.
2675         * config/pdp11/pdp11.h: Likewise.
2676         * config/avr/avr.h: Likewise.
2677         * config/xtensa/xtensa.h: Likewise.
2678         * config/m68hc11/m68hc11.h: Likewise.
2679         * config/mn10300/mn10300.h: Likewise.
2680         * config/mcore/mcore.h: Likewise.
2681         * config/h8300/h8300.h: Likewise.
2682         * config/bfin/bfin.h: Likewise.
2683
2684         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
2685         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
2686
2687 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
2688
2689         * double-int.h (tree_to_double_int): Remove macro.
2690         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
2691         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2692         (tree_to_double_int): New function.
2693         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
2694         Move ...
2695         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2696
2697 2010-05-03  Richard Guenther  <rguenther@suse.de>
2698
2699         PR tree-optimization/43971
2700         * tree-ssa-structalias.c (get_constraint_for_1): Fix
2701         constraints in the !flag_delete_null_pointer_checks case.
2702
2703 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
2704
2705         PR debug/43972
2706         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
2707         result mode matches original rtl mode.
2708
2709 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2710
2711         PR target/43888
2712         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
2713
2714 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2715
2716         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
2717         when processing flag options.
2718
2719 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2720
2721         * gcov-iov.c (main): Change format string placeholder
2722         from %#08x to 0x%08x.
2723         * genchecksum.c (dosum): Change format string placeholder
2724         from %#02x to 0x%02x.
2725
2726 2010-05-02  Richard Guenther  <rguenther@suse.de>
2727
2728         PR tree-optimization/43879
2729         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
2730
2731 2010-05-02  Bruno Haible  <bruno@clisp.org>
2732
2733         * doc/extend.texi (Function Attributes): Fix a typo.
2734
2735 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2736
2737         Revert:
2738         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
2739         placeholder from 0x%x to %#x.
2740         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2741         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
2742         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
2743         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
2744         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
2745         * config/i386/i386.c (ix86_target_string): Ditto.
2746         * config/i386/i386.c (output_pic_addr_const): Ditto.
2747         (print_operand): Ditto.
2748
2749 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2750
2751         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
2752         placeholder from 0x%x to %#x.
2753         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
2754         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
2755         (ASM_OUTPUT_DEBUG_DATA): Ditto.
2756         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
2757         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
2758         * optc-gen.awk: Ditto.
2759         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
2760         (HOST_WIDE_INT_PRINT_HEX): Ditto.
2761         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
2762         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2763
2764 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2765
2766         * target.h (struct calls): Add function_value_regno_p field.
2767         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2768         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
2769         * targhooks.c (default_function_value_regno_p): New function.
2770         * targhooks.h (default_function_value_regno_p): Declare function.
2771         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
2772         * builtins.c. (apply_result_size): (Ditto.).
2773         * combine.c. (likely_spilled_retval_p): (Ditto.).
2774         * mode-switching.c. Include 'target.h'.
2775         (create_pre_exit): Use function_value_regno_p hook.
2776         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
2777         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
2778         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
2779
2780         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
2781         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
2782         (ix86_function_value_regno_p): Declare as static, change argument
2783         type to const unsigned int.
2784         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
2785
2786 2010-05-01  Richard Guenther  <rguenther@suse.de>
2787
2788         PR tree-optimization/43949
2789         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
2790         types.
2791         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
2792
2793 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2794
2795         * rtl.h (CONST_DOUBLE_P): Define.
2796         (rtx_to_double_int): Declare.
2797         * emit-rtl.c (rtx_to_double_int): New function.
2798         * dwarf2out.c (insert_double): New function.
2799         (loc_descriptor, add_const_value_attribute): Clean up, use
2800         rtx_to_double_int and insert_double functions.
2801
2802 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
2803
2804         * doc/extend.texi (Inline): Add missing return keyword to examples.
2805         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
2806         "command-line".
2807
2808 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2809
2810         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
2811         the variable part of the offset as well.  Use highest_pow2_factor for
2812         all alignment checks.
2813
2814 2010-04-30  Richard Guenther  <rguenther@suse.de>
2815
2816         PR tree-optimization/43879
2817         * tree-ssa-structalias.c (type_could_have_pointers): Functions
2818         can have pointers.
2819
2820 2010-04-30  Jan Hubicka  <jh@suse.cz>
2821
2822         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
2823         varpool.
2824         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
2825
2826 2010-04-30  Jan Hubicka  <jh@suse.cz>
2827
2828         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
2829         New.
2830         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
2831         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
2832         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
2833         cgraph_node_set_needs_ltrans_p): Remove.
2834
2835 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2836
2837         * sdbout.c: Include vec.h, do not include varray.h.
2838         (deferred_global_decls, sdbout_global_decl,
2839         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
2840         * toplev.c: Do not include varray.h.
2841         (dump_memory_report): Do not dump VARRAY statistics.
2842         * gengtype.c (open_base_file): Ignore varray.h.
2843         * Makefile.in: Update for abovementioned changes.
2844         Remove all traces of varray.c and varray.h.
2845         * varray.c: Remove file.
2846         * varray.h: Remove file.
2847
2848 2010-04-30  Jan Hubicka  <jh@suse.cz>
2849
2850         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
2851         references.
2852
2853 2010-04-30  Jan Hubicka  <jh@suse.cz>
2854
2855         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
2856         needed.
2857
2858 2010-04-30  Richard Guenther  <rguenther@suse.de>
2859
2860         * tree-ssa-structalias.c (get_constraint_for_1): Generate
2861         constraints for CONSTRUCTOR.
2862
2863 2010-04-30  Richard Guenther  <rguenther@suse.de>
2864
2865         PR lto/43946
2866         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
2867         first after all lowering passes.
2868
2869 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2870
2871         * toplev.c: Include varray.h for statistics dumping.
2872         * tree.h: Do not declare varray_head_tag.
2873         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
2874         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
2875         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
2876         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
2877         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
2878         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
2879         c-common.c, c-common.h, reg-stack.c, basic-block.h,
2880         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
2881         include varray.h.
2882         * Makefile.in: Update for abovementioned changes.
2883
2884 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
2885
2886         PR debug/43942
2887         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
2888
2889 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
2890
2891         * config/picochip/picochip.c (picochip_legitimize_address): Define.
2892         Use this function to do machine-specific conversion.
2893         (picochip_legitimize_reload_address): Likewise.
2894         (picochip_legitimate_address_p): Check valid base register only if
2895         strict.
2896         (picochip_check_conditional_copy): Check for modw only if opnd is
2897         register.
2898         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
2899         to call the function in c.
2900         * config/picochip/picochip-protos.h
2901         (picochip_legitimize_reload_address): Define.
2902         * config/picochip/picochip.md (supported_compare1): Define.
2903
2904 2010-04-30  Jan Hubicka  <jh@suse.cz>
2905
2906         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
2907         (cgraph_global_info): Remove inlined.
2908         (LTO_cgraph_tag_names): Remove.
2909         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
2910         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
2911         simplify cgraph tags and document.
2912         (lto_output_node): Use only LTO_cgraph_unavail_node and
2913         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
2914         for_functions_valid, global info, process and output flags.
2915         (input_overwrite_node): Initialize estimated stack size and
2916         estimated growth.  Do not read flags we no longer store.
2917         (input_node): Likewise do not read info no longer stored.
2918         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
2919         flag.
2920
2921 2010-04-30  Richard Guenther  <rguenther@suse.de>
2922
2923         PR tree-optimization/43879
2924         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2925         handle non-zero initializers.
2926
2927 2010-04-30  Richard Guenther  <rguenther@suse.de>
2928
2929         * builtins.c (fold_builtin_1): Delete free (0).
2930
2931 2010-04-29  Jan Hubicka  <jh@suse.cz>
2932
2933         * gengtype.c (open_base_files): Add lto-streamer.h
2934         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
2935         (pass_ipa_cp): GGC collect.
2936         * toplev. (compile_file): Do not output symbols.
2937         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
2938         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
2939         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
2940         * lto-section-in.c: Include ggc.h
2941         (lto_new_in_decl_state): Alloc in GGC.
2942         (lto_delete_in_decl_state): Likewise.
2943         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
2944         Collect.
2945
2946 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2947
2948         PR target/42895
2949         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
2950         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
2951         (HONOR_REG_ALLOC_ORDER): Describe new macro.
2952         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
2953         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
2954         account only if HONOR_REG_ALLOC_ORDER is not defined.
2955         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
2956         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
2957
2958 2010-04-29  Jon Grant  <04@jguk.org>
2959
2960         * collect2.c (vflag): Change type from int to bool.
2961         (debug): Likewise.
2962         (helpflag): New global bool.
2963         (main): Set vflag and debug with boolean, not integer truth values.
2964         Accept new "--help" option and output usage text if found.
2965         * collect2.h (vflag): Update prototype.
2966         (debug): Likewise.
2967
2968 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2969
2970         PR bootstrap/43936
2971         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
2972
2973 2010-04-29  Richard Guenther  <rguenther@suse.de>
2974
2975         PR bootstrap/43935
2976         * plugin.h (invoke_plugin_callbacks): Annotate arguments
2977         with ATTRIBUTE_UNUSED.
2978
2979 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2980
2981         PR target/43921
2982         * config/i386/i386.c (get_some_local_dynamic_name): Replace
2983         INSN_P with NONDEBUG_INSN_P.
2984         (distance_non_agu_define): Likewise.
2985         (distance_agu_use): Likewise.
2986
2987 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2988
2989         From Dominique d'Humieres <dominiq@lps.ens.fr>
2990         PR bootstrap/43858
2991         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
2992         test_set.
2993
2994 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
2995
2996         * plugin.h (invoke_plugin_callbacks): New inline function.
2997         * plugin.c (flag_plugin_added): New global flag.
2998         (add_new_plugin): Initialize above flag.
2999         (invoke_plugin_callbacks): Rename to ...
3000         (invoke_plugin_callbacks_full): ... this.
3001
3002 2010-04-28  Jan Hubicka  <jh@suse.cz>
3003
3004         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3005         (lto_varpool_replace_node): New.
3006         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3007         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3008         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3009         * cgraph.h (varpool_node_ptr): New type.
3010         (varpool_node_ptr): New vector.
3011         (varpool_node_set_def): New structure.
3012         (varpool_node_set): New type.
3013         (varpool_node_set): New vector.
3014         (varpool_node_set_element_def): New structure.
3015         (varpool_node_set_element, const_varpool_node_set_element): New types.
3016         (varpool_node_set_iterator): New type.
3017         (varpool_node): Add prev pointers, add used_from_other_partition,
3018         in_other_partition.
3019         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3020         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3021         varpool_get_node, varpool_remove_node): Declare.
3022         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3023         varpool_node_set_size): New inlines.
3024         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3025         * tree-pass.h (varpool_node_set_def): Forward declare.
3026         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3027         (ipa_write_optimization_summaries): Update prototype.
3028         * ipa-cp.c (ipcp_write_summary): Update.
3029         * ipa-reference.c (ipa_reference_write_summary): Update.
3030         * lto-cgraph.c (lto_output_varpool_node): New static function.
3031         (output_varpool): New function.
3032         (input_varpool_node): New static function.
3033         (input_varpool_1): New function.
3034         (input_cgraph): Input varpool.
3035         * ipa-pure-const.c (pure_const_write_summary): Update.
3036         * lto-streamer-out.c (lto_output): Update, output varpool too.
3037         (write_global_stream): Kill WPA hack.
3038         (produce_asm_for_decls): Update.
3039         (output_alias_pair_p): Handle variables.
3040         (output_unreferenced_globals): Output only needed partition of varpool.
3041         * ipa-inline.c (inline_write_summary): Update.
3042         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3043         cgraph.
3044         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3045         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3046         varpool_node_set_new, varpool_node_set_add,
3047         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3048         debug_varpool_node_set): New functions.
3049         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3050         (execute_one_pass): Process new decls too.
3051         (ipa_write_summaries_2): Pass around vsets.
3052         (ipa_write_summaries_1): Likewise.
3053         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3054         to add.
3055         (ipa_write_optimization_summaries_1): Pass around vsets.
3056         (ipa_write_optimization_summaries): Likewise.
3057         * varpool.c (varpool_get_node): New.
3058         (varpool_node): Update doubly linked lists.
3059         (varpool_remove_node): New.
3060         (dump_varpool_node): More dumping.
3061         (varpool_enqueue_needed_node): Update doubly linked lists.
3062         (decide_is_variable_needed): Kill ltrans hack.
3063         (varpool_finalize_decl): Kill lto hack.
3064         (varpool_assemble_decl): Skip decls in other partitions.
3065         (varpool_assemble_pending_decls): Update doubly linkes lists.
3066         (varpool_empty_needed_queue): Likewise.
3067         (varpool_extra_name_alias): Likewise.
3068         * lto-streamer.c (lto_get_section_name): Add vars section.
3069         * lto-streamer.h (lto_section_type): Update.
3070         (output_varpool, input_varpool): Declare.
3071
3072 2010-04-28  Mike Stump  <mikestump@comcast.net>
3073
3074         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3075
3076 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3077
3078         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3079         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3080         (lto_input_ts_type_tree_pointers): Likewise.
3081         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3082         (lto_output_ts_type_tree_pointers): Likewise.
3083
3084 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3085
3086         Uniquization of constants at the Tree level
3087         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3088         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3089         bit to the end.
3090         (tree_output_constant_def): Declare.
3091         * gimplify.c (gimplify_init_constructor): When using block copy, first
3092         uniquize the constant constructor on the RHS.
3093         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3094         DECL_IN_CONSTANT_POOL flag.
3095         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3096         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3097         constant pool.
3098         (assemble_variable): Deal with symbols belonging to the tree constant
3099         pool.
3100         (get_constant_section): Add ALIGN parameter and simplify.
3101         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3102         (assemble_constant_contents): Use the expression of the VAR_DECL.
3103         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3104         (tree_output_constant_def): New global function.
3105         (mark_constant): Use the expression of the VAR_DECL.
3106         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3107         its expression.
3108         (output_object_block): Likewise and assemble the expression.
3109
3110 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3111
3112         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3113         hash_tree, eq_tree): New tree hash table.
3114         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3115         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3116         lto_orig_address_remove): Reimplement.
3117
3118 2010-04-28  Xinliang David Li  <davidxl@google.com>
3119
3120         PR c/42643
3121         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3122         (compute_uninit_opnds_pos): New function.
3123         (is_non_loop_exit_postdominating): New function.
3124         (compute_control_dep_chain): New function.
3125         (find_pdom): New function.
3126         (convert_control_dep_chain_into_preds): New function.
3127         (find_predicates): New function.
3128         (find_control_equiv_block): New function.
3129         (collect_phi_def_edges): New function.
3130         (find_def_preds): New function.
3131         (find_dom): New function.
3132         (dump_predicates): New function.
3133         (get_cmp_code): New function.
3134         (is_value_included_in): New function.
3135         (find_matching_predicate_in_rest_chains): New function.
3136         (use_pred_not_overlap_with_undef_path_pred): New function.
3137         (is_use_properly_guarded): New function.
3138         (normalize_cond_1): New function.
3139         (is_and_or_or): New function.
3140         (normalize_cond): New function.
3141         (is_gcond_subset_of): New function.
3142         (is_subset_of_any): New function.
3143         (is_or_set_subset_of): New function.
3144         (is_and_set_subset_of): New function.
3145         (is_norm_cond_subset_of): New function.
3146         (is_pred_expr_subset_of): New function.
3147         (is_pred_chain_subset_of): New function.
3148         (is_included_in): New function.
3149         (is_superset_of): New function.
3150         (find_uninit_use): New function.
3151         (warn_uninitialized_phi): New function.
3152         (compute_possibly_undefined_names): New function.
3153         (ssa_undefined_value_p): New function.
3154         (execute_late_warn_uninitialized): New function.
3155         * tree-ssa.c (ssa_undefined_value_p): Removed.
3156         (warn_uninit): Changed to extern.
3157         (warn_uninitialized_phi): Removed.
3158         (warn_uninitialized_vars): Changed to extern.
3159         (execute_late_warn_uninitialized): Removed
3160         * tree-flow.h: Add new prototypes.
3161         * timevar.def: Add new time variable.
3162         * Makefile.in: Add new build file.
3163
3164 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
3165
3166         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
3167         type if available.
3168
3169 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3170
3171         PR target/22224
3172         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
3173
3174 2010-04-28  Martin Jambor  <mjambor@suse.cz>
3175
3176         * cgraph.h (struct cgraph_node): New field indirect_calls.
3177         (struct cgraph_indirect_call_info): New type.
3178         (struct cgraph_edge): Removed field indirect_call. New fields
3179         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
3180         (cgraph_create_indirect_edge): Declare.
3181         (cgraph_make_edge_direct): Likewise.
3182         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
3183         * ipa-prop.h (struct ipa_param_call_note): Removed.
3184         (struct ipa_node_params): Removed field param_calls.
3185         (ipa_create_all_structures_for_iinln): Declare.
3186         * cgraph.c: Described indirect edges and uids in initial comment.
3187         (cgraph_add_edge_to_call_site_hash): New function.
3188         (cgraph_edge): Search also among the indirect edges, use
3189         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
3190         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
3191         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
3192         site hash.
3193         (initialize_inline_failed): Assign a reason to indirect edges.
3194         (cgraph_create_edge_1): New function.
3195         (cgraph_create_edge): Moved some functionality to
3196         cgraph_create_edge_1.
3197         (cgraph_create_indirect_edge): New function.
3198         (cgraph_edge_remove_callee): Add an assert checking for
3199         non-indirectness.
3200         (cgraph_edge_remove_caller): Special-case indirect edges.
3201         (cgraph_remove_edge): Likewise.
3202         (cgraph_set_edge_callee): New function.
3203         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
3204         (cgraph_make_edge_direct): New function.
3205         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
3206         the declaration of the call statement matches.
3207         (cgraph_node_remove_callees): Special-case indirect edges.
3208         (cgraph_clone_edge): Likewise.
3209         (cgraph_clone_node): Clone also the indirect edges.
3210         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
3211         indirect_call, dump count of indirect_calls edges.
3212         * ipa-prop.c (iinlining_processed_edges): New variable.
3213         (ipa_note_param_call): Create indirect edges instead of
3214         creating notes.  New parameter node.
3215         (ipa_analyze_call_uses): New parameter node, pass it on to
3216         ipa_note_param_call.
3217         (ipa_analyze_stmt_uses): Likewise.
3218         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
3219         (print_edge_addition_message): Work on edges rather than on notes.
3220         (update_call_notes_after_inlining): Likewise, renamed to
3221         update_indirect_edges_after_inlining.
3222         (ipa_create_all_structures_for_iinln): New function.
3223         (ipa_free_node_params_substructures): Do not free notes.
3224         (ipa_edge_duplication_hook): Propagate bits within
3225         iinlining_processed_edges bitmap.
3226         (ipa_node_duplication_hook): Do not duplicate notes.
3227         (free_all_ipa_structures_after_ipa_cp): Renamed to
3228         ipa_free_all_structures_after_ipa_cp.
3229         (free_all_ipa_structures_after_iinln): Renamed to
3230         ipa_free_all_structures_after_iinln.
3231         (ipa_write_param_call_note): Removed.
3232         (ipa_read_param_call_note): Removed.
3233         (ipa_write_indirect_edge_info): New function.
3234         (ipa_read_indirect_edge_info): Likewise.
3235         (ipa_write_node_info): Do not stream notes, do stream information
3236         in indirect edges.
3237         (ipa_read_node_info): Likewise.
3238         (lto_ipa_fixup_call_notes): Removed.
3239         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
3240         * ipa-inline.c (pass_ipa_inline): Likewise.
3241         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
3242         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
3243         * tree-inline.c (copy_bb): Removed an unnecessary double check for
3244         is_gimple_call.
3245         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
3246         edges.
3247         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
3248         (output_cgraph): Stream also indirect edges.
3249         (lto_output_edge): Added capability to stream indirect edges.
3250         (input_edge): Likewise.
3251         (input_cgraph_1): Likewise.
3252         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
3253         of indirect edges.
3254
3255 2010-04-28  Richard Guenther  <rguenther@suse.de>
3256
3257         PR tree-optimization/43879
3258         PR tree-optimization/43909
3259         * tree-ssa-structalias.c (struct variable_info): Add
3260         only_restrict_pointers flag.
3261         (new_var_info): Initialize it.  Increment stats.total_vars here.
3262         (create_function_info_for): Do not increment stats.total_vars here.
3263         (get_function_part_constraint): Fix build with C++.
3264         (insert_into_field_list): Remove.
3265         (push_fields_onto_fieldstack): Properly merge fields.
3266         (create_variable_info_for): Split and simplify.
3267         (create_variable_info_for_1): New piece.
3268         (intra_create_variable_infos): Properly make restrict constraints
3269         from parameters.
3270
3271 2010-04-28  Richard Guenther  <rguenther@suse.de>
3272
3273         PR c++/43880
3274         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
3275
3276 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3277             Jan Hubicka <hubicka@ucw.cz>
3278
3279         * doc/invoke.texi (-Wsuggest-attribute=const,
3280         -Wsuggest-attribute=pure): Document.
3281         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
3282         (function_always_visible_to_compiler_p,
3283         suggest_attribute, warn_function_pure, warn_function_const):
3284         New functions.
3285         (check_call): Improve debug info.
3286         (analyze_function): Do not check availability.
3287         (add_new_function): Check availability.
3288         (propagate): Output warnings.
3289         (skip_function_for_local_pure_const): New function.
3290         (local_pure_const): Use it; output warnings.
3291         * common.opt (Wsuggest-attribute=const,
3292         Wsuggest-attribute=pure): New.
3293
3294 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3295
3296         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
3297         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
3298         or DW_CFA_def_cfa_offset{,_sf}.
3299
3300 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3301
3302         * tree.h: Fix truncated long macros.
3303
3304 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
3305
3306         * collect2.c (TARGET_64BIT): Redefine to target's default.
3307         * tlink.c: Likewise.
3308         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
3309         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
3310         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
3311         for underscoring __USER_LABEL_PREFIX__.
3312         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
3313         (SUB_LINK_ENTRY32): New.
3314         (SUB_LINK_ENTRY64): New.
3315         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
3316         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
3317         (SUB_LINK_ENTRY64): New.
3318         (SUB_LINK_ENTRY): New.
3319         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
3320         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
3321         x64 target is choosen.
3322         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
3323         * configure: Regenerated.
3324         * configure.ac (leading-mingw64-underscores): Option added.
3325
3326 2010-04-27  Jan Hubicka  <jh@suse.cz>
3327
3328         * doc/invoke.texi (-fipa-profile): Document.
3329         * opts.c (decode_options): Enable ipa-profile at -O1.
3330         * timevar.def (TV_IPA_PROFILE): Define.
3331         * common.opt (fipa-profile): Add.
3332         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
3333         flag for clones.
3334         (cgraph_propagate_frequency): Handle only local ones.
3335         * tree-pass.h (pass_ipa_profile): Declare.
3336         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
3337         (pass_ipa_profile): Use TV_IPA_PROFILE.
3338         * ipa.c (ipa_profile): New function.
3339         (gate_ipa_profile): Likewise.
3340         (pass_ipa_profile): New global variable.
3341         * passes.c (pass_ipa_profile): New.
3342
3343 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
3344
3345         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
3346
3347 2010-04-27  Martin Jambor  <mjambor@suse.cz>
3348
3349         PR middle-end/43812
3350         * ipa.c (dissolve_same_comdat_group_list): New function.
3351         (function_and_variable_visibility): Call
3352         dissolve_same_comdat_group_list when comdat group contains external or
3353         newly local nodes.
3354         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
3355         lists are circular and that they contain only DECL_ONE_ONLY nodes.
3356
3357 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3358
3359         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
3360         (const_hash_1) <VECTOR_CST>: New case.
3361         (compare_constant) <VECTOR_CST>: Likewise.
3362         <ADDR_EXPR>: Deal with LABEL_REFs.
3363         (copy_constant) <VECTOR_CST>: New case.
3364
3365 2010-04-27  Jan Hubicka  <jh@suse.cz>
3366
3367         * cgraph.c (cgraph_propagate_frequency): New function.
3368         * cgraph.h (cgraph_propagate_frequency): Declare.
3369         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
3370         cgraph_propagate_frequency.
3371
3372 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3373
3374         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3375
3376 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
3377
3378         PR target/40657
3379         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
3380         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
3381         here to determine which regs to push and how much stack to reserve.
3382
3383 2010-04-27  Jie Zhang  <jie@codesourcery.com>
3384
3385         * doc/gimple.texi (gimple_statement_with_ops): Remove
3386         addresses_taken field.
3387         (gimple_statement_with_memory_ops): Likewise.
3388
3389 2010-04-27  Jan Hubicka  <jh@suse.cz>
3390
3391         * tree-inline.c (eni_inlining_weights): Remove.
3392         (estimate_num_insns): Special case more builtins.
3393
3394 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
3395
3396         PR c/32207
3397         * c-typeck.c (build_binary_op): Move forward check for comparison
3398         pointer with null pointer constant and adjust the diagnostic message.
3399
3400 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
3401
3402         PR lto/42776
3403         * configure.ac (gcc_cv_as_section_has_align): Set if installed
3404         binutils supports extended .section directive needed by LTO, or
3405         warn if older binutils found.
3406         (LTO_BINARY_READER): New AC_SUBST'd variable.
3407         (LTO_USE_LIBELF): Likewise.
3408         * gcc/config.gcc (lto_binary_reader): New target-specific configure
3409         variable.
3410         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
3411         (LTO_USE_LIBELF): Likewise.
3412         * configure: Regenerate.
3413
3414         * collect2.c (is_elf): Rename from this ...
3415         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
3416          object files in addition to ELF-formatted ones.
3417         (scan_prog_file): Caller updated.  Also allow for LTO info marker
3418         symbol to be prefixed or not by an extra underscore.
3419
3420         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
3421         * config/i386/winnt.c: Also #include lto-streamer.h
3422         (i386_pe_asm_named_section): Specify 1-byte section alignment for
3423         LTO named sections.
3424         (i386_pe_asm_output_aligned_decl_common): Add comment.
3425         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
3426
3427 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
3428
3429         PR target/43889
3430         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
3431         Add missing earlyclobber for second alternative.
3432
3433 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
3434
3435         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
3436         bits for artificial defs at the top of the block.
3437         * fwprop.c (single_def_use_enter_block): Don't call it.
3438
3439 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
3440
3441         PR 43715
3442         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
3443         instead of "$gcc_cv_objdump -T".
3444         Use "-undefined dynamic_lookup" on darwin.
3445         * gcc/configure: Regenerate.
3446
3447 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
3448
3449         PR c/43893
3450         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
3451
3452 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3453
3454         * c-parser.c (struct c_token): Move location field up.
3455         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
3456         (struct c_declspecs): Convert typespec_word, storage_class, and
3457         default_int_p into bitfields.
3458         (struct c_declarator): Move loc field up.
3459
3460 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3461
3462         * cfgloop.h (struct loop): Move can_be_parallel field up.
3463         * ipa-prop.h (struct ip_node_params): Move bitfields up.
3464         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
3465         down.
3466         (struct iv_cand): Convert pos field into a bitfield.
3467         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
3468         field up.
3469         (struct _stmt_vec_info): Shuffle fields for better packing.
3470
3471 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3472
3473         * varasm.c (IN_NAMED_SECTION): Remove guard.
3474         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
3475         (IN_NAMED_SECTION_P): ...this.
3476         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
3477         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3478
3479 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3480
3481         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
3482         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
3483         of shadowing it.  Fix comments.
3484
3485 2010-04-26  Jan Hubicka  <jh@suse.cz>
3486
3487         * cgraph.c (cgraph_create_node): Set node frequency to normal.
3488         (cgraph_clone_node): Copy function frequency.
3489         * cgraph.h (node_frequency): New enum
3490         (struct cgraph_node): Add.
3491         * final.c (rest_of_clean_state): Update.
3492         * lto-cgraph.c (lto_output_node): Output node frequency.
3493         (input_overwrite_node): Input node frequency.
3494         * tre-ssa-loop-ivopts (computation_cost): Update.
3495         * lto-streamer-out.c (output_function): Do not output function
3496         frequency.
3497         * predict.c (maybe_hot_frequency_p): Update and handle functions
3498         executed once.
3499         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
3500         attribute lookup.
3501         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
3502         (compute_function_frequency): Set noreturn functions to be executed
3503         once.
3504         (choose_function_section): Update.
3505         * lto-streamer-in.c (input_function): Do not input function frequency.
3506         * function.c (allocate_struct_function): Do not initialize function
3507         frequency.
3508         * function.h (function_frequency): Remove.
3509         (struct function): Remove function frequency.
3510         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
3511         (try_update): Update.
3512         * tree-inline.c (initialize_cfun): Do not update function frequency.
3513         * passes.c (pass_init_dump_file): Update.
3514         * i386.c (ix86_compute_frame_layout): Update.
3515         (ix86_pad_returns): Update.
3516
3517 2010-04-26  Jie Zhang  <jie@codesourcery.com>
3518
3519         PR tree-optimization/43833
3520         * tree-vrp.c (range_int_cst_p): New.
3521         (range_int_cst_singleton_p): New.
3522         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
3523         when both operands are constants.  Use range_int_cst_p in
3524         BIT_IOR_EXPR case.
3525
3526 2010-04-26  Jan Hubicka  <jh@suse.cz>
3527
3528         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
3529
3530 2010-04-26  Richard Guenther  <rguenther@suse.de>
3531
3532         PR lto/43080
3533         * gimple.c (gimple_decl_printable_name): Deal gracefully
3534         with a NULL DECL_NAME.
3535
3536 2010-04-26  Richard Guenther  <rguenther@suse.de>
3537
3538         PR lto/42425
3539         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
3540         if emitting debug information and it is either a function
3541         or a namespace decl.
3542
3543 2010-04-26  Ira Rosen  <irar@il.ibm.com>
3544
3545         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
3546         determine if the statement is vectorizable, and a macro to access it.
3547         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3548         Skip statements that can't be vectorized. If the analysis fails,
3549         mark the statement as unvectorizable if vectorizing basic block.
3550         (vect_compute_data_refs_alignment): Likewise.
3551         (vect_verify_datarefs_alignment): Skip statements marked as
3552         unvectorizable. Add print.
3553         (vect_analyze_group_access): Skip statements that can't be
3554         vectorized. If the analysis fails, mark the statement as
3555         unvectorizable if vectorizing basic block.
3556         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
3557         * tree-vect-stmts.c (vectorizable_store): Fix the number of
3558         generated stmts for SLP.
3559         (new_stmt_vec_info): Initialize the new field.
3560         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
3561         statements marked as unvectorizable.
3562
3563 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
3564
3565         * c-common.c (flag_isoc1x): New.
3566         (flag_isoc99): Update comment.
3567         * c-common.h (flag_isoc1x): New.
3568         (flag_isoc99): Update comment.
3569         * c-cppbuiltin.c (builtin_define_float_constants): Also define
3570         __<type>_DECIMAL_DIG__.
3571         * c-opts.c (set_std_c1x): New.
3572         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
3573         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
3574         * c.opt (-std=c1x, -std=gnu1x): New options.
3575         * doc/cpp.texi: Mention -std=c1x.
3576         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
3577         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
3578         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
3579         * doc/standards.texi: Mention C1X.
3580         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
3581         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
3582         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
3583         Define for C1X.
3584
3585 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
3586
3587         * config/i386/gmon-sol2.c (_mcleanup): Change format string
3588         placeholder from 0x%x to %#x.
3589         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3590         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3591         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3592         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3593         * config/i386/i386.c (ix86_target_string): Ditto.
3594         (output_pic_addr_const): Ditto.
3595         (print_operand): Ditto.
3596
3597 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
3598
3599         * combine.c (find_split_point): Add third argument.  Use it
3600         to find nested multiply-accumulate instructions.  Adjust calls.
3601         (try_combine): Adjust call to find_split_point.
3602
3603 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3604
3605         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
3606
3607 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
3608
3609         PR tree-optimization/41442
3610         * fold-const.c (merge_truthop_with_opposite_arm): New function.
3611         (fold_binary_loc): Call it.
3612
3613 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3614
3615         * toplev.c (general_init): Set default for fdiagnostics-show-option.
3616         * opts.c (common_handle_option): Allow disabling it.
3617         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
3618
3619 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3620
3621         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
3622         between modes if both types are integral.
3623
3624 2010-04-23  Richard Guenther  <rguenther@suse.de>
3625
3626         PR tree-optimization/43572
3627         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
3628
3629 2010-04-23  Richard Guenther  <rguenther@suse.de>
3630
3631         PR lto/43455
3632         * tree-inline.c (tree_can_inline_p): Also check compatibility
3633         of return types.
3634
3635 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3636
3637         PR tree-optimization/43846
3638         * tree-sra.c (struct access): New flag grp_assignment_read.
3639         (build_accesses_from_assign): Set grp_assignment_read.
3640         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
3641         (enum mark_read_status): New type.
3642         (analyze_access_subtree): Propagate grp_assignment_read, create
3643         accesses also if both direct_read and root->grp_assignment_read.
3644
3645 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3646
3647         PR middle-end/43835
3648         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
3649         function does not have type attributes.
3650
3651 2010-04-23  Richard Guenther  <rguenther@suse.de>
3652
3653         PR lto/42653
3654         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
3655         of FUNCTION_DECLs.
3656
3657 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3658
3659         * sese.h (create_if_region_on_edge): Remove.
3660
3661         * sese.c (create_if_region_on_edge): Make static.
3662
3663         * tree-inline.c: Do not include ggc.h.
3664
3665         * expr.c: Do not include ggc.h.
3666
3667         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
3668         dependencies.
3669
3670 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3671
3672         PR target/43744
3673         * config/sh/sh.c (find_barrier): Don't emit a constant pool
3674         in the middle of insns for casesi_worker_2.
3675
3676 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
3677
3678         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
3679
3680 2010-04-22  Ira Rosen  <irar@il.ibm.com>
3681
3682         PR tree-optimization/43842
3683         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
3684         loop unrolling in update of exit phis. Fix comment.
3685         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
3686         least two reduction statements in the loop before starting SLP
3687         analysis.
3688
3689 2010-04-22  Nick Clifton  <nickc@redhat.com>
3690
3691         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
3692
3693 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
3694
3695         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
3696         to simplify a + ~a.
3697
3698 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3699
3700         * tree-parloops.c (loop_parallel_p): New argument
3701         parloop_obstack.  Pass it down.
3702         (parallelize_loops): New variable parloop_obstack.  Initialize it,
3703         pass it down, free it.
3704
3705         * tree-loop-linear.c (linear_transform_loops): Pass down
3706         lambda_obstack.
3707
3708         * tree-data-ref.h (lambda_compute_access_matrices): New argument
3709         of type struct obstack *.
3710
3711         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
3712         scratch_obstack.  Initialize it, pass down, free it.
3713
3714         * lambda.h (lambda_loop_new): Remove.
3715         (lambda_matrix_new, lambda_matrix_inverse)
3716         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
3717         argument of type struct obstack *.
3718
3719         * lambda-trans.c (lambda_trans_matrix_new): New argument
3720         lambda_obstack.  Pass it down, use obstack allocation for ret.
3721         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
3722         it down.
3723
3724         * lambda-mat.c (lambda_matrix_get_column)
3725         (lambda_matrix_project_to_null): Remove.
3726         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
3727         allocation for mat.
3728         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
3729         lambda_obstack.
3730
3731         * lambda-code.c (lambda_loop_new): New function.
3732         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
3733         (lambda_compute_auxillary_space, lambda_compute_target_space)
3734         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
3735         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
3736         (build_access_matrix): New argument lambda_obstack.  Use obstack
3737         allocation for am.
3738         (lambda_compute_step_signs, lambda_compute_access_matrices): New
3739         argument lambda_obstack.  Pass it down.
3740
3741 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3742
3743         * optabs.h (expand_widening_mult): Declare.
3744
3745 2010-04-22  Richard Guenther  <rguenther@suse.de>
3746
3747         PR tree-optimization/43845
3748         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
3749         lookup the CALL_EXPR function and arguments.
3750
3751 2010-04-22  Nick Clifton  <nickc@redhat.com>
3752
3753         * config/stormy16/stormy16.c
3754         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
3755         * config/stormy16/stormy16.h: Tidy up formatting.
3756         (DONT_USE_BUILTIN_SETJMP): Remove definition.
3757         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
3758         (ineqbranchsi): Delete pattern.
3759         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
3760         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
3761         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3762         stormy16-lib2-ucmpsi2.c.
3763
3764 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3765
3766         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
3767         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
3768         extra set merge_set_noclobber, and use it to relax the final test
3769         slightly.
3770         * df.h (df_simulate_find_noclobber_defs): Declare.
3771         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
3772         conditional defs.
3773         (df_simulate_find_noclobber_defs): New function.
3774
3775 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
3776
3777         * config/i386/i386.md: Use {} around multi-line preparation statements.
3778
3779 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3780
3781         * c-tree.h (push_init_level, pop_init_level, set_init_index)
3782         (process_init_element): New argument of type struct obstack *.
3783
3784         * c-typeck.c (push_init_level, pop_init_level, set_designator)
3785         (set_init_index, set_init_label, set_nonincremental_init)
3786         (set_nonincremental_init_from_string, find_init_member)
3787         (output_init_element, output_pending_init_elements)
3788         (process_init_element): New argument braced_init_obstack.  Pass it
3789         down.
3790         (push_range_stack, add_pending_init): New argument
3791         braced_init_obstack.  Use obstack allocation.
3792
3793         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
3794         braced_init_obstack.  Pass it down.
3795         (c_parser_braced_init): New variables ret, braced_init_obstack.
3796         Initialize obstack, pass it down and finally free it.
3797
3798 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3799
3800         PR middle-end/29274
3801         * tree-pass.h (pass_optimize_widening_mul): Declare.
3802         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
3803         gate_optimize_widening_mul): New static functions.
3804         (pass_optimize_widening_mul): New.
3805         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
3806         <case MULT_EXPR>: Remove support for widening multiplies.
3807         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
3808         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
3809         simplify_gen_unary rather than directly building extensions.
3810         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
3811         WIDEN_MULT_EXPR.
3812         * expmed.c (expand_widening_mult): New function.
3813         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
3814
3815 2010-04-21  Jan Hubicka  <jh@suse.cz>
3816
3817         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
3818         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
3819         * lto-wpa-fixup.c: Remove.
3820         * Makefile.in (lto-wpa-fixup.o): Remove.
3821         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
3822         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
3823         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
3824
3825 2010-04-21  Jan Hubicka  <jh@suse.cz>
3826
3827         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
3828         add write_optimization_summary, read_optimization_summary.
3829         (ipa_write_summaries_of_cgraph_node_set): Remove.
3830         (ipa_write_optimization_summaries): Declare.
3831         (ipa_read_optimization_summaries): Declare.
3832         * ipa-cp.c (pass_ipa_cp): Update.
3833         * ipa-reference.c (pass_ipa_reference): Update.
3834         * ipa-pure-const.c (pass_ipa_pure_const): Update.
3835         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
3836         Update.
3837         * ipa-inline.c (pass_ipa_inline): Update.
3838         * ipa.c (pass_ipa_whole_program): Update.
3839         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
3840         * passes.c (ipa_write_summaries_1): Do not test wpa.
3841         (ipa_write_optimization_summaries_1): New.
3842         (ipa_write_optimization_summaries): New.
3843         (ipa_read_summaries): Do not test ltrans.
3844         (ipa_read_optimization_summaries_1): New.
3845         (ipa_read_optimization_summaries): New.
3846
3847 2010-04-21  Jan Hubicka  <jh@suse.cz>
3848
3849         * lto-cgraph.c (lto_output_node): Do not output comdat groups
3850         for boundary nodes.
3851         (output_cgraph): Do not arrange comdat groups for boundary nodes.
3852
3853 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3854
3855         PR debug/40040
3856         * dwarf2out.c (add_name_and_src_coords_attributes): Add
3857         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
3858
3859 2010-04-21  Jan Hubicka  <jh@suse.cz>
3860
3861         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
3862
3863 2010-04-21  Jan Hubicka  <jh@suse.cz>
3864
3865         * varpool.c (decide_is_variable_needed): Variable is always needed
3866         during ltrans.
3867
3868 2010-04-21  Jan Hubicka  <jh@suse.cz>
3869
3870         * opts.c (decode_options): Enable pure-const pass for whopr.
3871
3872 2010-04-21  Jan Hubicka  <jh@suse.cz>
3873
3874         * cgraph.c (dump_cgraph_node): Dump also assembler name.
3875         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
3876         at WPA dumping.
3877         (cgraph_decide_inlining): Do not expect callee to be removed in all
3878         cases.
3879
3880 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
3881
3882         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
3883
3884 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
3885
3886         * config/i386/i386.md (x86_shrd): Add athlon_decode and
3887         amdfam10_decode attributes.
3888
3889 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3890
3891         PR middle-end/43570
3892         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
3893         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
3894         (lower_copyprivate_clauses): Use private var in outer
3895         context instead of original var.  Make sure the types
3896         are correct for VLAs.
3897
3898 2010-04-21  Richard Guenther  <rguenther@suse.de>
3899
3900         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
3901         to non-pointer objects.
3902
3903 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3904
3905         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
3906         last chain entry if it starts with the still current label.
3907         (add_location_or_const_value_attribute): Check that
3908         loc_list->first->next is NULL instead of comparing ->first with ->last.
3909         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
3910         to add_var_loc_to_decl.
3911
3912         * dwarf2out.c (output_call_frame_info): For dw_cie_version
3913         >= 4 add also address size and segment size fields into CIE header.
3914
3915         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
3916         long as address size is the same as sizeof (void *) and
3917         segment size is 0.
3918         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
3919         address size or segment size is unexpected, return DW_EH_PE_omit.
3920         (classify_object_over_fdes): If get_cie_encoding returned
3921         DW_EH_PE_omit, return -1.
3922         (init_object): If classify_object_over_fdes returned -1,
3923         pretend there were no FDEs at all.
3924
3925 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
3926
3927         * config/i386/i386.md (bswap<mode>2): Macroize expander from
3928         bswap{si,di}2 using SWI48 mode iterator.
3929         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
3930         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
3931         set modrm attribute of bswap insn to 0 and remove length attribute.
3932         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
3933         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
3934         set mode attribute to <MODE> and remove length attribute.
3935
3936 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
3937
3938         PR rtl-optimization/43520
3939         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
3940         zero available registers.
3941
3942 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3943
3944         * builtins.c (fold_builtin_cproj): Fold more cases.
3945
3946 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3947
3948         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
3949         (fold_builtin_1): Fold builtin cproj.
3950         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
3951         Use ATTR_CONST_NOTHROW_LIST.
3952
3953 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
3954
3955         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
3956         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
3957         ffsi2_no_cmove for !TARGET_CMOVE.
3958         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
3959         (ffssi2): Remove expander.
3960         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
3961         mode iterator.
3962         (ctz<mode>2): Ditto from ctz{si,di}2.
3963         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
3964         mode iterator.
3965         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
3966         mode iterator.
3967
3968 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3969
3970         * dwarf2out.c (AT_linkage_name): Define.
3971         (clone_as_declaration): Handle DW_AT_linkage_name.
3972         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
3973         of DW_AT_MIPS_linkage_name.
3974         (move_linkage_attr): Likewise.
3975         (dwarf2out_finish): Likewise.
3976
3977 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
3978
3979         PR middle-end/41952
3980         * fold-const.c (fold_comparison): New folding rule.
3981
3982 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
3983
3984         * double-int.h (double_int_setbit): Declare.
3985         * double-int.c (double_int_setbit): New function.
3986         * rtl.h (immed_double_int_const): Declare.
3987         * emit-rtl.c (immed_double_int_const): New function.
3988         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
3989         and immed_double_int_const functions.
3990         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
3991         expand_copysign_bit):  (Ditto.).
3992         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
3993         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
3994         * dojump.c (prefer_and_bit_test): (Ditto.).
3995         * expr.c (convert_modes, reduce_to_bit_field_precision,
3996         const_vector_from_tree): (Ditto.).
3997         * expmed.c (mask_rtx, lshift_value): (Ditto.).
3998
3999 2010-04-20  Jan Hubicka  <jh@suse.cz>
4000
4001         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4002         (dump_cgraph_node): Dump new flags.
4003         * cgraph.h (struct cgraph_node): Add flags
4004         reachable_from_other_partition and in_other_partition.
4005         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4006         other partition can not be removed.
4007         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4008         the other partition must be output; silence sanity checking on
4009         leaking functions bodies from other paritition.
4010         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4011         (lto_output_node): Output new flags; do not sanity check that inline
4012         clones are output; drop lto_forced_extern_inline_p code; do not mock
4013         visibility flags at partition boundaries.
4014         (add_node_to): New function.
4015         (output_cgraph): Use it to sort functions so masters appear before
4016         clones.
4017         (input_overwrite_node): Input new flags.
4018         * passes.c (ipa_write_summaries): Do not call
4019         lto_new_extern_inline_states.
4020         * lto-section-out.c (forced_extern_inline,
4021         lto_new_extern_inline_states lto_delete_extern_inline_states,
4022         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4023         * lto-streamer.h (lto_new_extern_inline_states,
4024         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4025         lto_forced_extern_inline_p): Kill.
4026
4027 2010-04-20  Richard Guenther  <rguenther@suse.de>
4028
4029         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4030         from vars that can have pointers.
4031         (process_constraint): Dump useless constraints.
4032
4033 2010-04-20  Richard Guenther  <rguenther@suse.de>
4034
4035         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4036         (dump_sa_points_to_info): Remove asserts.
4037         (init_base_vars): nothing_id isn't an escape point nor does it
4038         have pointers.
4039
4040 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4041
4042         * tree.h (TYPE_REF_IS_RVALUE): Define.
4043         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4044         should_move_die_to_comdat, prune_unused_types_walk): Handle
4045         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4046         (modified_type_die, gen_reference_type_die): Emit
4047         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4048         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4049
4050 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4051
4052         PR target/43635
4053         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4054         calls for -fpic -m31 if they have been sibcall optimized.
4055
4056 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4057
4058         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4059         ar.lc fixed and call-used.
4060
4061         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4062
4063 2010-04-19  Jan Hubicka  <jh@suse.cz>
4064
4065         * opts.c (decode_options): Disable whpr incompatible passes.
4066         * lto/lto.c (lto_1_to_1_map): Skip clones.
4067         (read_cgraph_and_symbols): Do not mark everything as needed.
4068         (do_whole_program_analysis): Do map only after optimizing;
4069         set proper cgraph_state; use passmanager.
4070
4071 2010-04-19  DJ Delorie  <dj@redhat.com>
4072
4073         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4074         POINTER_PLUS_EXPR and fix them.
4075
4076 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4077
4078         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4079         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4080         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4081         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4082         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4083         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4084         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4085         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4086         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4087         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4088         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4089
4090 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4091
4092         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4093         (check_cond_move_block): Likewise.
4094         (cond_move_process_if_block): Likewise.
4095         (noce_find_if_block): Improve formatting.
4096         (find_if_header): Pass 0 to memset and tweak conditions.
4097         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4098
4099 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4100
4101         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4102         for -gdwarf-4.
4103
4104         PR middle-end/43337
4105         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4106         with non-local decl doesn't need chain.
4107
4108 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4109
4110         * ira-color.c (allocno_reload_assign): Avoid accumulating
4111         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4112
4113 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4114
4115         * gimple.h (create_tmp_reg): Declare.
4116         * gimplify.c (create_tmp_reg): New function.
4117         (gimplify_return_expr): Use create_tmp_reg.
4118         (gimplify_omp_atomic): Likewise.
4119         (gimple_regimplify_operands): Likewise.
4120         * tree-dfa.c (make_rename_temp): Likewise.
4121         * tree-predcom.c (predcom_tmp_var): Likewise.
4122         (reassociate_to_the_same_stmt): Likewise.
4123         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4124         (get_replaced_param_substitute): Likewise.
4125         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4126         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4127         * tree-ssa-pre.c (get_representative_for): Likewise.
4128         (create_expression_by_pieces): Likewise.
4129         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4130         (create_tailcall_accumulator): Likewise.
4131
4132 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4133
4134         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4135         new_stmt.
4136         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4137
4138 2010-04-19  Richard Guenther  <rguenther@suse.de>
4139
4140         PR tree-optimization/43796
4141         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4142         from SCEV in the lattice.
4143         (vrp_visit_phi_node): Dump change.
4144
4145 2010-04-19  Richard Guenther  <rguenther@suse.de>
4146
4147         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4148         * configure: Re-generated.
4149
4150 2010-04-19  Richard Guenther  <rguenther@suse.de>
4151
4152         PR tree-optimization/43783
4153         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
4154         constant ARRAY_REF operands two and three if possible.
4155
4156 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
4157
4158         PR target/43766
4159         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
4160
4161 2010-04-19  Jie Zhang  <jie@codesourcery.com>
4162
4163         PR target/43662
4164         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
4165
4166 2010-04-19  Ira Rosen  <irar@il.ibm.com>
4167
4168         PR tree-optimization/37027
4169         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
4170         and macro to access it.
4171         (vectorizable_reduction): Add argument.
4172         (vect_get_slp_defs): Likewise.
4173         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
4174         statements for possible use in SLP.
4175         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
4176         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
4177         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
4178         add new argument.
4179         (vectorizable_reduction): Likewise.
4180         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
4181         vect_get_slp_defs.
4182         (vectorizable_type_demotion, vectorizable_type_promotion,
4183         vectorizable_store): Likewise.
4184         (vect_analyze_stmt): Update call to vectorizable_reduction.
4185         (vect_transform_stmt): Likewise.
4186         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
4187         (vect_build_slp_tree): Fix indentation. Check that there are no loads
4188         from different interleaving chains in same node.
4189         (vect_slp_rearrange_stmts): New function.
4190         (vect_supported_load_permutation_p): Allow load permutations for
4191         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
4192         inside SLP nodes if necessary.
4193         (vect_analyze_slp_instance): Handle reductions.
4194         (vect_analyze_slp): Try to build SLP instances originating from groups
4195         of reductions.
4196         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
4197         (vect_get_constant_vectors): Create initial vectors for reductions
4198         according to reduction code. Add new argument.
4199         (vect_get_slp_defs): Add new argument, pass it to
4200         vect_get_constant_vectors.
4201         (vect_schedule_slp_instance): Remove SLP tree root statements.
4202
4203 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4204
4205         * tree.h (ENUM_IS_SCOPED): Define.
4206         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
4207         for ENUM_IS_SCOPED enums.
4208
4209 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4210
4211         * fold-const.c (fold_comparison): Use ssizetype.
4212         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
4213         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
4214         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
4215         * tree-object-size.c (compute_object_sizes): Use size_type_node.
4216
4217         * tree.h (initialize_sizetypes): Remove parameter.
4218         (build_common_tree_nodes): Remove second parameter.
4219         * stor-layout.c (initialize_sizetypes): Remove parameter.
4220         Always create an unsigned type.
4221         (set_sizetype): Assert that the passed type is unsigned and simplify.
4222         * tree.c (build_common_tree_nodes): Remove second parameter.
4223         Adjust call to initialize_sizetypes.
4224         * c-decl.c (c_init_decl_processing): Remove second argument in call to
4225         build_common_tree_nodes.
4226
4227 2010-04-18  Matthias Klose  <doko@ubuntu.com>
4228
4229         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
4230
4231 2010-04-18  Ira Rosen  <irar@il.ibm.com>
4232
4233         PR tree-optimization/43771
4234         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
4235         load permutation doesn't have gaps.
4236
4237 2010-04-18  Jan Hubicka  <jh@suse.cz>
4238
4239         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
4240         (sse_prologue_save_insn expander): Use new pattern.
4241         (sse_prologue_save_insn1): New pattern and splitter.
4242         (sse_prologue_save_insn): Update to deal also with 64bit aligned
4243         blocks.
4244         * i386.c (setup_incoming_varargs_64): Do not compute jump
4245         destination here.
4246         (ix86_gimplify_va_arg): Update alignment needed.
4247         (ix86_local_alignment): Do not align all local arrays to 128bit.
4248
4249 2010-04-17  Jan Hubicka  <jh@suse.cz>
4250
4251         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
4252
4253 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4254
4255         * arm.md (negdi2): Remove redundant code to force values into a
4256         register.
4257
4258 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4259
4260         * arm/bpabi.S: Add EABI alignment attributes to objects.
4261         * arm/bpabi-v6m.S: Likewise.
4262         * arm/crti.asm: Likewise.
4263         * arm/crtn.asm: Likewise.
4264         * arm/lib1funcs.asm: Likewise.
4265         * arm/libunwind.S: Likewise.
4266
4267 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4268
4269         * arm-protos.h (tune_params): New structure.
4270         * arm.c (current_tune): New variable.
4271         (arm_constant_limit): Delete.
4272         (struct processors): Add pointer to the tune parameters.
4273         (arm_slowmul_tune): New tuning option.
4274         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
4275         (all_cores): Adjust to pick up the tuning model.
4276         (arm_constant_limit): New function.
4277         (arm_override_options): Select the appropriate tuning model.  Delete
4278         initialization of arm_const_limit.
4279         (arm_split_constant): Use the new constant-limit model.
4280         (arm_rtx_costs): Pick up the current tuning model.
4281         * arm.md (is_strongarm, is_xscale): Delete.
4282         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
4283         for Xscale variant architectures.
4284         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
4285
4286 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4287
4288         * config/arm/arm.c (arm_gen_constant): Remove unused variable
4289         can_shift.
4290         (arm_rtx_costs_1): Remove unused variable extra_cost.
4291         (arm_unwind_emit_set): Use variable offset.
4292         (thumb1_output_casesi): Remove unused variable flags.
4293
4294 2010-04-16  Jeff Law  <law@redhat.com>
4295
4296         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
4297         needing assignment rather than doing a two-phase assignment.  Remove
4298         unused variable 'm'.
4299
4300 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4301
4302         PR bootstrap/43767
4303         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
4304
4305 2010-04-16  Doug Kwan  <dougkwan@google.com>
4306
4307         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
4308         (next_operand_entry_id): New static variable.
4309         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
4310         (add_to_ops_vec): Assigned unique ID to operand entry.
4311         (struct oecount_s): New field ID.
4312         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
4313         (undistribute_ops_list): Assign unique IDs to oecounts.
4314         (init_reassoc): reset next_operand_entry_id.
4315
4316 2010-04-16  Doug Kwan  <dougkwan@google.com>
4317
4318         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
4319         missing left parenthesis.
4320
4321 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
4322
4323         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
4324         *btdi_rex64 using SWI48 mode iterator.
4325         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
4326         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
4327         *jcc_btdi_mask_rex64.
4328
4329 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
4330
4331         * double-int.h (tree_to_double_int): Convert to macro.
4332         * double-int.c (tree_to_double_int): Remove.
4333
4334 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4335
4336         PR debug/43762
4337         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
4338         with want_address 2 and in case a single element list might be
4339         possible, call it again with want_address 0.
4340
4341 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4342
4343         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
4344         case 'W' print operands for HI mode.
4345         * config/h8300/h8300.h (Y0, Y2) : New constraints.
4346         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
4347         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
4348         * config/h8300/predicate.md (bit_register_indirect_operand): New.
4349
4350         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
4351
4352         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
4353         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
4354         #xx:3 and #xx:4 mode.
4355
4356         * config/h8300/h8300.md (inverted load with HImode dest): Add
4357         support for H8300SX.
4358
4359         * config/h8300/predicate.md (bit_operand): Allow immediate values that
4360         satisfy 'U' constraint.
4361
4362 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4363
4364         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
4365         * configure: Regenerate.
4366         * config.in: Regenerate.
4367         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
4368         works.
4369
4370 2010-04-16  Richard Guenther  <rguenther@suse.de>
4371
4372         * tree.h (struct tree_decl_minimal): Move pt_uid ...
4373         (struct tree_decl_common): ... here.
4374         (DECL_PT_UID): Adjust.
4375         (SET_DECL_PT_UID): Likewise.
4376         (DECL_PT_UID_SET_P): Likewise.
4377
4378 2010-04-16  Richard Guenther  <rguenther@suse.de>
4379
4380         PR tree-optimization/43572
4381         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
4382         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
4383         * tree-flow.h (is_call_clobbered): Remove.
4384         * tree-flow-inline.h (is_call_clobbered): Likewise.
4385         * tree-dfa.c (dump_variable): Do not dump call clobber state.
4386         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
4387         (execute_return_slot_opt): Adjust.
4388         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
4389         check for call clobbered vars here.
4390         (find_tail_calls): Move tailcall verification to the
4391         proper place.
4392
4393 2010-04-16  Diego Novillo  <dnovillo@google.com>
4394
4395         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
4396
4397 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4398
4399         PR target/40603
4400         * config/arm/arm.md (cbranchqi4): New pattern.
4401         * config/arm/predicates.md (const0_operand,
4402         cbranchqi4_comparison_operator): New predicates.
4403
4404 2010-04-16  Richard Guenther  <rguenther@suse.de>
4405
4406         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
4407         (dump_gimple_stmt): Likewise.
4408
4409 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
4410
4411         * recog.h (struct recog_data): New field is_operator.
4412         (struct insn_operand_data): New field is_operator.
4413         * recog.c (extract_insn): Set recog_data.is_operator.
4414         * genoutput.c (output_operand_data): Emit code to set the
4415         is_operator field.
4416         * reload.c (find_reloads): Use it rather than testing for an
4417         empty constraint string.
4418
4419         PR target/41514
4420         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
4421         If the previous insn is a cbranchsi4_insn with the same arguments,
4422         omit the compare instruction.
4423
4424         * config/arm/arm.md (addsi3_cbranch): If destination is a high
4425         register, inputs must be low registers and we need a low register
4426         scratch.  Handle alternative 2 like alternative 3.
4427
4428 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4429
4430         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
4431         don't call get_addr on both.  If one expression is a VALUE and
4432         the other a REG, check VALUE's locs if the REG isn't among them.
4433
4434 2010-04-16  Christian Bruel  <christian.bruel@st.com>
4435
4436         * config/sh/sh.h (sh_frame_pointer_required): New function.
4437         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
4438         (flag_omit_frame_pointer) Set.
4439         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
4440         (rounded_frame_size): Adjust size with outgoing_args_size.
4441         (sh_set_return_address): Must return from stack pointer.
4442         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
4443         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
4444         (ACCUMULATE_OUTGOING_ARGS): Define.
4445         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
4446         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
4447
4448 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4449
4450         PR target/43471
4451         * config/sh/sh.c (sh_legitimize_reload_address): Use
4452         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
4453         Remove a unneeded check for offset_base.
4454
4455 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
4456
4457         * configure: Regenerated.
4458
4459 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4460
4461         * config/s390/s390.c (s390_call_save_register_used): Switch back
4462         to HARD_REGNO_NREGS.
4463
4464 2010-04-15  Richard Guenther  <rguenther@suse.de>
4465
4466         * alias.c (alias_set_subset_of): Handle alias-set zero
4467         child properly.
4468
4469 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
4470             Julian Brown  <julian@codesourcery.com>
4471
4472         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
4473         alternatives according to use of high and low regs.
4474         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
4475         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
4476         optimizing for size on Thumb-2.
4477
4478 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
4479
4480         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
4481
4482 2010-04-15  Richard Guenther  <rguenther@suse.de>
4483
4484         * tree-ssa-structalias.c (struct variable_info): Add
4485         is_fn_info flag.
4486         (new_var_info): Initialize it.
4487         (dump_constraints): Support printing last added constraints.
4488         (debug_constraints): Adjust.
4489         (dump_constraint_graph): Likewise.
4490         (make_heapvar_for): Check for NULL cfun.
4491         (get_function_part_constraint): New function.
4492         (get_fi_for_callee): Likewise.
4493         (find_func_aliases): Properly implement IPA PTA constraints.
4494         (process_ipa_clobber): New function.
4495         (find_func_clobbers): Likewise.
4496         (insert_into_field_list_sorted): Remove.
4497         (create_function_info_for): Properly allocate vars for IPA mode.
4498         Do not use insert_into_field_list_sorted.
4499         (create_variable_info_for): Properly generate constraints for
4500         global vars in IPA mode.
4501         (dump_solution_for_var): Always dump the solution.
4502         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
4503         (find_what_var_points_to): Adjust.
4504         (pt_solution_set): Change.
4505         (pt_solution_ior_into): New function.
4506         (pt_solution_empty_p): Export.
4507         (pt_solution_includes_global): Adjust.
4508         (pt_solution_includes_1): Likewise.
4509         (pt_solutions_intersect_1): Likewise.
4510         (dump_sa_points_to_info): Check some invariants.
4511         (solve_constraints): Move constraint dumping ...
4512         (compute_points_to_sets): ... here.
4513         (ipa_pta_execute): ... and here.
4514         (compute_may_aliases): Do not re-compute points-to info
4515         locally if IPA info is available.
4516         (ipa_escaped_pt): New global var.
4517         (ipa_pta_execute): Properly implement IPA PTA.
4518         * tree-into-ssa.c (dump_decl_set): Support dumping
4519         decls not in referenced-vars.
4520         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
4521         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
4522         (dump_points_to_solution): Likewise.
4523         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
4524         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
4525         (remap_gimple_stmt): Reset call clobber/use information if necessary.
4526         (copy_decl_to_var): Copy DECL_PT_UID.
4527         (copy_result_decl_to_var): Likewise.
4528         * tree.c (make_node_stat): Initialize DECL_PT_UID.
4529         (copy_node_stat): Copy it.
4530         * tree.h (DECL_PT_UID): New macro.
4531         (SET_DECL_PT_UID): Likewise.
4532         (DECL_PT_UID_SET_P): Likewise.
4533         (struct tree_decl_minimal): Add pt_uid member.
4534         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
4535         (pt_solution_empty_p): Declare.
4536         (pt_solution_set): Adjust.
4537         (ipa_escaped_pt): Declare.
4538         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
4539         * gimple-pretty-print.c (pp_points_to_solution): New function.
4540         (dump_gimple_call): Dump call clobber/use information.
4541         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
4542         * tree-pass.h (TDF_ALIAS): New dump option.
4543         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
4544         * doc/invoke.texi (-fipa-pta): Update documentation.
4545
4546 2010-04-15  Richard Guenther  <rguenther@suse.de>
4547
4548         * Makefile.in (OBJS-common): Add gimple-fold.o.
4549         (gimple-fold.o): New rule.
4550         * tree.h (maybe_fold_offset_to_reference,
4551         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
4552         prototypes ...
4553         * gimple.h: ... here.
4554         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
4555         may_propagate_address_into_dereference): Move prototypes ...
4556         * gimple.h: ... here.
4557         * tree-ssa-ccp.c (get_symbol_constant_value,
4558         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
4559         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
4560         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
4561         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
4562         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
4563         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
4564         gimplify_and_update_call_from_tree): Move ...
4565         * gimple-fold.c: ... here.  New file.
4566         (ccp_fold_builtin): Rename to ...
4567         (gimple_fold_builtin): ... this.
4568         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
4569
4570 2010-04-15  Richard Guenther  <rguenther@suse.de>
4571
4572         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
4573         fit_double_type, force_fit_type_double, add_double_with_sign,
4574         neg_double, mul_double_with_sign, lshift_double, rshift_double,
4575         lrotate_double, rrotate_double, div_and_round_double): Move ...
4576         * double-int.c: ... here.
4577         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
4578         add_double, neg_double, mul_double_with_sign, mul_double,
4579         lshift_double, rshift_double, lrotate_double, rrotate_double,
4580         div_and_round_double): Move prototypes ...
4581         * double-int.h: ... here.
4582
4583 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
4584
4585         PR target/43742
4586         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
4587         matching constraints to ensure inputs match the output.
4588
4589 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
4590
4591         PR target/43742
4592         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
4593         in an input-only operand.
4594
4595 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
4596
4597         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
4598         (double_int_not, double_int_lshift, double_int_rshift): Declare.
4599         (double_int_negative_p): Convert to static inline function.
4600         * double-int.c (double_int_lshift, double_int_lshift): New functions.
4601         (double_int_negative_p): Remove.
4602         * tree.h (lshift_double, rshift_double):
4603         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
4604         * fold-const.c (fold_convert_const_int_from_real,
4605         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
4606         (lshift_double): Change type of arith argument to bool.
4607         (rshift_double): Change type of arith argument to bool. Correct
4608         comment.
4609         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4610
4611 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
4612
4613         PR target/21803
4614         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
4615         at the start and end of the then/else blocks, and omit them from the
4616         conversion.
4617         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
4618         argument; all callers changed.  Pass zero to old_insns_match_p instead.
4619         (flow_find_head_matching_sequence): New function.
4620         (old_insns_match_p): Check REG_EH_REGION notes for calls.
4621         * basic-block.h (flow_find_cross_jump,
4622         flow_find_head_matching_sequence): Declare functions.
4623
4624 2010-04-14  Jason Merrill  <jason@redhat.com>
4625
4626         PR c++/36625
4627         * c-common.c (attribute_takes_identifier_p): New fn.
4628         * c-common.h: Declare it.
4629
4630 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4631
4632         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
4633         splitter condition.
4634         (*udivmod<mode>4): Ditto.
4635
4636 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4637
4638         * config/i386/i386.md (maxmin_int): Rename code attribute from
4639         maxminiprefix and update all users.
4640         (maxmin_float): Ditto from maxminfprefix.
4641         (logic): Ditto from logicprefix.
4642         (absneg_mnemonic): Ditto from absnegprefix.
4643         * config/i386/mmx.md: Update all users of maxminiprefix,
4644         maxminfprefix and logicprefix for rename.
4645         * config/i386/sse.md: Ditto.
4646         * config/i386/sync.md (sync_<code><mode>): Update for
4647         logicprefix rename.
4648
4649 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4650
4651         PR 42966
4652         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
4653         warnings converted to errors.
4654
4655 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4656
4657         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
4658         used insn_type variable.
4659         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
4660         to avoid set-but-not-used warning.
4661
4662 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4663
4664         * df-core.c (df_ref_debug): Change format string placeholder
4665         from 0x%x to %#x.
4666         * dwarf2asm.c (dw2_asm_output_data_raw,
4667         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
4668         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
4669         * dwarf2out.c (output_cfi, output_cfi_directive,
4670         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
4671         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
4672         Ditto.
4673         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
4674         * print-rtl.c (print_rtx): Ditto.
4675
4676 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4677
4678         PR middle-end/42694
4679         * builtins.c (expand_builtin_pow_root): New function to expand pow
4680         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
4681         series of sqrt and cbrt calls under -ffast-math.
4682         (expand_builtin_pow): Call it.
4683
4684 2010-04-14  Michael Matz  <matz@suse.de>
4685
4686         PR tree-optimization/42963
4687         * tree-cfg.c (touched_switch_bbs): New static variable.
4688         (group_case_labels_stmt): New function broken out from ...
4689         (group_case_labels): ... here, use the above.
4690         (start_recording_case_labels): Allocate touched_switch_bbs.
4691         (end_recording_case_labels): Deallocate it, call
4692         group_case_labels_stmt.
4693         (gimple_redirect_edge_and_branch): Remember index of affected BB.
4694
4695 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4696
4697         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
4698         from insn template.
4699
4700 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
4701
4702         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
4703
4704 2010-04-13  Jan Hubicka  <jh@suse.cz>
4705
4706         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
4707         of optimized out static functions.
4708         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
4709         cost computation.  Also sanity check for overflows.
4710         (update_caller_keys): Update cgraph_edge_badness call; properly
4711         update fibheap and sanity check that it is up to date.
4712         (add_new_edges_to_heap): Update cgraph_edge_badness.
4713         (cgraph_decide_inlining_of_small_function): Likewise;
4714         add sanity checking that badness in heap is up to date;
4715         improve dumping of reason; Update badness of calls to the
4716         offline copy of function currently inlined; dump badness
4717         of functions not inlined because of unit growth limits.
4718
4719 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
4720
4721         PR middle-end/32628
4722         * c-common.c (pointer_int_sum): Disregard overflow that occured only
4723         because of sign-extension change when converting to sizetype here...
4724         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
4725
4726         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
4727         the folding to constants.  Remove redundant final conversion.
4728         (fold_binary) <associate>: Do not associate if the re-association of
4729         constants alone overflows.
4730         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
4731         to the end of the list.
4732         (multiple_of_p) <COND_EXPR>: New case.
4733
4734 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4735
4736         * opt-functions.awk (opt_sanitized_name): New.
4737         (opt_enum): New.
4738         * optc-gen.awk: Use it
4739         * opth-gen.awk: Use it.
4740
4741 2010-04-13  Martin Jambor  <mjambor@suse.cz>
4742
4743         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
4744         (sra_modify_assign): Delete stmts loading dead data even if racc has no
4745         children.  Call replace_uses_with_default_def_ssa_name to handle
4746         SSA_NAES on lhs.
4747
4748 2010-04-13  Michael Matz  <matz@suse.de>
4749
4750         PR middle-end/43730
4751         * builtins.c (expand_builtin_interclass_mathfn): Also create
4752         a register if the predicate doesn't match.
4753
4754 2010-04-13  Diego Novillo  <dnovillo@google.com>
4755
4756         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
4757         * c-pch.c: Include timevar.h.
4758         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
4759         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
4760         * ggc-common.c: Include timevar.h.
4761         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
4762         * timevar.def (TV_PCH_SAVE): Define.
4763         (TV_PCH_CPP_SAVE): Define.
4764         (TV_PCH_PTR_REALLOC): Define.
4765         (TV_PCH_PTR_SORT): Define.
4766         (TV_PCH_RESTORE): Define.
4767         (TV_PCH_CPP_RESTORE): Define.
4768
4769 2010-04-13  Michael Matz  <matz@suse.de>
4770
4771         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
4772         into MINUS_EXPRs.
4773         (can_reassociate_p): New function.
4774         (break_up_subtract_bb, reassociate_bb): Use it.
4775
4776 2010-04-13  Richard Guenther  <rguenther@suse.de>
4777
4778         PR bootstrap/43737
4779         * builtins.c (c_readstr): Fix assert.
4780
4781 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
4782
4783         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
4784         when generating cltd insn.
4785
4786         (*ashl<mode>3_1): Remove special handling for register operand 2.
4787         (*ashlsi3_1_zext): Ditto.
4788         (*ashlhi3_1): Ditto.
4789         (*ashlhi3_1_lea): Ditto.
4790         (*ashlqi3_1): Ditto.
4791         (*ashlqi3_1_lea): Ditto.
4792         (*<shiftrt_insn><mode>3_1): Ditto.
4793         (*<shiftrt_insn>si3_1_zext): Ditto.
4794         (*<shiftrt_insn>qi3_1_slp): Ditto.
4795         (*<rotate_insn><mode>3_1): Ditto.
4796         (*<rotate_insn>si3_1_zext): Ditto.
4797         (*<rotate_insn>qi3_1_slp): Ditto.
4798
4799 2010-04-13  Richard Guenther  <rguenther@suse.de>
4800
4801         * tree-ssa-structalias.c (callused_id): Remove.
4802         (call_stmt_vars): New.
4803         (get_call_vi): Likewise.
4804         (lookup_call_use_vi): Likewise.
4805         (lookup_call_clobber_vi): Likewise.
4806         (get_call_use_vi): Likewise.
4807         (get_call_clobber_vi): Likewise.
4808         (make_transitive_closure_constraints): Likewise.
4809         (handle_const_call): Adjust to do per-call call-used handling.
4810         (handle_pure_call): Likewise.
4811         (find_what_var_points_to): Remove general callused handling.
4812         (init_base_vars): Likewise.
4813         (init_alias_vars): Initialize call_stmt_vars.
4814         (compute_points_to_sets): Process call-used and call-clobbered
4815         vars for call statements.
4816         (delete_points_to_sets): Free call_stmt_vars.
4817
4818 2010-04-13  Richard Guenther  <rguenther@suse.de>
4819
4820         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4821         Only add RW dependence for dependence distance zero.
4822         Adjust maximal vectorization factor according to dependences.
4823         Move alignment handling ...
4824         (vect_find_same_alignment_drs): ... here.  New function.
4825         (vect_analyze_data_ref_dependences): Adjust.
4826         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
4827         (vect_analyze_data_refs): Adjust minimal vectorization factor
4828         according to data references.
4829         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
4830         dependences before determining the vectorization factor.
4831         Analyze alignment after determining the vectorization factor.
4832         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
4833         dependences before alignment.
4834         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
4835         Adjust prototype.
4836         (vect_analyze_data_refs): Likewise.
4837         (MAX_VECTORIZATION_FACTOR): New define.
4838
4839 2010-04-13  Duncan Sands  <baldrick@free.fr>
4840
4841         * except.h (lang_eh_type_covers): Remove.
4842         * except.c (lang_eh_type_covers): Likewise.
4843
4844 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4845             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4846
4847         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
4848         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
4849         UNITS_PER_LONG where it is ABI relevant.
4850         (s390_return_addr_rtx): Likewise.
4851         (s390_back_chain_rtx): Likewise.
4852         (s390_frame_area): Likewise.
4853         (s390_frame_info): Likewise.
4854         (s390_initial_elimination_offset): Likewise.
4855         (save_gprs): Likewise.
4856         (s390_emit_prologue): Likewise.
4857         (s390_emit_epilogue): Likewise.
4858         (s390_function_arg_advance): Likewise.
4859         (s390_function_arg): Likewise.
4860         (s390_va_start): Likewise.
4861         (s390_gimplify_va_arg): Likewise.
4862         (s390_function_profiler): Likewise.
4863         (s390_optimize_prologue): Likewise.
4864         (s390_rtx_costs): Likewise.
4865         (s390_secondary_reload): Likewise.
4866         (s390_promote_function_mode): Likewise.
4867         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
4868         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
4869         registers available.
4870         (s390_unwind_word_mode): New function.
4871         (s390_function_value): Split 64 bit values into register pair if
4872         used as return value.
4873         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
4874         function call parameters.  Handle parallels.
4875         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
4876         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
4877         (DWARF_CIE_DATA_ALIGNMENT): New macro.
4878         (s390_expand_setmem): Remove unused variable src_addr.
4879         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
4880         deal with 64 bit registers.
4881         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
4882         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
4883         (UNITS_PER_LONG): New macro.
4884         * libjava/include/s390-signal.h: Define extended ucontext
4885         structure containing the upper halfs of the 64 bit registers.
4886
4887 2010-04-13  Simon Baldwin  <simonb@google.com>
4888
4889         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
4890
4891 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
4892
4893         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
4894         rvalue on the RHS if the LHS is of a non-renamable type.
4895         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
4896
4897 2010-04-13  Matthias Klose  <doko@ubuntu.com>
4898
4899         * gcc.c (cc1_options): Handle -iplugindir before processing
4900         the cc1 spec. Only add -iplugindir once.
4901         (cpp_unique_options): Add -iplugindir option if -fplugin* options
4902         found.
4903         * common.opt (iplugindir): Remove `Separate' property, initialize.
4904         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
4905         option.
4906         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
4907         (distclean): Remove plugin dir.
4908         * doc/invoke.texi: Document -iplugindir.
4909
4910 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
4911
4912         * doc/plugins.texi (Loading Plugins): Document short
4913         -fplugin=foo option.
4914         (Plugin API): Mention default_plugin_dir_name function.
4915
4916         * gcc.c (find_file_spec_function): Add new declaration.
4917         (static_spec_func): Use it for "find-file".
4918         (find_file_spec_function): Add new function.
4919         (cc1_options): Add -iplugindir option if -fplugin* options found.
4920
4921         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
4922
4923         * plugin.c (add_new_plugin): Updated comment, and handle short
4924         plugin name.
4925         (default_plugin_dir_name): Added new function.
4926
4927         * common.opt (iplugindir): New option to set the plugin directory.
4928
4929 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
4930
4931         * config/i386/i386.md (any_rotate): New code iterator.
4932         (rotate_insn): New code attribute.
4933         (rotate): Ditto.
4934         (SWIM124): New mode iterator.
4935         (<rotate_insn>ti3): New expander.
4936         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
4937         any_rotate code iterator.
4938         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
4939         using any_rotate code iterator and SWIM124 mode iterator.
4940         (ix86_rotlti3): New insn_and_split pattern.
4941         (ix86_rotrti3): Ditto.
4942         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
4943         ix86_rotl{di,ti}3 patterns.
4944         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
4945         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
4946         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
4947         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
4948         code iterator and SWI mode iterator.
4949         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
4950         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
4951         code iterator.
4952         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
4953         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
4954         (bswap rotatert splitter): Add splitter.
4955         (bswap splitter): Macroize splitter using any_rotate code iterator.
4956         Add insn predicate to split only for TARGET_USE_XCHGB or when
4957         optimizing function for size.
4958
4959 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
4960
4961         * config/pa/pa.c (emit_move_sequence): Remove use of
4962         deleted variable flag_argument_noalias.
4963
4964 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4965
4966         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
4967         configurations.
4968         Add to unsupported targets list.
4969         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
4970         sparc*-sun-solaris2.[567]* from target lists.
4971         * configure: Regenerate.
4972         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
4973         removal.
4974         Remove Solaris 7 patch references.
4975         (Specific, sparc-sun-solaris2.7): Removed.
4976         (sparc-sun-solaris2*): Update Solaris 7 example.
4977         (sparc64-*-solaris2*): Likewise.
4978
4979 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4980
4981         * config.build (alpha*-dec-osf4*): Remove.
4982         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
4983         of obsolete configurations.
4984         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
4985         support.
4986         * config/alpha/t-osf4: Renamed to ...
4987         * config/alpha/t-osf5: ... this.
4988         * config/alpha/osf.h: Renamed to ...
4989         * config/alpha/osf5.h: ... this.
4990         Merged old osf5.h contents.
4991         Update comments.
4992         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
4993         (EXTRA_SPECS): Removed.
4994         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
4995         reflect removal of Tru64 UNIX V4.0/V5.0 support.
4996         Document that.
4997
4998 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4999
5000         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5001
5002 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5003
5004         PR/43702
5005         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5006         __thiscall convention.
5007
5008 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5009
5010         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5011         orig_base.
5012         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5013
5014 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5015
5016         * function.c (assign_parms_initialize_all): Add unused attribute
5017         to fntype.
5018
5019 2010-04-12  Richard Guenther  <rguenther@suse.de>
5020
5021         * gsstruct.def (GSS_CALL): New.
5022         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5023         * gimple.h: Include tree-ssa-alias.h.
5024         (struct gimple_statement_call): New.
5025         (union gimple_statement_struct_d): Add gimple_call member.
5026         (gimple_call_reset_alias_info): Declare.
5027         (gimple_call_use_set): New function.
5028         (gimple_call_clobber_set): Likewise.
5029         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5030         * gimple.c (gimple_call_reset_alias_info): New function.
5031         (gimple_build_call_1): Call it.
5032         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5033         * tree-inline.c (remap_gimple_stmt): Likewise.
5034         (expand_call_inline): Remove callused handling.
5035         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5036         * tree-dfa.c (dump_variable): Likewise.
5037         * tree-parloops.c (parallelize_loops): Likewise.
5038         * tree-ssa.c (init_tree_ssa): Likewise.
5039         (delete_tree_ssa): Likewise.
5040         * tree-flow-inline.h (is_call_used): Remove.
5041         * tree-flow.h (struct gimple_df): Remove callused member.
5042         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5043         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5044         (ref_maybe_used_by_call_p_1): Simplify.
5045         (call_may_clobber_ref_p_1): Likewise.
5046         * tree-ssa-structalias.c (compute_points_to_sets): Set
5047         the call stmt used and clobbered sets.
5048         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5049         (find_tail_calls): Verify the tail call.
5050
5051 2010-04-12  Richard Guenther  <rguenther@suse.de>
5052
5053         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5054         single-iteration always-inline inlining.
5055         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5056         (cgraph_decide_inlining): Do not handle always-inline specially.
5057         (try_inline): Remove always-inline cycle detection special case.
5058         Do not recurse on always-inlines.
5059         (cgraph_early_inlining): Do not iterate if not optimizing.
5060         (cgraph_gate_early_inlining): remove.
5061         (pass_early_inline): Run unconditionally.
5062         (gate_cgraph_decide_inlining): New function.
5063         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5064         not inlining or optimizing.
5065         (cgraph_decide_inlining_of_small_functions): Also consider
5066         always-inline functions.
5067         (cgraph_default_inline_p): Return true for nodes which should
5068         disregard inline limits.
5069         (estimate_function_body_sizes): Assume zero size and time for
5070         nodes which are marked as disregarding inline limits.
5071         (cgraph_decide_recursive_inlining): Do not perform recursive
5072         inlining on always-inline nodes.
5073
5074 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5075
5076         PR bootstrap/43699
5077         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5078         for exprs satisfying handled_component_p.
5079
5080 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5081
5082         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5083         non-constant aggregate elements.
5084
5085         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5086         is a real initialization.
5087
5088 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5089
5090         PR c/36774
5091         * c-decl.c (start_function): Move forward check for nested function.
5092
5093 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5094
5095         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5096         * config/sh/sh.c: Include reload.h.
5097         (sh_legitimize_reload_address): New.
5098         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5099         sh_legitimize_reload_address.
5100
5101 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5102
5103         * config/sh/sh.md (*movqi_pop): New insn pattern.
5104         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5105
5106 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5107
5108         * config/i386/i386.md (any_shiftrt): New code iterator.
5109         (shiftrt_insn): New code attribute.
5110         (shiftrt): Ditto.
5111         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5112         using any_shiftrt code iterator.
5113         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5114         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5115         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5116         pattern from corresponding peephole2 patterns.
5117         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5118         using any_shiftrt code iterator.
5119         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5120         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5121         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5122         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5123         *{ashr,lshr}<mode>3_cmp_zext.
5124         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5125
5126 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5127
5128         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5129         scratch register.
5130         (*lshr<mode>3_cconly): Ditto.
5131
5132 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5133
5134         * config/i386/i386.md (lshr<mode>3): Macroize expander from
5135         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5136         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5137         pattern from *lshr{di,ti}3_1 and corresponding splitters using
5138         DWI mode iterator.
5139         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5140         from corresponding peephole2 patterns.
5141         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5142         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5143         and *lshrdi3_1_rex64 using SWI mode iterator.
5144         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
5145         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5146         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5147         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5148         and *lshrdi3_cmp_rex64 using SWI mode iterator.
5149         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5150         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5151         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
5152         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
5153         SWI mode iterator.
5154
5155 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
5156
5157         * config/i386/i386.md (ashr<mode>3): Macroize expander from
5158         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5159         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5160         pattern from *ashr{di,ti}3_1 and corresponding splitters using
5161         DWI mode iterator.
5162         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5163         from corresponding peephole2 patterns.
5164         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
5165         (ashrsi3_cvt): Rename from ashrsi3_31.
5166         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
5167         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
5168         and x86_64_shift_adj_3 using SWI48 mode iterator.
5169         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
5170         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
5171         and *ashrdi3_1_rex64 using SWI mode iterator.
5172         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
5173         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
5174         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
5175         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
5176         and *ashrdi3_cmp_rex64 using SWI mode iterator.
5177         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
5178         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
5179         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
5180         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
5181         SWI mode iterator.
5182         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
5183         * config/i386/i386.c (ix86_split_ashr): Update for renamed
5184         x86_shift<mode>_adj_3 expanders.
5185
5186 2010-04-10  Wei Guozhi  <carrot@google.com>
5187
5188         PR target/42601
5189         * config/arm/arm.c (arm_pic_static_addr): New function.
5190         (legitimize_pic_address): Call arm_pic_static_addr when it detects
5191         a static symbol.
5192         (arm_output_addr_const_extra): Output expression for new pattern.
5193         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
5194
5195 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
5196
5197         * ira-costs.c (record_reg_classes): Ignore alternatives that are
5198         not enabled.
5199
5200         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
5201         * web.c: Include "insn-config.h" and "recog.h".
5202         (union_match_dups): New function.
5203         (web_main): Call it.
5204         (union_defs): Don't try to recognize match_dups.
5205
5206         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
5207         if doing so would replace the entire pattern.
5208
5209 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
5210
5211         PR target/43707
5212         PR target/43709
5213         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
5214         and splitter pattern.  Change splitter operand 1 predicate to
5215         nonmemory_operand.
5216
5217 2010-04-09  Martin Jambor  <mjambor@suse.cz>
5218
5219         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
5220         lattices are addresses of CONST_DECLs with the same initial value.
5221         (ipcp_print_all_lattices): Print values of CONST_DECLs.
5222         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
5223
5224 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
5225             Bernd Schmidt  <bernds@codesourcery.com>
5226
5227         * loop-invariant.c (replace_uses): New static function.
5228         (move_invariant_reg): Use it to ensure we can replace the uses.
5229
5230 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
5231
5232         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
5233         function template.
5234         (picochip_override_options): Enable section anchors only above -O1.
5235         (picochip_reorg): Fixed a couple of build warnings.
5236
5237 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5238
5239         * configure.ac (plugin -rdynamic test): Log result.
5240         * configure: Regenerate.
5241         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
5242         (RDYNAMIC_SPEC): Define.
5243         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
5244
5245 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5246
5247         * configure.ac: Determine Sun ld version numbers.
5248         (comdat_group): Restrict GNU ld version checks to gld.
5249         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
5250         (enable_comdat): Support --enable-comdat.
5251         * configure: Regenerate.
5252         * doc/install.texi (Configuration): Document --enable-comdat.
5253
5254 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5255
5256         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
5257         * config/sol2-gld.h: ... here.
5258         * config.gcc (sparc*-*-solaris2*): Reflect this.
5259         (i[34567]86-*-solaris2*): Use it.
5260
5261 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
5262
5263         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
5264         setup_clocks_p.
5265         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
5266
5267 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5268
5269         PR 42965
5270         * diagnostic.c (diagnostic_initialize): Initialize
5271         some_warnings_are_errors.
5272         (diagnostic_finish): New.
5273         (diagnostic_action_after_output): Call it before exiting.
5274         (diagnostic_report_diagnostic): Do not print message here. Set
5275         some_warnings_are_errors.
5276         * diagnostic.h (diagnostic_context): Delete
5277         issue_warnings_are_errors_message. Add some_warnings_are_errors.
5278         (diagnostic_finish): Declare.
5279         * toplev.c (toplev_main): Call it before exit.
5280
5281 2010-04-09  Jason Merrill  <jason@redhat.com>
5282
5283         PR c++/42623
5284         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
5285         for incomplete type.
5286
5287         PR c++/41788
5288         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
5289         based on a warning flag.
5290
5291 2010-04-09  Richard Guenther  <rguenther@suse.de>
5292
5293         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
5294
5295 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
5296
5297         PR bootstrap/43684
5298         * varasm.c (default_assemble_visibility): Wrap vars that are
5299         set, but unused, by targets without GAS.
5300         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
5301         Remove set, but unused, vars.
5302         (rs6000_legitimize_tls_address): Likewise.
5303         (altivec_expand_dst_builtin): Likewise.
5304         * config/darwin.c (machopic_classify_symbol): Likewise.
5305         (machopic_indirection_name): Likewise.
5306
5307 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
5308
5309         * config/i386/i386.md (DWI): New mode iterator.
5310         (S): New mode attribute.
5311         (shift_operand): Ditto.
5312         (shift_immediate_operand): Ditto.
5313         (ashl_input_operand): Ditto.
5314         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
5315         using SDWIM mode iterator.
5316         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5317         pattern from *ashl{di,ti}3_1 and corresponding splitters using
5318         DWI mode iterator.
5319         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
5320         from corresponding peephole2 patterns.
5321         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
5322         and x86_64_shift_adj_1 using SWI48 mode iterator.
5323         (x86_shift<mode>_adj_2): Ditto.
5324         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
5325         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
5326         using SWI48 mode iterator.
5327         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
5328         *ashldi3_cmp_rex64 using SWI mode iterator.
5329         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
5330         *ashldi3_cconly_rex64 using SWI mode iterator.
5331         * config/i386/i386.c (ix86_split_ashl): Update for renamed
5332         x86_shift<mode>_adj_{1,2}.
5333         (ix86_split_ashr): Ditto.
5334         (ix86_split_lshr): Ditto.
5335
5336 2010-04-09  Richard Guenther  <rguenther@suse.de>
5337
5338         * target.h (builtin_conversion): Pass in input and output types.
5339         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
5340         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
5341         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
5342         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
5343
5344         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
5345         Handle AVX modes.
5346         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
5347
5348 2010-04-09  Richard Guenther  <rguenther@suse.de>
5349
5350         PR target/43152
5351         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
5352
5353 2010-04-09  Richard Guenther  <rguenther@suse.de>
5354
5355         * tree-vectorizer.h (struct _stmt_vec_info): Document
5356         that vectype is the type of the LHS.
5357         (supportable_widening_operation, supportable_narrowing_operation):
5358         Get both input and output vector types as arguments.
5359         (vect_is_simple_use_1): Declare.
5360         (get_same_sized_vectype): Likewise.
5361         * tree-vect-loop.c (vect_determine_vectorization_factor):
5362         Set STMT_VINFO_VECTYPE to the vector type of the def.
5363         (vectorizable_reduction): Adjust.
5364         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
5365         Adjust.  Specify the output vector type.
5366         (vect_pattern_recog_1): Adjust.
5367         * tree-vect-stmts.c (get_same_sized_vectype): New function.
5368         (vectorizable_call): Adjust.
5369         (vectorizable_conversion): Likewise.
5370         (vectorizable_operation): Likewise.
5371         (vectorizable_type_demotion): Likewise.
5372         (vectorizable_type_promotion): Likewise.
5373         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
5374         the def.
5375         (vect_is_simple_use_1): New function.
5376         (supportable_widening_operation): Get both input and output
5377         vector types.
5378         (supportable_narrowing_operation): Likewise.
5379         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
5380
5381 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
5382
5383         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
5384         __thiscall and _thiscall as predefined macros.
5385         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
5386         thiscall attribute handling.
5387         (ix86_comp_type_attributes): Likewise.
5388         (ix86_function_regparm): Likewise.
5389         (ix86_return_pops_args): Likewise.
5390         (init_cumulative_args): Likewise.
5391         (find_drap_reg): Likewise.
5392         (ix86_static_chain): Likewise.
5393         (x86_this_parameter): Likewise.
5394         (x86_output_mi_thunk): Likewise.
5395         (ix86_attribute_table): Add description for thiscall attribute.
5396         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
5397         * doc/extend.texi: Add documentation for thiscall.
5398
5399 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5400
5401         PR c++/28584
5402         * c.opt (Wint-to-pointer-cast): Available in C++.
5403         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
5404
5405 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5406
5407         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
5408         * calls.c (expand_call): Pass the function type to aggregate_value_p.
5409         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
5410         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
5411         function type instead.  Reorder and simplify checks.
5412
5413         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
5414
5415 2010-04-08  Jing Yu  <jingyu@google.com>
5416             Zdenek Dvorak  <ook@ucw.cz>
5417
5418         PR tree-optimization/42720
5419         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
5420         loop unswitch conditions here from ...
5421         (tree_unswitch_single_loop): ... here.
5422
5423 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5424
5425         * tree-if-conv.c: Fix comments and simplify logic.
5426
5427 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
5428
5429         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
5430         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
5431         (main_tree_if_conversion): Update call to tree_if_conversion.
5432
5433 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5434
5435         PR 42485
5436         * doc/invoke.texi (-b,-V): Delete.
5437         * doc/tm.texi: Do not mention -b.
5438         * gcc.c (display_help): Delete -b and -V.
5439         (process_command): Delete -b and -V.
5440         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
5441
5442 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
5443             Wolfgang Gellerich  <gellerich@de.ibm.com>
5444
5445         Implement target hook for loop unrolling
5446         * target.h (loop_unroll_adjust): Add a new target hook function.
5447         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
5448         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
5449         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
5450         (s390_loop_unroll_adjust): Implement the new target hook for s390.
5451         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
5452         target hook.
5453         (decide_unroll_stupid): Likewise.
5454
5455 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5456
5457         PR target/43643
5458         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
5459
5460 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5461
5462         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
5463         (Specific, *-*-solaris2*): Likewise.
5464         Don't prefer Sun as over GNU as.
5465
5466 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
5467
5468         * config/s390/s390.c (override_options): Adjust the z10 defaults
5469         for max-unroll-times, max-completely-peeled-insns
5470         and max-completely-peel-times.
5471
5472 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5473
5474         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
5475         instructions for z10.
5476         (s390_expand_setmem): Likewise.
5477         (s390_expand_cmpmem): Likewise.
5478
5479 2010-04-08  Richard Guenther  <rguenther@suse.de>
5480
5481         PR tree-optimization/43679
5482         * tree-ssa-pre.c (eliminate): Only propagate copies.
5483
5484 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
5485
5486         PR bootstrap/43681
5487         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
5488         set but not used variable warning.
5489
5490 2010-04-08  Wei Guozhi  <carrot@google.com>
5491
5492         PR target/41653
5493         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
5494         (arm_size_rtx_costs): Call the new function when optimized for size.
5495
5496 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
5497
5498         PR debug/43670
5499         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
5500         op0 is not a MEM, just return NULL instead of assertion
5501         failure.
5502         (discover_nonconstant_array_refs): Don't walk debug stmts.
5503
5504 2010-04-08  Doug Kwan  <dougkwan@google.com>
5505
5506         * configure.ac: Recognize gold and do not use its version number
5507         to test ld features.
5508         * configure: Regenerate.
5509
5510 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
5511
5512         PR middle-end/40815
5513         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
5514         (negate_value): Move code to push elements to broken_up_substracts ...
5515         (eliminate_plus_minus_pair): ... here.  Push operands that have no
5516         negative pair to plus_negates.
5517         (repropagate_negates, init_reassoc, fini_reassoc): Update.
5518
5519 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5520
5521         * doc/install.texi (Configuration): Move description of
5522         --enable-lto, --with-libelf*, --enable-gold from Java section to
5523         general section.
5524
5525         * doc/generic.texi (Working with declarations)
5526         (Function Properties, C and C++ Trees): Fix typos.
5527         * doc/sourcebuild.texi (Top Level): Likewise.
5528
5529 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
5530
5531         PR c/18624
5532         * tree.h (DECL_READ_P): Define.
5533         (struct tree_decl_common): Add decl_read_flag.
5534         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
5535         a set but not used warning.
5536         (merge_decls): Merge DECL_READ_P flag.
5537         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
5538         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
5539         * c-common.c (handle_used_attribute, handle_unused_attribute):
5540         Likewise.
5541         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
5542         New prototypes.
5543         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
5544         New functions.
5545         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
5546         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
5547         c_parser_binary_expression, c_parser_cast_expression,
5548         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
5549         Call default_function_array_read_conversion instead of
5550         default_function_array_conversion where needed.
5551         (c_parser_unary_expression, c_parser_conditional_expression,
5552         c_parser_postfix_expression_after_primary, c_parser_initelt):
5553         Likewise.  Call mark_exp_read where needed.
5554         (c_parser_statement_after_labels, c_parser_asm_operands,
5555         c_parser_typeof_specifier, c_parser_sizeof_expression,
5556         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
5557         where needed.
5558         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
5559         New.
5560         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
5561         (warn_unused_but_set_parameter): Default to warn_unused
5562         && extra_warnings.
5563         * doc/invoke.texi: Document -Wunused-but-set-variable and
5564         -Wunused-but-set-parameter.
5565
5566         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
5567         used count variable.
5568         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
5569         when operandN variables aren't used in the body of the expander
5570         or splitter.
5571         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
5572         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
5573         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
5574         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
5575         FOR_EACH_IMM_USE_ON_STMT): Likewise.
5576         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
5577         * tree.c (PROCESS_ARG): Likewise.
5578
5579 2010-04-07  Simon Baldwin  <simonb@google.com>
5580
5581         * diagnostic.h (diagnostic_override_option_index): New macro to
5582         set a diagnostic's option_index.
5583         * c-tree.h (c_cpp_error): Add warning reason argument.
5584         * opts.c (_warning_as_error_callback): New.
5585         (register_warning_as_error_callback): Store callback for
5586         warnings enabled via enable_warning_as_error.
5587         (enable_warning_as_error): Call callback, minor code tidy.
5588         * opts.h (register_warning_as_error_callback): Declare.
5589         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
5590         response to -Werror=.
5591         (c_common_init_options): Register warning_as_error_callback in opts.c.
5592         * common.opt: Add -Wno-cpp option.
5593         * c-common.c (struct reason_option_codes_t): Map cpp warning
5594         reason codes to gcc option indexes.
5595         * (c_option_controlling_cpp_error): New function, lookup the gcc
5596         option index for a cpp warning reason code.
5597         * (c_cpp_error): Add warning reason argument, call
5598         c_option_controlling_cpp_error for diagnostic_override_option_index.
5599         * doc/invoke.texi: Document -Wno-cpp.
5600
5601 2010-04-07  Richard Guenther  <rguenther@suse.de>
5602
5603         * ipa-reference.c (mark_load): Use get_base_address.
5604         (mark_store): Likewise.
5605
5606         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
5607         inserting GIMPLE_NOPs into the IL.
5608         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5609         Explicitly strip handled components and indirect references.
5610
5611         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
5612         folding address expressions.
5613         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
5614         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
5615         operand_equal_p to compare decls.
5616         (ptr_deref_may_alias_decl_p): Likewise.
5617         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
5618         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
5619         Handle reversed comparison ops.
5620         * tree-sra.c (asm_visit_addr): Use get_base_address.
5621         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
5622         * ipa-reference.c (mark_address): Use get_base_address.
5623
5624 2010-04-07  Richard Guenther  <rguenther@suse.de>
5625
5626         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
5627         Propagate constants everywhere.
5628
5629 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
5630
5631         PR debug/43516
5632         * tree.c (MAX_INT_CACHED_PREC): Define.
5633         (nonstandard_integer_type_cache): New array.
5634         (build_nonstandard_integer_type): Cache results for precision
5635         <= MAX_INT_CACHED_PREC.
5636
5637 2010-04-07  Richard Guenther  <rguenther@suse.de>
5638
5639         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
5640         -fargument-noalias-global, -fargument-noalias-anything): Remove.
5641         * common.opt: Likewise.
5642         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
5643         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
5644         (nonoverlapping_memrefs_p): Likewise.
5645         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5646         * opts.c (common_handle_option): Handle OPT_fargument_alias,
5647         OPT_fargument_noalias, OPT_fargument_noalias_anything and
5648         OPT_fargument_noalias_global for backward compatibility.
5649
5650 2010-04-07  Richard Guenther  <rguenther@suse.de>
5651
5652         PR tree-optimization/43270
5653         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
5654         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
5655         * tree-ssa-pre.c (phi_translate_1): Adjust.
5656         (fully_constant_expression): Split out vn_reference handling to ...
5657         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
5658         Fold reads from constant strings.
5659         (vn_reference_lookup): Handle fully constant references.
5660         (vn_reference_lookup_pieces): Likewise.
5661         * Makefile.in (expmed.o-warn): Add -Wno-error.
5662
5663 2010-04-07  Martin Jambor  <mjambor@suse.cz>
5664
5665         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
5666
5667 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
5668
5669         PR driver/41594
5670         * gcc.c: Add -static-libstdc++ to list of recognized options.
5671
5672 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5673
5674         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
5675
5676 2010-04-07  Richard Guenther  <rguenther@suse.de>
5677
5678         PR middle-end/42617
5679         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
5680         bases build simple mem attributes to retain points-to information.
5681
5682 2010-04-07  Richard Guenther  <rguenther@suse.de>
5683
5684         PR middle-end/42617
5685         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
5686         preserve points-to related information.
5687
5688 2010-04-07  Richard Guenther  <rguenther@suse.de>
5689
5690         PR middle-end/42617
5691         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
5692         discard plain indirect references.
5693         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
5694         * tree.c (tree_nop_conversion): Likewise.
5695
5696 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
5697
5698         PR debug/43628
5699         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
5700
5701 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
5702
5703         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
5704         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
5705
5706 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5707
5708         * tree-if-conv.c: Fix indentation and comments.
5709
5710 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5711
5712         * tree-if-conv.c: Sort static functions in topological order.
5713
5714 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
5715
5716         * tree-if-conv.c: Fix indentation and comments.
5717
5718 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5719
5720         PR middle-end/43519
5721         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
5722         lang_hooks.types.type_for_size instead of
5723         build_nonstandard_integer_type.
5724         When converting an unsigned type to signed, double its precision.
5725         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
5726         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
5727         (graphite_create_new_loop_guard): When ub + 1 wraps around,
5728         use lb <= ub.
5729
5730 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5731
5732         PR middle-end/43519
5733         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
5734         POINTER_PLUS_EXPR for pointer types.
5735
5736 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5737
5738         PR middle-end/43519
5739         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
5740         * graphite-clast-to-gimple.c: Include langhooks.h.
5741         (max_signed_precision_type): New.
5742         (max_precision_type): Takes two types as arguments.
5743         (precision_for_value): New.
5744         (precision_for_interval): New.
5745         (gcc_type_for_interval): New.
5746         (gcc_type_for_value): New.
5747         (gcc_type_for_clast_term): New.
5748         (gcc_type_for_clast_red): New.
5749         (gcc_type_for_clast_bin): New.
5750         (gcc_type_for_clast_expr): Split up into several functions.
5751         (gcc_type_for_clast_eq): Rewritten.
5752         (compute_bounds_for_level): New.
5753         (compute_type_for_level_1): New.
5754         (compute_type_for_level): New.
5755         (gcc_type_for_cloog_iv): Removed.
5756         (gcc_type_for_iv_of_clast_loop): Rewritten.
5757         (graphite_create_new_loop): Compute the lower and upper bound types
5758         with gcc_type_for_clast_expr.
5759         (graphite_create_new_loop_guard): Same.
5760         (find_cloog_iv_in_expr): Removed.
5761         (compute_cloog_iv_types_1): Removed.
5762         (compute_cloog_iv_types): Removed.
5763         (gloog): Do not call compute_cloog_iv_types.
5764         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
5765         GBB_CLOOG_IV_TYPES.
5766         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
5767         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
5768         (GBB_CLOOG_IV_TYPES): Removed.
5769
5770 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5771
5772         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
5773         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
5774         (detect_commutative_reduction): Same.
5775
5776 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5777
5778         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
5779         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
5780         argument.
5781         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
5782         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
5783         (rewrite_commutative_reductions_out_of_ssa): Same.
5784         * passes.c (execute_function_todo): Call verify_ssa for every pass
5785         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
5786         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
5787         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
5788         with an extra argument.
5789         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
5790         verify_ssa only when the extra argument is true.
5791         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
5792         with an extra argument.
5793         (tree_transform_and_unroll_loop): Same.
5794
5795 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
5796
5797         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
5798         for all the passes of the LNO having LOOP_CLOSED_SSA.
5799         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
5800         * tree-loop-distribution.c (pass_loop_distribution): Same.
5801         * tree-pass.h (TODO_verify_loops): Removed.
5802         * tree-ssa-loop.c (pass_tree_loop_init): Same.
5803         (pass_lim): Same.
5804         (pass_tree_unswitch): Same.
5805         (pass_predcom): Same.
5806         (pass_vectorize): Same.
5807         (pass_linear_transform): Same.
5808         (pass_graphite_transforms): Same.
5809         (pass_iv_canon): Same.
5810         (pass_complete_unroll): Same.
5811         (pass_complete_unrolli): Same.
5812         (pass_parallelize_loops): Same.
5813         (pass_loop_prefetch): Same.
5814         (pass_iv_optimize): Same.
5815
5816 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
5817
5818         PR middle-end/32824
5819         * passes.c (init_optimization_passes): Move pass_lim before
5820         pass_copy_prop and pass_dce_loop.
5821
5822 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
5823
5824         PR target/43667
5825         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
5826         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
5827         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
5828         MULTI_* defines for 4 argument vpermil2p* builtins.
5829
5830 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
5831
5832         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
5833         * config/i386/i386.c (x86_maybe_negate_const_int): New.
5834         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
5835         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
5836         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
5837         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
5838         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
5839         Use x86_maybe_negate_const_int to output insn mnemonic.
5840         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
5841         check from instruction predicate.  Update comments.
5842         * config/i386/sync.md (sync_add<mode>): Use
5843         x86_maybe_negate_const_int to output insn mnemonic.
5844
5845 2010-04-06  Jan Hubicka  <jh@suse.cz>
5846
5847         PR tree-optimization/42906
5848         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
5849         IGNORE_SELF argument.  Set visited_control_parents for fully
5850         processed BBs.
5851         (find_obviously_necessary_stmts): Update call of
5852         mark_control_dependent_edges_necessary.
5853         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
5854
5855 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
5856
5857         * config/i386/i386.md: Remove comment about 'e' and 'E'
5858         operand modifier.
5859
5860 2010-04-06  Richard Guenther  <rguenther@suse.de>
5861
5862         PR tree-optimization/43627
5863         * tree-vrp.c (extract_range_from_unary_expr): Widenings
5864         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
5865         not varying.
5866
5867 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
5868
5869         * BASE-VER: Change to 4.6.0.
5870
5871         PR target/43638
5872         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
5873         handling.
5874
5875 2010-04-06  Richard Guenther  <rguenther@suse.de>
5876
5877         PR middle-end/43661
5878         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
5879
5880 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5881
5882         * doc/invoke.texi (Optimize Options): Document that LTO
5883         won't remove object access purely due to incompatible
5884         declarations.
5885
5886 2010-04-04  Matthias Klose  <doko@ubuntu.com>
5887
5888         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
5889         Initialize variable.
5890
5891 2010-04-03  Richard Guenther  <rguenther@suse.de>
5892
5893         PR middle-end/42509
5894         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
5895         require a non-NULL MEM_OFFSET.
5896
5897 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
5898
5899         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
5900         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
5901         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
5902         config/alpha/predicates.md, config/arm/arm.md,
5903         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
5904         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
5905         config/darwin9.h, config/darwin.c, config/darwin.h,
5906         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
5907         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
5908         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
5909         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
5910         config/mips/mips.md, config/mn10300/mn10300.c,
5911         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
5912         config/rs6000/aix.h, config/rs6000/dfp.md,
5913         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
5914         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
5915         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
5916         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
5917         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
5918         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
5919         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
5920         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
5921         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
5922         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
5923         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
5924         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
5925         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
5926         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
5927         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
5928         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
5929         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
5930         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
5931         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
5932         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
5933         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
5934         opt-functions.awk, opth-gen.awk, params.def, passes.c,
5935         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
5936         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
5937         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
5938         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
5939         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
5940         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
5941         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
5942         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
5943         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
5944         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
5945         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
5946         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
5947         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
5948         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
5949
5950 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5951
5952         PR other/43620
5953         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
5954         * aclocal.m4: Regenerate.
5955
5956 2010-04-02  Richard Guenther  <rguenther@suse.de>
5957
5958         PR tree-optimization/43629
5959         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
5960         if we have seen a constant value.
5961
5962 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
5963
5964         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
5965
5966 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
5967
5968         PR target/43469
5969         * arm.c (legitimize_tls_address): Adjust call to
5970         gen_tls_load_dot_plus_four.
5971         (arm_note_pic_base): New function.
5972         (arm_cannot_copy_insn_p): Use it.
5973         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
5974         constraint.
5975
5976 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5977
5978         PR bootstrap/43531
5979
5980         Revert:
5981         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5982
5983         * Makefile.in ($(out_object_file)): Depend on
5984         gt-$(basename $(notdir $(out_file))).h.
5985
5986 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
5987
5988         * config.gcc (lm32-*-rtems*): Add t-lm32.
5989
5990 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
5991
5992         * config.gcc: Add lm32-*-rtems*.
5993         * config/lm32/rtems.h: New file.
5994
5995 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
5996
5997         PR target/42609
5998         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
5999
6000 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6001
6002         * dwarf2out.c (output_compilation_unit_header): For
6003         -gdwarf-4 use version 4 instead of version 3.
6004         (output_line_info): For version 4 and above emit additional
6005         maximum ops per insn header field.
6006         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6007
6008         * dwarf2out.c (is_c_family, is_java): Remove.
6009         (lower_bound_default): New function.
6010         (add_bound_info, gen_descr_array_type_die): Use it.
6011
6012 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6013
6014         PR debug/43325
6015         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6016         re-declaration when it happens in a function.
6017
6018 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6019
6020         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6021         (cgraph_remove_function_insertion_hook): Same.
6022         (cgraph_call_function_insertion_hooks): Same.
6023
6024 2010-04-01  Richard Guenther  <rguenther@suse.de>
6025
6026         PR middle-end/43614
6027         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6028         and TREE_THIS_VOLATILE.
6029         (copy_ref_info): Likewise.
6030         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6031         * tree.c (build6_stat): Ignore side-effects of all but arg5
6032         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6033         TARGET_MEM_REF.
6034
6035 2010-04-01  Richard Guenther  <rguenther@suse.de>
6036
6037         PR tree-optimization/43607
6038         * ipa-type-escape.c (check_call): Do not access non-existing
6039         arguments.
6040
6041 2010-04-01  Richard Guenther  <rguenther@suse.de>
6042
6043         PR middle-end/43602
6044         Revert
6045         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6046                     Jack Howarth <howarth@bromo.med.uc.edu>
6047
6048         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6049         variables TLS.
6050
6051 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6052
6053         * doc/install.texi (Prerequisites): Document libelf usability on
6054         IRIX 5/6 and Solaris 2.
6055         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6056         Update GNU as, GNU ld requirements.
6057         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6058         Document Sun Studio compiler download.
6059         Update and simplify as, ld recommendations.
6060         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6061
6062 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6063
6064         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6065         with_tune_32 to pentium4.
6066
6067 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6068
6069         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6070
6071 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6072
6073         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6074         obsoletion, removal.
6075         Update IDO URL.
6076         Document GNU as requirement.
6077         Update configure requirements.
6078         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6079         Recomment IRIX 6.5.18+.
6080         Document IDF/IDL requirement.
6081         Document GNU as requirement.
6082         Document GNU ld bootstrap failure.
6083         Remove freeware.sgi.com reference.
6084
6085 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6086
6087         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6088         UNIX V4.0, V5.0 obsoletion, removal.
6089         Remove --with-gc=simple reference.
6090         Update VM requirements during bootstrap.
6091         Remove -oldas bootstrap description.
6092         Update binutils reference.
6093         Remove comparison failure note.
6094
6095 2010-03-31  Richard Guenther  <rguenther@suse.de>
6096             Zdenek Dvorak  <ook@ucw.cz>
6097             Sebastian Pop  <sebastian.pop@amd.com>
6098
6099         PR middle-end/43464
6100         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6101         with multiple arguments.
6102         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6103
6104 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6105
6106         * graphite-dependences.c (print_pddr): Call print_pdr with an
6107         extra argument.
6108         * graphite-poly.c (debug_pdr): Add an extra argument for the
6109         verbosity level.
6110         (print_pdr): Same.
6111         (print_pbb_domain): Same.
6112         (print_pbb): Same.
6113         (print_scop_context): Same.
6114         (print_scop): Same.
6115         (print_cloog): Same.
6116         (debug_pbb_domain): Same.
6117         (debug_pbb): Same.
6118         (print_pdrs): Same.
6119         (debug_pdrs): Same.
6120         (debug_scop_context): Same.
6121         (debug_scop): Same.
6122         (debug_cloog): Same.
6123         (print_scop_params): Same.
6124         (debug_scop_params): Same.
6125         (print_iteration_domain): Same.
6126         (print_iteration_domains): Same.
6127         (debug_iteration_domain): Same.
6128         (debug_iteration_domains): Same.
6129         (print_scattering_function): Same.
6130         (print_scattering_functions): Same.
6131         (debug_scattering_function): Same.
6132         (debug_scattering_functions): Same.
6133         * graphite-poly.h (debug_pdr): Update declaration.
6134         (print_pdr): Same.
6135         (print_pbb_domain): Same.
6136         (print_pbb): Same.
6137         (print_scop_context): Same.
6138         (print_scop): Same.
6139         (print_cloog): Same.
6140         (debug_pbb_domain): Same.
6141         (debug_pbb): Same.
6142         (print_pdrs): Same.
6143         (debug_pdrs): Same.
6144         (debug_scop_context): Same.
6145         (debug_scop): Same.
6146         (debug_cloog): Same.
6147         (print_scop_params): Same.
6148         (debug_scop_params): Same.
6149         (print_iteration_domain): Same.
6150         (print_iteration_domains): Same.
6151         (debug_iteration_domain): Same.
6152         (debug_iteration_domains): Same.
6153         (print_scattering_function): Same.
6154         (print_scattering_functions): Same.
6155         (debug_scattering_function): Same.
6156         (debug_scattering_functions): Same.
6157
6158 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6159
6160         * graphite-poly.c (print_scattering_function_1): New.
6161         (print_scattering_function): Call it.
6162         (print_scop_params): Remove spaces at the end of lines.
6163         (print_cloog): New.
6164         (debug_cloog): New.
6165         * graphite-poly.h (print_cloog): Declared.
6166         (debug_cloog): Declared.
6167
6168 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6169
6170         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
6171         in loop->header.
6172         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
6173         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
6174         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
6175         to switch between adding the IV bump in loop->latch or in loop->header.
6176
6177 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6178
6179         * graphite-poly.c (print_scattering_function): Pretty print following
6180         the scoplib format.
6181         (print_pdr): Same.
6182         (print_pbb_domain): Same.
6183         (dump_gbb_cases): Same.
6184         (dump_gbb_conditions): Same.
6185         (print_pdrs): Same.
6186         (print_pbb): Same.
6187         (print_scop_params): Same.
6188         (print_scop_context): Same.
6189         (print_scop): Same.
6190         (print_pbb_body): New.
6191         (lst_indent_to): New.
6192         (print_lst): Start new lines with a #.
6193         * graphite-poly.h (pbb_bb): New.
6194         (pbb_index): Use pbb_bb.
6195         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
6196         disjuncts.
6197         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
6198
6199 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6200
6201         * dwarf2out.c (size_of_die): For -gdwarf-4 use
6202         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
6203         and 0 instead of 1 for dw_val_class_flag.
6204         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
6205         dw_val_class_range_list, dw_val_class_loc_list,
6206         dw_val_class_lineptr and dw_val_class_macptr, use
6207         DW_FORM_flag_present for dw_val_class_flag and
6208         DW_FORM_exprloc for dw_val_class_loc.
6209         (output_die): For -gdwarf-4 print dw_val_class_loc
6210         size as uleb128 instead of 1 or 2 bytes and don't print
6211         anything for dw_val_class_flag.
6212
6213         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
6214         instead of cselib_lookup following by tweaking locs->setting_insn.
6215
6216         PR bootstrap/43596
6217         * cselib.c (cselib_process_insn): Clear cselib_current_insn
6218         even before returning from label, setjmp call or volatile asm
6219         handling.
6220
6221 2010-03-31  Richard Guenther  <rguenther@suse.de>
6222
6223         PR middle-end/43600
6224         * cgraphunit.c (cgraph_output_in_order): Do not allocate
6225         temporary data on stack.
6226
6227 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6228
6229         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
6230         (PUSHSECTION_ASM_OP): Remove.
6231         (POPSECTION_ASM_OP): Remove.
6232         (PUSHSECTION_FORMAT): Remove.
6233         * config/sol2.h (PUSHSECTION_FORMAT): Define.
6234         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
6235         * config/sol2.c (solaris_output_init_fini): Use it.
6236
6237 2010-03-31  Jie Zhang  <jie@codesourcery.com>
6238
6239         PR 43574
6240         * opt-functions.awk (var_type_struct): Use signed char type
6241         for simple variables.
6242
6243 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6244
6245         * config/sol2.c: Include output.h.
6246         (solaris_assemble_visibility): New function.
6247         * config/t-sol2 (sol2.o): Add output.h dependency.
6248         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
6249         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
6250         Redefine.
6251
6252 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6253
6254         PR target/43580
6255         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
6256         V2SImode or XFmode on PRE_DEC.
6257
6258         PR debug/43557
6259         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
6260         BLKmode.
6261
6262 2010-03-31  Jie Zhang  <jie@codesourcery.com>
6263
6264         PR 43562
6265         * reload.h (caller_save_initialized_p): Declare.
6266         * toplev.c (backend_init_target): Don't call
6267         init_caller_save but set caller_save_initialized_p to false.
6268         * caller-save.c (caller_save_initialized_p): Define.
6269         (init_caller_save): Check caller_save_initialized_p.
6270         * ira.c (ira): Call init_caller_save if flag_caller_saves.
6271
6272 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6273
6274         PR target/39048
6275         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
6276         and soft-fp/t-softfp to tmake_file.
6277         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
6278         (LIBGCC2_TF_CEXT): Define.
6279         (TF_SIZE): Define.
6280
6281 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
6282
6283         PR debug/42977
6284         * cselib.c (n_useless_values): Document handling of debug locs.
6285         (n_useless_debug_values, n_debug_values): New variables.
6286         (new_elt_loc_list): Don't add to debug values, keep count.
6287         (promote_debug_loc): New.
6288         (cselib_reset_table): Zero new variables.
6289         (entry_and_rtx_equal_p): Promote debug locs.
6290         (discard_useless_locs): Increment n_useless_debug_values for
6291         debug values.
6292         (remove_useless_values): Adjust n_useless_values and n_debug_values
6293         with n_useless_debug_values.
6294         (add_mem_for_addr): Promote debug locs.
6295         (cselib_lookup_mem): Likewise.
6296         (cselib_lookup_addr): Renamed to...
6297         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
6298         (cselib_log_lookup): ... this.  Turn into...
6299         (cselib_lookup_addr): ... new wrapper.
6300         (cselib_lookup_from_insn): New.
6301         (cselib_invalidate_regno): Increment n_useless_debug_values for
6302         debug values.
6303         (cselib_invalidate_mem): Likewise.
6304         (cselib_process_insn): Take n_deleted and n_debug_values into
6305         account to guard remove_useless_value call.
6306         (cselib_finish): Zero n_useless_debug_values.
6307         * cselib.h (cselib_lookup_from_insn): Declare.
6308         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
6309         (sched_analyze_2): Likewise.
6310
6311 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
6312
6313         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
6314         functions.
6315         (adjust_mems): Replace narrowing SUBREG of expression containing
6316         just PLUS, MINUS, MULT and ASHIFT of registers and constants
6317         with operations in the narrower mode.
6318
6319         PR debug/43593
6320         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
6321         regs_invalidated_by_call instead all call_used_reg_set registers.
6322
6323 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6324
6325         PR middle-end/43430
6326         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
6327         pointer comparisons with types_compatible_p.
6328         * tree-vect-stmts.c (vectorizable_call): Same.
6329         (vectorizable_condition): Same.
6330
6331 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6332
6333         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
6334         stack check if the mask would be zero.
6335
6336 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6337             Jack Howarth <howarth@bromo.med.uc.edu>
6338
6339         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6340         variables TLS.
6341
6342 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
6343
6344         PR other/25232
6345         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
6346         and __unordtf2.
6347         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
6348         Include ___unordxf2 and ___unordtf2.
6349         * config/i386/libgcc-glibc.ver: Do not define inheritance from
6350         GCC_4.4.0 here.
6351
6352 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
6353
6354         * config/lm32/t-lm32: New file.
6355         * config.gcc: Use the above file when targetting lm32.
6356
6357 2010-03-28  Duncan Sands  <baldrick@free.fr>
6358
6359         * Makefile.in (PLUGIN_HEADERS): Add except.h.
6360
6361 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6362
6363         PR middle-end/43431
6364         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
6365         Improve vectorization cost model diagnostic.
6366
6367 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6368
6369         PR middle-end/43436
6370         * tree-vect-data-refs.c (vect_analyze_data_refs): When
6371         compute_data_dependences_for_loop returns false, early exit
6372         and output an extra diagnostic for the failed data reference
6373         analysis.
6374
6375 2010-03-29  Richard Guenther  <rguenther@suse.de>
6376
6377         PR tree-optimization/43560
6378         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
6379         (can_sm_ref_p): Treat stores to readonly locations as trapping.
6380
6381 2010-03-29  Jie Zhang  <jie@codesourcery.com>
6382
6383         PR 43564
6384         * toplev.c (process_options): Set optimization_default_node
6385         and optimization_current_node.
6386         * opts.c (decode_options): Don't set optimization_default_node
6387         and optimization_current_node.
6388
6389 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
6390
6391         * config/rtems.h: Abandon -qrtems_debug.
6392
6393 2010-03-28  Jan Hubicka  <jh@suse.cz>
6394
6395         PR tree-optimization/43505
6396         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
6397         map should not be copied.
6398
6399 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6400
6401         PR middle-end/41674
6402         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
6403         cdtors, set DECL_PRESERVE_P.
6404         * ipa.c (cgraph_externally_visible_p): Return true if declaration
6405         should be preseved.
6406
6407 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
6408
6409         PR tree-optimization/43528
6410         * stor-layout.c (place_field): Check that constant fits into
6411         unsigned HWI when skipping calculation of MS bitfield layout.
6412
6413 2010-03-27  Jan Hubicka  <jh@suse.cz>
6414
6415         PR middle-end/43391
6416         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
6417         notice_global_symbol work.
6418
6419 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
6420
6421         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
6422         instead of dwarf2out_decl.
6423         (struct var_loc_node): Remove section_label field.
6424         (dwarf2out_function_decl): New function.
6425         (dwarf2out_var_location): Don't set section_label field.
6426         (dwarf2out_begin_function): Don't empty decl_loc_table here.
6427
6428 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
6429
6430         PR tree-optimization/43544
6431         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6432         First argument for builtin vectorized function hook is now a
6433         tree to be able to distinguish between machine specific and
6434         standard builtins.
6435         * targhooks.c (default_builtin_vectorized_function): Ditto.
6436         * targhooks.h (default_builtin_vectorized_function): Ditto.
6437         * target.h (struct gcc_target): Ditto.
6438         * tree-vect-stmts.c (vectorizable_function): Ditto.
6439         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
6440         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
6441         Ditto.
6442
6443 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
6444
6445         PR c/43381
6446         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
6447         nested binding iff it is a FUNCTION_DECL.
6448         (store_parm_decls_newstyle): Pass nested=true to bind for
6449         FUNCTION_DECLs amongst parameters.
6450
6451 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6452
6453         * var-tracking.c (vt_expand_loc_callback): Don't run
6454         cselib_expand_value_rtx_cb in dummy mode if
6455         cselib_dummy_expand_value_rtx_cb returned false.
6456
6457         * var-tracking.c (emit_note_insn_var_location): For one part
6458         notes with offset 0, don't add EXPR_LIST around the location.
6459         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
6460         add_location_or_const_value_attribute): Adjust for that change.
6461
6462         PR debug/43540
6463         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
6464         into first operand and location into second.
6465         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
6466         dw_cfi_oprnd_loc for DW_CFA_expression.
6467         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
6468         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
6469         assume first argument is regnum and second argument is location.
6470
6471 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
6472
6473         PR target/42113
6474         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
6475         of scratch register to DImode.  Split to DImode comparison operator.
6476         Use SImode subreg of scratch register in the multiplication.
6477         (*cmp_sadd_sidi): Ditto.
6478         (*cmp_ssub_si): Ditto.
6479         (*cmp_ssub_sidi): Ditto.
6480
6481 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
6482
6483         PR target/43524
6484         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
6485         Remove invalid assert and wrong comment.
6486
6487 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
6488
6489         PR debug/43516
6490         * flags.h (final_insns_dump_p): New extern.
6491         * final.c (final_insns_dump_p): New variable.
6492         (rest_of_clean_state): Set it before -fdump-final-insns=
6493         dumping, clear afterwards.
6494         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
6495         MEM_ALIAS_SET on MEMs.
6496
6497 2010-03-26  David S. Miller  <davem@davemloft.net>
6498
6499         * configure.ac: Fix sparc GOTDATA_OP bug check.
6500         * configure: Rebuild.
6501
6502 2010-03-26  Alan Modra  <amodra@gmail.com>
6503
6504         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
6505
6506 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6507
6508         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
6509         TLS_SECTION_ASM_FLAG.
6510
6511 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
6512
6513         PR bootstrap/43511
6514         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
6515         Clear first_function_block_is_cold.
6516
6517         PR c/43385
6518         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
6519         argument if the argument is truth_value_p.
6520
6521 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6522
6523         * config/rs6000/constraints.md: Update copyright year for my changes.
6524
6525         PR target/43484
6526         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
6527         used in reg+reg addressing, swap registers.
6528
6529 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
6530
6531         PR debug/43293
6532         * target.h (struct gcc_target): Add code_end hook.
6533         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
6534         if not yet defined.
6535         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
6536         * toplev.c (compile_file): Call targetm.asm_out.code_end
6537         hook before unwind info/debug info output.
6538         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
6539         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
6540         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
6541         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
6542         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
6543         * config/i386/i386.c (ix86_file_end): Renamed to...
6544         (ix86_code_end): ... this.  Make static.  Don't call
6545         file_end_indicate_exec_stack.  Emit unwind info using
6546         final_start_function/final_end_function.
6547         (darwin_x86_file_end): Remove.
6548         (TARGET_ASM_CODE_END): Define.
6549         * config/i386/i386.h (TARGET_ASM_FILE_END,
6550         NEED_INDICATE_EXEC_STACK): Don't define.
6551         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
6552         (TARGET_ASM_FILE_END): Define to darwin_file_end.
6553         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
6554         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
6555
6556         PR target/43498
6557         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
6558         at the beginning and final_end_function at the end.
6559         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
6560
6561 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6562
6563         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
6564         and Sun as TLS syntax.
6565         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
6566         * configure: Regenerate.
6567         * config.in: Regenerate.
6568         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
6569         (default_elf_asm_named_section): Use it.
6570         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
6571         (i386_output_dwarf_dtprel): Likewise.
6572         (output_addr_const_extra): Likewise.
6573         (output_pic_addr_const): Lowercase @GOTTPOFF.
6574         (output_addr_const_extra): Likewise.
6575         (output_pic_addr_const): Lowercase @GOTNTPOFF.
6576         (output_addr_const_extra): Likewise.
6577         (output_pic_addr_const): Lowercase @INDNTPOFF.
6578         (output_addr_const_extra): Likewise.
6579         (output_pic_addr_const): Lowercase @NTPOFF.
6580         (output_addr_const_extra): Likewise.
6581         (output_pic_addr_const): Lowercase @TPOFF.
6582         (output_addr_const_extra): Likewise.
6583         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
6584         (*tls_global_dynamic_64): Likewise.
6585         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
6586         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
6587
6588         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
6589         (ASM_OUTPUT_TLS_COMMON): Use it.
6590         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
6591
6592         PR target/38118
6593         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
6594         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
6595         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
6596         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
6597         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
6598         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
6599
6600 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6601
6602         * config/i386/i386.c (override_options): Don't accept
6603         -mtls-dialect=sun any longer.
6604         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
6605         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
6606         (*tls_local_dynamic_base_32_sun): Likewise.
6607         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
6608
6609 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
6610
6611         PR debug/43508
6612         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
6613         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
6614
6615         PR debug/43479
6616         * ira.c (adjust_cleared_regs): New function.
6617         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
6618
6619         PR debug/19192
6620         PR debug/43479
6621         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
6622         from gimple_block.
6623         * expr.c (expand_expr_real): Restore previous
6624         curr_insn_source_location and curr_insn_block after
6625         expand_expr_real_1 call.
6626         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
6627         instead of expand_expr_real_1.
6628
6629 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
6630
6631         PR rtl-optimization/43413
6632         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
6633         hard regs too.
6634
6635 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
6636
6637         PR target/43348
6638         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
6639         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
6640
6641 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
6642
6643         * config/i386/i386.c (ix86_target_string): Add -mfma.
6644         Fix a typo in comment.
6645
6646 2010-03-22  Mike Stump  <mikestump@comcast.net>
6647
6648         PR target/23071
6649         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
6650         Don't overly align based upon packed packed fields.
6651
6652 2010-03-22  Jason Merrill  <jason@redhat.com>
6653
6654         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
6655         Use () rather than [], and move before the element type.
6656
6657 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6658
6659         * doc/configfiles.texi (Configuration Files): Removed
6660         fixinc/Makefile*, intl/Makefile.*.
6661         * doc/makefile.texi: Fixed markup. Abstract from version
6662         control system used.
6663         (Makefile): Removed obsolete gcc/java/parse.y example.
6664         * doc/sourcebuild.texi: Likewise.
6665         (Top Level): Added config, gnattools, libdecnumber, libgcc,
6666         libgomp, libssp.  Removed fastjar.
6667         (Miscellaneous Docs): Clarify location.
6668         Added COPYING3, COPYING3.LIB.
6669         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
6670
6671 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6672
6673         PR target/38085
6674         * config/i386/i386.c (x86_function_profiler)
6675         [!NO_PROFILE_COUNTERS]: Fix typo.
6676         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
6677         instead of callq.
6678
6679 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
6680             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6681
6682         * doc/sourcebuild.texi (Test Directives): Split into six
6683         subsections, with most of the current text in new subsections
6684         Directives, Selectors, and Final Actions.
6685         (Directives): Split list of test directives into multiple
6686         subsubsections.
6687         (Selectors): Describe use and syntax of selectors.
6688         (Effective-Target Keywords): Describe all existing keywords.
6689         (Add Options): Describe features for dg-add-options.
6690         (Require Support): Describe variants of dg-require-support.
6691         (Final Actions): Describe commands to use in dg-final.
6692
6693 2010-03-22  Michael Matz  <matz@suse.de>
6694
6695         PR middle-end/43475
6696         * recog.c (validate_replace_rtx_group): Replace also in
6697         REG_EQUAL and REG_EQUIV notes.
6698
6699 2010-03-22  Richard Guenther  <rguenther@suse.de>
6700
6701         PR tree-optimization/43390
6702         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
6703         sure vector extracts are type correct.
6704
6705 2010-03-22  Richard Guenther  <rguenther@suse.de>
6706
6707         PR middle-end/40106
6708         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
6709         x * sqrt (x) even when optimizing for size if the target
6710         has native support for sqrt.
6711
6712 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
6713
6714         * varasm.c (make_decl_rtl_for_debug): Also clear
6715         flag_mudflap for the duration of make_decl_rtl call.
6716
6717         PR debug/43443
6718         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
6719         locs from preserved VALUEs.
6720
6721 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6722
6723         PR middle-end/42718
6724         * pa.md (movmemsi): Set align to one if zero.
6725         (movmemdi): Likewise.
6726
6727 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
6728
6729         PR target/42321
6730         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
6731         with their corresponding prologue pushes.
6732
6733 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
6734
6735         PR target/43156
6736         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
6737         at the begining or end.
6738         (spu_expand_epilogue): Likewise.
6739
6740 2010-03-20  Richard Guenther  <rguenther@suse.de>
6741
6742         PR rtl-optimization/43438
6743         * combine.c (make_extraction): Properly zero-/sign-extend an
6744         extraction of the low part of a CONST_INT.  Also handle
6745         CONST_DOUBLE.
6746
6747 2010-03-19  Mike Stump  <mikestump@comcast.net>
6748
6749         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
6750         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
6751         (override_options): Use SUBTARGET32_DEFAULT_CPU.
6752
6753 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
6754
6755         PR c/43211
6756         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
6757         an error.
6758
6759 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
6760
6761         PR rtl-optimization/42258
6762         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
6763         use that may match DEF.
6764
6765         PR target/40697
6766         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
6767         the cost of loading the constant rather than assuming
6768         COSTS_N_INSNS (1).
6769         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
6770         outer code is AND, do the same tests as the andsi3 expander and
6771         return COSTS_N_INSNS (1) if and is cheap.
6772
6773         * optabs.c (avoid_expensive_constant): Fix formatting.
6774
6775 2010-03-19  Michael Matz  <matz@suse.de>
6776
6777         PR c++/43116
6778         * attribs.c (decl_attributes): When rebuilding a function pointer
6779         type use the same qualifiers as the original pointer type.
6780
6781 2010-03-19  Martin Jambor  <mjambor@suse.cz>
6782
6783         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
6784         and is_gimple_ip_invariant_address.
6785
6786 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6787
6788         Revert
6789         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6790
6791         * config/arm/arm.c (arm_override_options): Turn off
6792         flag_dwarf2_cfi_asm for AAPCS variants.
6793
6794 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6795
6796         PR target/43399
6797         * config/arm/arm.c (emit_multi_reg_push): Update comments.
6798         Use PRE_MODIFY instead of PRE_DEC.
6799         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
6800         (vfp_emit_fstmd): Likewise.
6801
6802 2010-03-19  Michael Matz  <matz@suse.de>
6803
6804         PR target/43305
6805         * builtins.c (expand_builtin_interclass_mathfn,
6806         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
6807         if that fails.
6808
6809 2010-03-19  Richard Guenther  <rguenther@suse.de>
6810
6811         PR tree-optimization/43415
6812         * tree-ssa-pre.c (phi_translate): Split out worker to ...
6813         (phi_translate_1): ... this.
6814         (phi_translate): Move all caching here.  Cache all NARY
6815         and REFERENCE translations.
6816
6817 2010-03-19  David S. Miller  <davem@davemloft.net>
6818
6819         With help from Eric Botcazou.
6820         * config/sparc/sparc.c: Include dwarf2out.h.
6821         (emit_pic_helper): Delete.
6822         (pic_helper_symbol_name): Delete.
6823         (pic_helper_emitted_p): Delete.
6824         (pic_helper_needed): New.
6825         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
6826         (get_pc_thunk_name): New.
6827         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
6828         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
6829         Set pic_helper_needed to true.  Don't call emit_pic_helper.
6830         (sparc_expand_prologue): Update load_pic_register call.
6831         (sparc_output_mi_thunk): Likewise.
6832         (sparc_file_end): Emit a hidden comdat symbol for the PIC
6833         thunk if possible.  Output CFI information as needed.
6834
6835 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6836             Jack Howarth <howarth@bromo.med.uc.edu>
6837
6838         PR target/36399
6839         * config/i386/i386.h: Fix ABI on darwin x86-32.
6840
6841 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
6842
6843         * tree.h: Declare make_decl_rtl_for_debug.
6844         * varasm.c (make_decl_rtl_for_debug): New.
6845         * dwarf2out.c (rtl_for_decl_location): Call it.
6846         * cfgexpand.c (expand_debug_expr): Call it.
6847
6848 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
6849
6850         PR bootstrap/43399
6851         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
6852         mem_mode.
6853
6854         PR bootstrap/43403
6855         * var-tracking.c (vt_init_cfa_base): Do nothing if
6856         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
6857
6858 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
6859
6860         PR debug/42873
6861         * var-tracking.c (canonicalize_vars_star): New.
6862         (dataflow_post_merge_adjust): Use it.
6863
6864 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
6865
6866         PR debug/43058
6867         * var-tracking.c (non_suitable_const): New function.
6868         (add_uses): For DEBUG_INSNs with constants, don't record any
6869         value, instead just the constant value itself.
6870         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
6871         is not VAR_LOC_UNKNOWN_P, set var to the constant.
6872         (emit_notes_in_bb): Likewise.
6873         (emit_note_insn_var_location): For onepart variables if
6874         cur_loc is a VOIDmode constant, use DECL_MODE.
6875
6876 2010-03-18  Martin Jambor  <mjambor@suse.cz>
6877
6878         PR middle-end/42450
6879         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
6880         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
6881         all non-clones.  Moved call redirection...
6882         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
6883         (cgraph_materialize_all_clones): Dispose of all
6884         combined_args_to_skip bitmaps.
6885         (verify_cgraph_node): Do not check for edges pointing to wrong
6886         nodes in inline clones.
6887         * tree-inline.c (copy_bb): Call
6888         cgraph_redirect_edge_call_stmt_to_callee.
6889         * ipa.c (cgraph_remove_unreachable_nodes): Call
6890         cgraph_node_remove_callees even when there are used clones.
6891
6892 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
6893
6894         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
6895
6896 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
6897
6898         PR target/43383
6899         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
6900         for 32bit.
6901
6902 2010-03-18  Michael Matz  <matz@suse.de>
6903
6904         PR middle-end/43419
6905         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
6906         into sqrt(x) if we need to preserve signed zeros.
6907
6908 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
6909             Eric Botcazou  <ebotcazou@adacore.com>
6910
6911         PR rtl-optimization/43360
6912         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
6913         note if we don't know its invariant status.
6914
6915 2010-03-18  Michael Matz  <matz@suse.de>
6916
6917         PR tree-optimization/43402
6918         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
6919         PHI chains of ssa names registered for update.
6920
6921 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
6922
6923         PR target/42427
6924         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
6925         non-offsettable and pre_modify update addressing.
6926         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
6927         and "2" alternatives "#".
6928         (*movdd_softfloat32): Make all alternatives "#";
6929         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
6930         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
6931         (*movdf_softfloat32): Make all alternatives "#";
6932         (movdi): Use the new DIFD mode iterator to create a common splitter
6933         for movdi, movdf and movdd patterns.
6934
6935 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
6936
6937         * common.opt (dumpdir): Remove redundant tab.
6938
6939 2010-03-17  Martin Jambor  <mjambor@suse.cz>
6940
6941         PR tree-optimization/43347
6942         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
6943         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
6944
6945 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
6946
6947         PR rtl-optimization/42216
6948         * regrename.c (create_new_chain): New function, broken out from...
6949         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
6950         appending a use to an empty chain.
6951         (build_def_use): Remove previous changes that convert OP_INOUT to
6952         OP_OUT operands; instead detect the case where an OP_INOUT operand
6953         uses a previously untracked register and create an empty chain for it.
6954
6955 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6956
6957         * doc/extend.texi (Function Attributes): Rewrite unfinished
6958         sentence in ms_abi documentation.
6959
6960 2010-03-17  Alan Modra  <amodra@gmail.com>
6961
6962         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
6963         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
6964         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
6965         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
6966
6967 2010-03-16  Richard Henderson  <rth@redhat.com>
6968
6969         PR middle-end/43365
6970         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
6971         (lower_try_finally): Save and restore eh_seq around the expansion
6972         of the try-finally.
6973
6974 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
6975
6976         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
6977         statements before splitting block.
6978
6979 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6980
6981         * doc/sourcebuild.texi (Testsuites): Fix markup.
6982         Use pathnames relative to gcc/testsuite.
6983         (Test Directives): Move description of how timeout is determined.
6984         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
6985         (C Tests): Correct gcc.misc-tests directory.
6986         Framework tests now live in gcc.test-framework.
6987
6988 2010-03-16  Richard Guenther  <rguenther@suse.de>
6989
6990         PR middle-end/43379
6991         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
6992         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
6993
6994 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
6995             Alexandre Oliva  <aoliva@redhat.com>
6996
6997         PR tree-optimization/42917
6998         * lambda-code.c (remove_iv): Skip debug statements.
6999         (lambda_loopnest_to_gcc_loopnest): Likewise.
7000         (not_interesting_stmt): Debug statements are not interesting.
7001
7002 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7003
7004         PR debug/43051
7005         PR debug/43092
7006         * cselib.c (cselib_preserve_constants,
7007         cfa_base_preserved_val): New static variables.
7008         (preserve_only_constants): New function.
7009         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7010         clear its REG_VALUES.  If cselib_preserve_constants, don't
7011         empty the whole hash table, but preserve there VALUEs with constants,
7012         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7013         (cselib_preserve_cfa_base_value): New function.
7014         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7015         (cselib_init): Change argument to int bitfield.  Set
7016         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7017         is in it.
7018         (cselib_finish): Clear cselib_preserve_constants and
7019         cfa_base_preserved_val.
7020         * cselib.h (enum cselib_record_what): New enum.
7021         (cselib_init): Change argument to int.
7022         (cselib_preserve_cfa_base_value): New prototype.
7023         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7024         * dse.c (dse_step1): Likewise.
7025         * cfgcleanup.c (thread_jump): Likewise.
7026         * sched-deps.c (sched_analyze): Likewise.
7027         * gcse.c (local_cprop_pass): Likewise.
7028         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7029         If FN is non-NULL, call the callback always and whenever it returns
7030         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7031         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7032         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7033         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7034         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7035         * var-tracking.c: Include recog.h.
7036         (bb_stack_adjust_offset): Remove.
7037         (vt_stack_adjustments): Don't call it, instead just gather the
7038         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7039         (adjust_stack_reference): Remove.
7040         (compute_cfa_pointer): New function.
7041         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7042         (struct adjust_mem_data): New type.
7043         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7044         functions.
7045         (get_address_mode): New function.
7046         (replace_expr_with_values): Use it.
7047         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7048         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7049         (adjust_sets): Remove.
7050         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7051         Use get_address_mode.
7052         (get_adjusted_src): Remove.
7053         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7054         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7055         (add_with_sets): Don't call adjust_sets.
7056         (fp_setter, vt_init_cfa_base): New functions.
7057         (vt_initialize): Change return type to bool.  Move most of pool etc.
7058         initialization to the beginning of the function from end.  Pass
7059         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7060         If !frame_pointer_needed, call vt_stack_adjustment before mos
7061         vector is filled, call vt_init_cfa_base if argp/framep has been
7062         eliminated to sp.  If frame_pointer_needed and argp/framep has
7063         been eliminated to hard frame pointer, set
7064         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7065         encountering fp setter in the prologue.  For MO_ADJUST, call
7066         log_op_type before pusing the op into mos vector, not afterwards.
7067         Call adjust_insn before cselib_process_insn/add_with_sets,
7068         call cancel_changes (0) afterwards.
7069         (variable_tracking_main_1): Adjust for vt_initialize calling
7070         vt_stack_adjustments and returning whether it succeeded or not.
7071
7072 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7073
7074         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7075         debug statements.
7076
7077 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7078
7079         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7080         has been set.
7081         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7082         drap_reg has not been set.
7083
7084 2010-03-15  Michael Matz  <matz@suse.de>
7085
7086         PR middle-end/43300
7087         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7088         use it to expand block copies.
7089         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7090         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7091         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7092
7093 2010-03-15  Richard Guenther  <rguenther@suse.de>
7094
7095         PR tree-optimization/43367
7096         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7097         elimination check.
7098
7099 2010-03-15  Richard Guenther  <rguenther@suse.de>
7100
7101         PR tree-optimization/43317
7102         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7103
7104 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7105
7106         PR tree-optimization/43141
7107         * tree-sra.c (create_abstract_origin): New function.
7108         (modify_function): Call create_abstract_origin.
7109
7110 2010-03-15  Chris Demetriou  <cgd@google.com>
7111
7112         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7113         wasn't copied.
7114
7115 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7116
7117         PR middle-end/43354
7118         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7119         call insert_out_of_ssa_copy for default definitions.
7120
7121 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7122
7123         * graphite-clast-to-gimple.c (my_long_long): Defined.
7124         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7125         * graphite-sese-to-poly.c (my_long_long): Defined.
7126         (scop_ivs_can_be_represented): Use it.
7127
7128 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7129
7130         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7131         graphite-max-bbs-per-function, and loop-block-tile-size.
7132         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7133         with "maximum".
7134         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7135
7136 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7137
7138         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7139         forward declaration.
7140         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7141         (add_upper_bounds_from_estimated_nit): New.
7142         (build_loop_iteration_domains): Use it.
7143
7144 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7145
7146         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7147
7148 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7149
7150         PR middle-end/43306
7151         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
7152         should be an INTEGER_CST.  Also handle CASE_CONVERT.
7153
7154 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7155
7156         * graphite.c (graphite_initialize): To bound the number of bbs per
7157         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
7158         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
7159         * doc/invoke.texi: Document it.
7160
7161 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7162
7163         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
7164         * graphite-sese-to-poly.h (build_poly_scop): Same.
7165
7166 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7167
7168         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
7169         the number of parameters in the scop.  Use as an upper bound
7170         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
7171         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
7172         * doc/invoke.texi: Document it.
7173
7174 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
7175
7176         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
7177         * doc/c-tree.texi: Remove.
7178         * doc/generic.texi: Merge c-tree.texi here.
7179         * doc/gccint.texi (Trees): Remove menu entry.
7180         (c-tree.texi): Remove @include.
7181         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
7182         * doc/languages.texi (Reading RTL): Ditto.
7183
7184 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
7185
7186         PR target/42869
7187         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
7188
7189 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7190
7191         PR middle-end/42431
7192         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
7193         code added to work around reload clobbering CONST insns.
7194
7195 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
7196
7197         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
7198         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
7199         (cselib_preserve_only_values): Remove retain argument, don't
7200         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
7201         * cselib.h (cselib_preserve_only_values): Remove retain argument.
7202         * var-tracking.c (micro_operation): Move insn field before union.
7203         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
7204         (struct variable_tracking_info_def): Remove n_mos field, change
7205         mos into a vector of micro_operations.
7206         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
7207         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
7208         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
7209         changing into a vector.
7210         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
7211         come before all other uops generated by add_stores.
7212         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
7213         argument removal.
7214         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
7215         a vector.  Run just one pass over the bbs instead of separate counting
7216         and computation phase.
7217         (vt_finalize): Free VTI (bb)->mos vector instead of array.
7218
7219         PR debug/43329
7220         * tree-inline.c (remap_decls): Put old_var rather than origin_var
7221         into *nonlocalized_list vector.
7222         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
7223         even if origin is non-NULL.
7224         (gen_variable_die): Likewise.
7225         (process_scope_var): Don't change origin.
7226         (gen_decl_die): Likewise.
7227         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
7228         before adding new edges instead of after it, fix moving over
7229         debug stmts.
7230
7231 2010-03-11  David S. Miller  <davem@davemloft.net>
7232
7233         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
7234         of four.
7235         * configure: Rebuild.
7236
7237 2010-03-11  Martin Jambor  <mjambor@suse.cz>
7238
7239         PR tree-optimization/43257
7240         * tree.c (assign_assembler_name_if_neeeded): New function.
7241         (free_lang_data_in_cgraph): Assembler name assignment moved to the
7242         above new function.
7243         * tree.h (assign_assembler_name_if_neeeded): Declare.
7244         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
7245         the function if needed.
7246
7247 2010-03-11  Chris Demetriou  <cgd@google.com>
7248
7249         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
7250         include/stdint-gcc.h, and include/stdint.h world-readable.
7251
7252 2010-03-11  Richard Guenther  <rguenther@suse.de>
7253
7254         PR tree-optimization/43255
7255         * tree-vrp.c (process_assert_insertions_for): Do not insert
7256         asserts for trivial conditions.
7257
7258 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7259
7260         PR tree-optimization/43280
7261         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
7262         generation.  Move calculation of size out of the if branch.
7263         (find_bswap): Modify compare number generation.
7264
7265 2010-03-11  Richard Guenther  <rguenther@suse.de>
7266
7267         PR lto/43200
7268         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
7269         (input_gimple_stmt): Fixup handled component types during
7270         operand read.  Also fix up decls in ADDR_EXPRs.
7271
7272 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7273
7274         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
7275         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
7276
7277 2010-03-10  Jan Hubicka  <jh@suse.cz>
7278
7279         PR c/43288
7280         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
7281         * varasm.c (get_variable_section): Don't do that here...
7282         (make_decl_rtl): ... and here.
7283         (do_assemble_alias): Produce decl RTL.
7284         (assemble_alias): Likewise.
7285
7286 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
7287
7288         PR debug/43290
7289         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
7290         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
7291         of fde->vdrap_reg.
7292         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
7293         (based_loc_descr): Only express drap or vdrap regno based expressions
7294         using DW_OP_fbreg when not optimizing.
7295         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
7296         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
7297         REG_CFA_SET_VDRAP note.
7298
7299 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
7300
7301         PR tree-optimization/43236
7302         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
7303         error in calculation of base address in reverse iteration case.
7304         (generate_builtin): Take number of latch executions if the statement
7305         is in the latch.
7306
7307 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
7308
7309         PR middle-end/42859
7310         * tree-eh.c: Include pointer-set.h.
7311         (lower_eh_dispatch): Filter out duplicate case labels and
7312         remove the unneeded edge when the label is unused.  Return
7313         true when some edges are removed.
7314         (execute_lower_eh_dispatch): When any lowering resulted in
7315         removing an edge, also delete unreachable blocks.
7316
7317 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
7318
7319         PR bootstrap/43287
7320         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7321         UNSPEC_MACHOPIC_OFFSET.
7322
7323 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
7324
7325         PR target/43294
7326         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
7327         (m68k_delegitimize_address): New function.
7328
7329 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
7330
7331         PR debug/43299
7332         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
7333
7334         PR debug/43299
7335         * var-tracking.c (adjust_sets): New function.
7336         (count_with_sets, add_with_sets): Use it.
7337         (get_adjusted_src): New inline function.
7338         (add_stores): Use it.
7339
7340         PR debug/43304
7341         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
7342         call cselib_dummy_expand_value_rtx_cb instead of
7343         cselib_expand_value_rtx_cb.
7344
7345         PR debug/43293
7346         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
7347         * config/i386/i386.c: Include debug.h and dwarf2out.h.
7348         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
7349         and .cfi_endproc around the pic thunks.
7350         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
7351         all queued unwind info register saves are saved before the call.
7352         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
7353         considered as sp-=4 for unwind info and the pop as sp+=4 which
7354         also clobbers dest, but doesn't actually restore it.
7355
7356         PR debug/43290
7357         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
7358         RTX_FRAME_RELATED_P.
7359
7360 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7361
7362         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
7363         whitespaces in output template.
7364
7365 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7366
7367         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
7368         out array boundary.
7369
7370 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7371
7372         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
7373         builtins.exp in a separate job.
7374
7375 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7376
7377         * graphite-sese-to-poly.c (add_param_constraints): Use
7378         lower_bound_in_type and upper_bound_in_type.
7379
7380 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7381
7382         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
7383         instead of unsigned_type_node.
7384
7385 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7386             Reza Yazdani  <reza.yazdani@amd.com>
7387
7388         PR middle-end/43065
7389         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
7390         on pointer type parameters.
7391
7392 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7393
7394         PR middle-end/42644
7395         PR middle-end/42130
7396         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
7397         handle conversions from pointer to integers.
7398         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
7399         induction variable, to be able to work with code generated by CLooG.
7400         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
7401         (build_poly_scop): Bail out if we cannot codegen a loop.
7402
7403 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
7404
7405         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
7406         code generation with gloog_error.
7407
7408 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7409
7410         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
7411         Call fold_convert on all the returned values.
7412         (expand_scalar_variables_expr): Pass to
7413         expand_scalar_variables_ssa_name the type of the resulting expression.
7414
7415 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7416
7417         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
7418         ppl_min_for_le_pointset.
7419         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
7420         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
7421
7422 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7423
7424         * graphite-dependences.c (map_into_dep_poly): Removed.
7425         (dependence_polyhedron_1): Use combine_context_id_scat.
7426
7427 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7428
7429         * graphite-poly.h (struct poly_scattering): Add layout documentation.
7430         (struct poly_bb): Same.
7431         (combine_context_id_scat): New.
7432
7433 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7434
7435         PR middle-end/42326
7436         * sese.c (name_defined_in_loop_p): Return false for default
7437         definitions.
7438
7439 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7440
7441         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
7442         and clean up the logic.
7443
7444 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7445
7446         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
7447         early return.
7448
7449 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7450
7451         * var-tracking.c (remove_cselib_value_chains): Define only for
7452         ENABLE_CHECKING.
7453         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
7454         delete_slot_part, emit_notes_for_differences_1): Don't call
7455         remove_cselib_value_chains here.
7456         (set_slot_part, emit_notes_for_differences_2): Don't call
7457         add_cselib_value_chains here.
7458         (preserved_values): New vector.
7459         (preserve_value): New function.
7460         (add_uses, add_stores, vt_add_function_parameters): Use it
7461         instead of cselib_preserve_value.
7462         (changed_values_stack): New vector.
7463         (check_changed_vars_0): New function.
7464         (check_changed_vars_1, check_changed_vars_2): Use it.
7465         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
7466         changed_values_stack VALUEs.
7467         (vt_emit_notes): For all preserved_values call
7468         add_cselib_value_chains.  If ENABLE_CHECKING call
7469         remove_cselib_value_chains before verifying value_chains is empty.
7470         Initialize and free changed_values_stack.
7471         (vt_initialize): Initialize preserved_values.
7472         (vt_finalize): Free preserved_values.
7473
7474 2010-03-08  Richard Guenther  <rguenther@suse.de>
7475
7476         PR tree-optimization/43269
7477         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
7478         region detection.
7479
7480 2010-03-08  Martin Jambor  <mjambor@suse.cz>
7481
7482         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
7483         (ipa_is_param_called): Removed.
7484         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
7485         (ipa_print_node_params): Do not print the called flag.
7486         (ipa_write_node_info): Do not stream the called flag.
7487         (ipa_read_node_info): Likewise.
7488
7489 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
7490
7491         PR debug/43176
7492         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
7493         * cselib.c (struct expand_value_data): Add dummy field.
7494         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
7495         dummy to false.
7496         (cselib_dummy_expand_value_rtx_cb): New function.
7497         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
7498         any rtl.
7499         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
7500         * var-tracking.c: Include pointer-set.h.
7501         (variable): Change n_var_parts to char from int.  Add
7502         cur_loc_changed and in_changed_variables fields.
7503         (variable_canonicalize): Remove.
7504         (shared_var_p): New inline function.
7505         (unshare_variable): Maintain cur_loc_changed and
7506         in_changed_variables fields.  If var was in changed_variables,
7507         replace it there with new_var.  Just copy cur_loc instead of
7508         resetting it to something else.
7509         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
7510         (dataflow_set_union): Don't call variable_canonicalize.
7511         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
7512         of their DEBUG_EXPR_TREE_DECLs.
7513         (canonicalize_loc_order_check): Verify that cur_loc is NULL
7514         and in_changed_variables and cur_loc_changed is false.
7515         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
7516         and cur_loc_changed.  Don't update cur_loc here.
7517         (variable_merge_over_src): Don't call variable_canonicalize.
7518         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
7519         removing loc that is equal to cur_loc, clear cur_loc,
7520         set cur_loc_changed and ensure variable_was_changed is called.
7521         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
7522         compare pointers in cur_loc check, if it is equal to loc,
7523         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
7524         (variable_different_p): Remove compare_current_location argument,
7525         don't compare cur_loc.
7526         (dataflow_set_different_1): Adjust variable_different_p caller.
7527         (variable_was_changed): If dv had some var in changed_variables
7528         already, reset in_changed_variables flag for it and propagate
7529         cur_loc_changed over to the new variable.  On empty var
7530         always set cur_loc_changed.  Set in_changed_variables on whatever
7531         var is added to changed_variables.
7532         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
7533         Use shared_var_p.  When removing loc that is equal to cur_loc,
7534         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
7535         end, don't set it to something else, just call variable_was_changed.
7536         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
7537         loc being removed, clear cur_loc and set cur_loc_changed.
7538         Set cur_loc_changed if all locations have been removed.
7539         (struct expand_loc_callback_data): New type.
7540         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
7541         allocated.  Always create SUBREGs if simplify_subreg failed.
7542         Prefer to use cur_loc, when that fails and still in
7543         changed_variables (and seen first time) recompute it.  Set
7544         cur_loc_changed of variables which had to change cur_loc and
7545         compute elcd->cur_loc_changed if any of the subexpressions used
7546         had to change cur_loc.
7547         (vt_expand_loc): Adjust to pass arguments in
7548         expand_loc_callback_data structure.
7549         (vt_expand_loc_dummy): New function.
7550         (emitted_notes): New variable.
7551         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
7552         that weren't used for any other decl in current
7553         emit_notes_for_changes call call vt_expand_loc_dummy to update
7554         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
7555         first loc_chain location if NULL before.  Always use just
7556         cur_loc instead of first loc_chain location.  When cur_loc_changed
7557         is false, when not --enable-checking=rtl just don't emit any note.
7558         When rtl checking, compute the note and assert it is the same
7559         as previous note.  Clear cur_loc_changed and in_changed_variables
7560         at the end before removing from changed_variables.
7561         (check_changed_vars_3): New function.
7562         (emit_notes_for_changes): Traverse changed_vars to call
7563         check_changed_vars_3 on each changed var.
7564         (emit_notes_for_differences_1): Clear cur_loc_changed and
7565         in_changed_variables.  Recompute cur_loc of new_var.
7566         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
7567         (vt_emit_notes): Initialize and destroy emitted_notes.
7568
7569 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
7570
7571         PR rtl-optimization/42220
7572         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
7573         Use verify_reg_tracked to determine if we should use OP_OUT rather
7574         than OP_INOUT.
7575         (build_def_use): If we see an in-out operand for a register that we
7576         know nothing about, treat is an output if possible, fail the block if
7577         not.
7578
7579 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
7580
7581         PR debug/42897
7582         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
7583         permanently.
7584
7585 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
7586
7587         PR debug/42897
7588         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
7589         uses of relevant DEFs that are dead outside the loop too.
7590
7591 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
7592
7593         * var-tracking.c (dataflow_set_merge): Swap src and src2.
7594         Reverted:
7595         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
7596         PR debug/41371
7597         * var-tracking.c (values_to_unmark): New variable.
7598         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
7599         values_to_unmark vector.  Moved body to...
7600         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
7601         instead queue it into values_to_unmark vector.
7602         (vt_find_locations): Free values_to_unmark vector.
7603
7604 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7605
7606         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
7607         (site.exp): Export them when plugins are enabled.
7608
7609 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
7610
7611         PR middle-end/42326
7612         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
7613         that contain scevs.
7614         (chrec_fold_multiply): Same.
7615
7616 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7617
7618         PR c/43248
7619         * c-decl.c (build_compound_literal): Return early if init is
7620         an error_mark_node.
7621
7622 2010-03-04  Martin Jambor  <mjambor@suse.cz>
7623
7624         PR tree-optimization/43164
7625         PR tree-optimization/43191
7626         * tree-sra.c (type_consists_of_records_p): Reject records with
7627         zero-size bit-fields at the end.
7628
7629 2010-03-04  Mike Stump  <mikestump@comcast.net>
7630
7631         * Makefile.in (TAGS): Remove *.y.
7632
7633 2010-03-04  Richard Guenther  <rguenther@suse.de>
7634
7635         PR tree-optimization/40761
7636         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
7637         in reverse order.
7638         (my_rev_post_order_compute): New function.
7639         (init_pre): Call it.
7640
7641 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
7642
7643         PR middle-end/43209
7644         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
7645         decrease the cost of an IV candidate when the cost is infinite.
7646
7647 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7648
7649         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
7650         Use '3DNow!' for the extension of that name, ensure normal space
7651         after the string.
7652         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
7653
7654 2010-03-03  Jeff Law  <law@redhat.com>
7655
7656         * PR middle-end/32693
7657         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
7658         than gen_rtx_SUBREG.
7659         (extract_bit_field_1): Likewise.
7660
7661 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
7662
7663         * doc/sourcebuild.texi (Test directives): Document that arguments
7664         include-opts and exclude-opts are now optional for dg-skip-if,
7665         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
7666
7667 2010-03-03  Jason Merrill  <jason@redhat.com>
7668
7669         PR c++/12909
7670         * cgraph.h (varpool_node): Add extra_name field.
7671         * varpool.c (varpool_extra_name_alias): New.
7672         (varpool_assemble_decl): Emit extra name aliases.
7673         (varpool_mark_needed_node): Look past an extra name alias.
7674         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
7675         * lto-streamer-in.c (lto_input_tree): Read it.
7676         * lto-streamer-out.c (output_unreferenced_globals): Write it.
7677
7678 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
7679
7680         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
7681         (sparc*-*-solaris2*): ...this.
7682
7683 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
7684
7685         PR debug/43229
7686         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
7687         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
7688         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
7689         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
7690
7691         PR debug/43237
7692         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
7693         fallthrough to default handling, just with want_address 0 instead of 2.
7694         For single element lists, add_AT_loc directly, otherwise create an
7695         artificial variable DIE and stick location list to it.
7696
7697         PR debug/43177
7698         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
7699         (VAL_EXPR_HAS_REVERSE): Define.
7700         (reverse_op): New function.
7701         (add_stores): For reversible operations add an extra MO_VAL_USE.
7702
7703 2010-03-02  Jason Merrill  <jason@redhat.com>
7704
7705         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
7706
7707 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
7708
7709         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
7710         (sparc64-*-linux*): Likewise.
7711         (sparc64-*-solaris2*): Include assembler files before linker ones.
7712         (sparc-*-solaris2*): Simplify and reorder to match previous case.
7713         * config/sparc/gas.h: Delete.
7714         * config/sparc/sol2-64.h: Add copyright notice.
7715         * config/sparc/sol2-gas-bi.h: Likewise.
7716         * config/sparc/sol2-gld.h: Likewise.
7717         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
7718         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
7719         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
7720         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
7721         (sparc_elf_asm_named_section): Rename into...
7722         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
7723
7724 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
7725
7726         * config/alpha/alpha.c (override_options): Fix -mtune error message.
7727
7728 2010-03-02  Jeff Law  <law@redhat.com>
7729
7730         PR middle-end/42431
7731         * reload1.c (rtx_p, substitute_stack): Declare.
7732         (substitute): Record addresses of changed rtxs.
7733         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
7734         Restore the original rtx when complete.
7735         (reload): Free subsitute_stack when complete.
7736
7737 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
7738
7739         * doc/gccint.texi (menu): Add Testsuites as a chapter.
7740         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
7741         new chapter.
7742         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
7743         LTO Testing, gcov Testing, profopt Testing, compat Testing,
7744         Torture Tests): Change from subsection to section.
7745
7746 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
7747             Steven Bosscher  <steven@gcc.gnu.org>
7748
7749         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
7750         instead of bb.
7751
7752 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
7753
7754         PR middle-end/42640
7755         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
7756         the assignment from the new induction variable to the assignment
7757         of the value from the original loop PHI function.
7758
7759 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
7760             Daniel Jacobowitz  <dan@codesourcery.com>
7761
7762         * doc/sourcebuild.texi (Test directives): Clarify options to
7763         dg-skip-if.
7764
7765 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7766
7767         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
7768         Disable cfi directives unless GCC and gas agree on using read-only
7769         .eh_frame sections for 64-bit.
7770         * configure: Regenerate.
7771
7772 2010-03-01  Richard Guenther  <rguenther@suse.de>
7773
7774         PR tree-optimization/43220
7775         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
7776         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
7777
7778 2010-03-01  Richard Guenther  <rguenther@suse.de>
7779             Martin Jambor  <mjambor@suse.cz>
7780
7781         PR middle-end/41250
7782         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
7783         gimplified parameters.
7784
7785 2010-03-01  Christian Bruel  <christian.bruel@st.com>
7786
7787         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
7788
7789 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
7790
7791         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
7792
7793 2010-03-01  Richard Guenther  <rguenther@suse.de>
7794
7795         PR middle-end/43213
7796         * expr.c (expand_assignment): Use the alias-oracle to tell
7797         if the rhs aliases the result decl.
7798
7799 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7800
7801         PR pch/14940
7802         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
7803         to sol_gt_pch_get_address.
7804         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
7805         64-bit, SPARC and x86.
7806         (sol_gt_pch_get_address): New function.
7807
7808 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
7809
7810         * toplev.h (inform_n, error_n): Declare.
7811         * diagnostic.c (inform_n, error_n): New function.
7812
7813 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
7814
7815         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
7816         has no rtl yet when processing local_decls, queue it and recheck
7817         if deferred stack allocation hasn't assigned it rtl.
7818
7819 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
7820
7821         * config/sh/sh.c (unspec_bbr_uid): New.
7822         (gen_block_redirect): Use it instead of INSN_UID.
7823         (gen_far_branch): Likewise.
7824
7825 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
7826
7827         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
7828         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
7829
7830 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7831
7832         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
7833         (Warning Options): -Wno-conversion-null is valid for
7834         Objective-C++ as well.
7835         * doc/tm.texi (Named Address Spaces): Likewise.
7836         * doc/plugins.texi (Plugins): Replace TABs with spaces.
7837         * doc/tree-ssa.texi (Tree SSA): Likewise.
7838
7839 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7840
7841         PR bootstrap/43202
7842         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
7843         by default.  Don't set the default arch for
7844         i[34567]86-*-darwin*|x86_64-*-darwin*.
7845
7846 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7847
7848         PR bootstrap/43202
7849         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
7850         default.  Set the default 32bit/64bit archs with $with_arch
7851         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
7852
7853 2010-02-27  Richard Guenther  <rguenther@suse.de>
7854
7855         PR tree-optimization/43186
7856         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
7857         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
7858         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
7859         unroller iterations.
7860
7861 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
7862
7863         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
7864         required and i[34567]86-*-* targets don't support 64bit ISA.
7865
7866 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
7867
7868         PR ada/43096
7869         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
7870         the same alias set.
7871
7872 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
7873
7874         * config.gcc: Set the default arch at least to Prescott for
7875         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
7876         if SSE math is enabled.
7877
7878 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7879
7880         * diagnostic.c (diagnostic_initialize): Update.
7881         (diagnostic_report_diagnostic): Test inhibit_notes_p for
7882         informative notes.
7883         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
7884         (diagnostic_inhibit_notes): New.
7885         * toplev.c (process_options): inhibit notes with -fcompare-debug.
7886
7887 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7888
7889         PR c/20631
7890         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
7891         * doc/standards.texi: Likewise.
7892         * doc/extend.texi: Likewise.
7893         * doc/trouble.texi: Likewise.
7894         * doc/cppopts.texi: Likewise.
7895         * doc/install.texi: Likewise.
7896         * c.opt (std=c90,std=gnu90): New options.
7897         * c-opts.c (c_common_handle_option): Handle them.
7898
7899 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7900
7901         PR c/24577
7902         * c-decl.c (undeclared_variable): Use an informative note.
7903
7904 2010-02-26  Richard Guenther  <rguenther@suse.de>
7905
7906         PR tree-optimization/43186
7907         * gimple.h (gimple_fold): Remove.
7908         * gimple.c (gimple_fold): Remove.  Inline into single user ...
7909         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
7910         Try harder for conditions.
7911
7912 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
7913
7914         PR debug/43190
7915         * function.c (used_types_insert): Don't skip through named pointer
7916         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
7917         and it is different from the main variant's type.
7918
7919 2010-02-26  Nick Clifton  <nickc@redhat.com>
7920
7921         * config/rx/rx.md (sminsi3): Remove bogus alternative.
7922
7923 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
7924
7925         * config.gcc: Support --with-fpmath=sse for x86.
7926
7927         * config/i386/ssemath.h: New.
7928
7929         * doc/install.texi (--with-fpmath=sse): Documented.
7930
7931 2010-02-26  Richard Guenther  <rguenther@suse.de>
7932
7933         PR tree-optimization/43188
7934         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
7935         vector types of over-aligned element type.
7936
7937 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
7938
7939         PR target/43175
7940         * config/i386/i386.c (expand_vec_perm_blend): Use correct
7941         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
7942
7943 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
7944
7945         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
7946
7947 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
7948
7949         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
7950         * var-tracking.c: Include diagnostic.h.
7951         (debug_dv): New function.
7952         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
7953
7954         PR debug/43160
7955         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
7956         (add_value_chain, add_value_chains, remove_value_chain,
7957         remove_value_chains): Handle DEBUG_EXPRs.
7958         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
7959
7960         PR debug/43161
7961         * regcprop.c (struct queued_debug_insn_change): New type.
7962         (struct value_data_entry): Add debug_insn_changes field.
7963         (struct value_data): Add n_debug_insn_changes field.
7964         (debug_insn_changes_pool): New variable.
7965         (free_debug_insn_changes, apply_debug_insn_changes,
7966         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
7967         (kill_value_one_regno): Call free_debug_insn_changes if needed.
7968         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
7969         fields.
7970         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
7971         changes for them.
7972         (copyprop_hardreg_forward_1): Don't call apply_change_group for
7973         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
7974         changes, call cprop_find_used_regs via note_stores.
7975         (copyprop_hardreg_forward): When copying vd from predecessor
7976         which has any queued DEBUG_INSN changes, make sure the pointers are
7977         cleared.  At the end call df_analyze and then if there are any
7978         DEBUG_INSN changes queued at the end of some basic block for still
7979         live registers, apply them.
7980         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
7981
7982 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
7983
7984         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
7985         (arm*-*-*): Ditto.
7986
7987 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
7988
7989         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
7990         targets.  Set the default with_cpu/with_arch from arch/cpu.
7991         Allow x86-64 and native for with_cpu/with_arch.
7992
7993 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
7994
7995         * ebitmap.c: Change calls to verify_popcount with calls to
7996         sbitmap_verify_popcount.
7997         (ebitmap_clear_bit): Fixed map->cacheindex test and
7998         map>cache update when bit clearing results in an empty
7999         element.
8000
8001 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8002
8003         PR target/43154
8004         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8005         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8006         and support both V2DF and V2DI modes.
8007         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8008         support both V2DF and V2DI modes.
8009         (general): Delete trailing whitespace from a few patterns.
8010
8011         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8012         V2DF/V2DI interleave high/low builtins.
8013
8014         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8015         new VSX builtins.
8016
8017         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8018         interleave high/low functions.
8019
8020 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8021
8022         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8023         #pragma extern_prefix.
8024
8025 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8026
8027         PR debug/43166
8028         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8029         BLKmode, assert op0 is a MEM and just adjust its mode.
8030
8031         PR debug/43165
8032         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8033         if bitpos isn't multiple of mode's bitsize.
8034
8035 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8036
8037         * c.opt (-ftemplate-depth=): New.
8038         (-ftemplate-depth-): Deprecate.
8039         * optc-gen.awk: Handle -ftemplate-depth=.
8040         * opth-gen.awk: Likewise.
8041         * c-opts.c (c_common_handle_option): Likewise.
8042         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8043
8044 2010-02-24  Jason Merrill  <jason@redhat.com>
8045
8046         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8047
8048 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8049
8050         * cfg.c (alloc_aux_for_block): Remove inline.
8051         (alloc_aux_for_edge): Likewise.
8052
8053 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8054
8055         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8056
8057 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8058
8059         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8060         * config/i386/sol2-gas.h: New file.
8061         * config.gcc (i[34567]86-*-solaris2*): Use it.
8062
8063 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8064
8065         PR c/43128
8066         * c-typeck.c (ep_convert_and_check): New.
8067         (build_conditional_expr): Use it.
8068         (build_binary_op): Likewise.
8069
8070 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8071
8072         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8073
8074         PR debug/43150
8075         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8076         bounds even for -O+.
8077         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8078         expr needs to have DECL_NAME set.
8079
8080 2010-02-24  Nick Clifton  <nickc@redhat.com>
8081
8082         * config/mep/mep.c: Include gimple.h.
8083         (mep_function_uses_sp): Delete unused function.
8084         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8085         parameters.  Use unsigned integers to count args.  Return a
8086         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8087
8088 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8089
8090         PR target/43107
8091         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8092         greater or equal to nelt instead of 2 * nelt.
8093         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8094         with nelt - 1.
8095
8096 2010-02-23  Jason Merrill  <jason@redhat.com>
8097
8098         PR debug/42800
8099         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8100         in cfun->local_decls even if they have register types.
8101
8102         PR c++/42837
8103         * stor-layout.c (place_field): Don't warn about unnecessary
8104         DECL_PACKED if the type is packed.
8105
8106 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8107
8108         PR target/43139
8109         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8110         GOTOFF relocs, even when the base reg isn't pic pointer.
8111
8112 2010-02-23  Michael Matz  <matz@suse.de>
8113
8114         PR debug/43077
8115         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8116         (expand_gimple_basic_block): Generate and use debug temps if there
8117         are debug uses left after the last real use of TERed ssa names.
8118         Unlink debug immediate uses when they are expanded.
8119
8120 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8121
8122         PR 43123
8123         * config/i386/i386.c (override_options): Reorganise to provide
8124         better error messages.
8125
8126 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8127
8128         PR middle-end/43083
8129         * graphite-scop-detection.c (create_single_exit_edge): Move
8130         the call to find_single_exit_edge to....
8131         (create_sese_edges): ...here.  Don't handle multiple edges
8132         exiting the function.
8133         (build_graphite_scops): Don't handle multiple edges
8134         exiting the function.
8135
8136 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8137
8138         PR middle-end/43097
8139         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8140         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8141
8142 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8143
8144         PR middle-end/43026
8145         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8146
8147 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8148
8149         PR c++/43126
8150         * c-typeck.c (convert_arguments): Print declaration location.
8151         * c-common.c (validate_nargs): Rename as
8152         builtin_function_validate_nargs.
8153         (check_builtin_function_arguments): Update.
8154
8155 2010-02-22  Richard Guenther  <rguenther@suse.de>
8156
8157         PR lto/43045
8158         * tree-inline.c (declare_return_variable): Use the type of
8159         the call stmt lhs if available.
8160
8161 2010-02-22  Duncan Sands  <baldrick@free.fr>
8162
8163         * passes.c (register_pass): Always consider all pass lists when
8164         ref_pass_instance_number is zero.
8165
8166 2010-02-22  Richard Guenther  <rguenther@suse.de>
8167
8168         PR tree-optimization/42749
8169         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
8170         parameter.  Do arithmetic in the original type.
8171         (update_accumulator_with_ops): Likewise.
8172         (adjust_accumulator_values): Adjust.
8173
8174 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8175
8176         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
8177         (QI to BLKmode splitter): New splitter.
8178
8179 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
8180
8181         * config/i386/i386.c (initial_ix86_tune_features): Turn on
8182         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
8183
8184 2010-02-22  Richard Guenther  <rguenther@suse.de>
8185
8186         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
8187
8188 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
8189
8190         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
8191         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
8192         ($(T)crti.o, $(T)crtn.o): Remove rules.
8193
8194 2010-02-21  Tobias Burnus  <burnus@net-b.de>
8195
8196         PR fortran/35259
8197         * doc/invoke.texi (-fassociative-math): Document that this
8198         option is automatically enabled for Fortran.
8199
8200 2010-02-20  David S. Miller  <davem@davemloft.net>
8201
8202         * configure.ac: Test if linker and assembler properly support
8203         GOTDATA_OP relocations.
8204         * configure: Rebuild.
8205         * config.in: Likewise.
8206         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
8207         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
8208         (movsi_high_pic): Likewise.
8209         (movdi_lo_sum_pic): Likewise.
8210         (movdi_high_pic): Likewise.
8211         (movsi_pic_gotdata_op): New pattern.
8212         (movdi_pic_gotdata_op): Likewise.
8213         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
8214         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
8215
8216 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
8217
8218         PR target/43067
8219         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
8220         attribute to ssemul.
8221         (xop_mulv2div2di3_high): Ditto.
8222
8223 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8224
8225         PR c++/35669
8226         * c.opt (Wconversion-null): New option.
8227         * doc/invoke.texi (Wconversion-null): Document.
8228
8229 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8230
8231         * common.opt (Wlarger-than-): Add Undocumented.
8232
8233 2010-02-19  Mike Stump  <mikestump@comcast.net>
8234
8235         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
8236
8237 2010-02-19  Jason Merrill  <jason@redhat.com>
8238
8239         PR target/40332
8240         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
8241         * configure: Likewise.
8242
8243 2010-02-20  Alan Modra  <amodra@gmail.com>
8244
8245         PR middle-end/42344
8246         * cgraph.h (cgraph_make_decl_local): Declare.
8247         * cgraph.c (cgraph_make_decl_local): New function.
8248         (cgraph_make_node_local): Use it.
8249         * cgraphunit.c (cgraph_function_versioning): Likewise.
8250         * ipa.c (function_and_variable_visibility): Likewise.
8251
8252 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8253
8254         PR bootstrap/43121
8255         * except.c (sjlj_emit_function_enter): Don't call
8256         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
8257         directly.
8258         * rtl.h (add_reg_br_prob_note): Remove prototype.
8259
8260 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8261
8262         PR 41779
8263         * c-common.c (conversion_warning): Remove widening conversions
8264         before checking the conversion of integers to reals.
8265
8266 2010-02-19  Mike Stump  <mikestump@comcast.net>
8267
8268         PR middle-end/43125
8269         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
8270
8271         PR objc/43061
8272         * cgraphunit.c (process_function_and_variable_attributes): Check
8273         DECL_PRESERVE_P instead of looking up attribute "used".
8274         * ipa-pure-const.c (check_decl): Likewise.
8275         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
8276         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
8277         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
8278         instead of attribute "used".
8279         * config/sol2-c.c (solaris_pragma_init): Likewise.
8280         (solaris_pragma_fini): Likewise.
8281
8282 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8283
8284         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
8285         Use XCNEW instead of xcalloc.
8286         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
8287         XNEW instead of xmalloc.
8288         (get_fields): Use XNEWVEC instead of xmalloc.
8289
8290         PR debug/43084
8291         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
8292         populate vars array.
8293         (create_new_general_access): For debug stmts just reset value.
8294         (get_stmt_accesses): For accesses within debug stmts just record them
8295         using add_access_to_acc_sites instead of preventing the peeling or
8296         counting them as accesses.
8297
8298         PR middle-end/42233
8299         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
8300
8301 2010-02-19  Richard Guenther  <rguenther@suse.de>
8302
8303         PR tree-optimization/42916
8304         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
8305         instructions.
8306
8307 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
8308
8309         * configure.ac: Replace all uses of changequote in macro arguments
8310         with proper quoting.
8311
8312 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8313
8314         PR middle-end/42233
8315         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
8316
8317 2010-02-19  Richard Guenther  <rguenther@suse.de>
8318
8319         PR tree-optimization/42944
8320         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
8321         test for aliasing with errno.
8322
8323 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8324
8325         PR middle-end/42233
8326         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
8327         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
8328         * dojump.c: Include output.h.
8329         (inv): New inline function.
8330         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
8331         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
8332         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
8333         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
8334         argument, pass it down to other calls.
8335         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
8336         add REG_BR_PROB note to the conditional jump.
8337         * cfgexpand.c (add_reg_br_prob_note): Removed.
8338         (expand_gimple_cond): Don't call it, add the probability
8339         as last argument to jumpif_1/jumpifnot_1.
8340         * Makefile.in (dojump.o): Depend on output.h.
8341         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
8342         callers.
8343         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
8344         * stmt.c (do_jump_if_equal): Likewise.
8345         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
8346         * loop-unswitch.c (compare_and_jump_seq): Likewise.
8347         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
8348         Likewise.
8349         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
8350         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
8351         jumpifnot_1 callers.
8352         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
8353         callers.
8354         (store_expr): Adjust jumpifnot caller.
8355         (store_constructor): Adjust jumpif caller.
8356
8357         PR middle-end/42233
8358         * gimplify.c (gimple_boolify): For __builtin_expect call
8359         gimple_boolify also on its first argument.
8360
8361 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
8362
8363         * configure.ac (gnu-unique-object): Wrap regexps using [] in
8364         changequote block.
8365         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
8366         * configure: Regenerated.
8367
8368 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8369
8370         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
8371         lang_hooks.types_compatible_p instead of comptypes.
8372
8373 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
8374
8375         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
8376         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
8377         if __prefer_thumb__ is defined.
8378
8379 2010-02-18  Martin Jambor  <mjambor@suse.cz>
8380
8381         PR tree-optimization/43066
8382         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
8383         array with zero-sized element type.
8384
8385 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
8386
8387         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
8388         rtx, allocate struct var_loc_node here and return it to the
8389         caller, and only if it is actually needed.
8390         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
8391         move it earlier and return immediately if it returns NULL.
8392
8393 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
8394
8395         * config/sparc/gas.h: New file.  Restore
8396         TARGET_ASM_NAMED_SECTION to its ELF default.
8397         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
8398         check !HAVE_GNU_AS.
8399         * config/sparc/sparc.c (sparc_elf_asm_named_section):
8400         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
8401         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
8402         after sparc/sysv4.h.
8403
8404 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
8405
8406         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
8407
8408 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
8409
8410         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
8411         patterns from predicated pattern.
8412
8413 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
8414
8415         PR target/43103
8416         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
8417         for insn mnemonic suffix.
8418
8419 2010-02-17  Richard Guenther  <rguenther@suse.de>
8420
8421         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
8422         to loop PHI nodes.
8423
8424 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
8425
8426         PR debug/42918
8427         * caller-save.c (save_call_clobbered_regs): If BB ends with
8428         a DEBUG_INSN, move any notes in between last real insn and the last
8429         DEBUG_INSN after the last DEBUG_INSN.
8430
8431 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
8432
8433         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
8434         Fix return type.  Fix argument type.  Explain meaning of return value.
8435
8436 2010-02-16  Richard Guenther  <rguenther@suse.de>
8437
8438         PR tree-optimization/41043
8439         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
8440         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
8441         statements ...
8442         (vrp_visit_phi_node): ... but only for loop PHI nodes.
8443
8444 2010-02-16  Ira Rosen  <irar@il.ibm.com>
8445
8446         PR tree-optimization/43074
8447         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
8448         * tree-vect-loop.c (vect_analyze_loop_operations): Add
8449         vectorizable cycles in hybrid SLP check.
8450         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
8451
8452 2010-02-16  Richard Guenther  <rguenther@suse.de>
8453
8454         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
8455         (true_dependence): If memrefs_conflict_p computes must-alias
8456         trust it.  Move TBAA check after offset-based disambiguation.
8457         (canon_true_dependence): Likewise.
8458
8459 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
8460
8461         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
8462         * doc/invoke.texi: Document it.
8463         * var-tracking.c: Include toplev.h and params.h.
8464         (vt_find_locations): Return bool indicating success.  Compute
8465         hash sizes unconditionally.  Check new parameter, report.
8466         (variable_tracking_main_1): Check vt_find_locations results and
8467         retry.  Renamed from...
8468         (variable_tracking_main): ... this.  New wrapper to preserve
8469         flag_var_tracking_assignments.
8470         * Makefile.in (var-tracking.o): Adjust dependencies.
8471
8472 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
8473             Jakub Jelinek <jakub@redhat.com>
8474
8475         PR target/42854
8476         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
8477         if weak_import attribute is present.
8478         * config/darwin.c (machopic_select_section): Likewise.
8479
8480 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
8481
8482         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
8483         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
8484         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
8485         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
8486
8487         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
8488         types.
8489
8490         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
8491         Fix argument types.
8492
8493         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
8494         Rewrite text to refer to the names.
8495
8496 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
8497
8498         * config/i386/i386-builtin-types.def
8499         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
8500         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
8501         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
8502         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
8503         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
8504         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
8505         IX86_BUILTIN_VPERMIL2PS256.
8506         (MULTI_ARG_4_DF2_DI_I): Defined.
8507         (MULTI_ARG_4_DF2_DI_I1): Defined.
8508         (MULTI_ARG_4_SF2_SI_I): Defined.
8509         (MULTI_ARG_4_SF2_SI_I1): Defined.
8510         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
8511         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
8512         __builtin_ia32_vpermil2ps256.
8513         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8514         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8515         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
8516         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
8517         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
8518         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
8519         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
8520         CODE_FOR_xop_vpermil2v8sf3.
8521         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
8522         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
8523         * config/i386/xopintrin.h (_mm_permute2_pd): New.
8524         (_mm256_permute2_pd): New.
8525         (_mm_permute2_ps): New.
8526         (_mm256_permute2_ps): New.
8527
8528 2010-02-15  Nick Clifton  <nickc@redhat.com>
8529
8530         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
8531         boolean parameters.  Use emit_jump_insn when emitting a pop
8532         instruction containing a return insn.
8533         (push): Use 'true' rather than '1' as second parameter to F.
8534         (h8300_expand_prologue): Likewise.
8535         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
8536         (h8300_expand_epilogue): Likewise.
8537
8538 2010-02-15  Richard Guenther  <rguenther@suse.de>
8539
8540         PR middle-end/43068
8541         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
8542         if that is zero.
8543
8544 2010-02-15  Nick Clifton  <nickc@redhat.com>
8545
8546         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
8547         delta.
8548
8549 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
8550
8551         * intl.c (fake_ngettext): New function.
8552         * intl.h (fake_ngettext): Declare.
8553         (ngettext): Define macro.
8554         * collect2.c (notice_translated): New function.
8555         (main): Use notice_translated and ngettext.
8556         * collect2.h (notice_translated): Declare.
8557
8558 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
8559
8560         * reorg.c (delete_computation): Comment fixes.
8561         * caller-save.c (setup_save_areas): Idem.
8562         * sel-sched-dump.c (dump_lv_set): Idem.
8563         * rtl.def: Idem.
8564
8565 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8566
8567         * config/s390/s390.c (s390_sched_init): New function.
8568         (TARGET_SCHED_INIT): Target hook defined.
8569
8570 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
8571             Jack Howarth  <howarth@bromo.med.uc.edu>
8572             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
8573
8574         PR target/42982
8575         Partial revert of unintended change in fix for PR41605.
8576         * config/darwin.h: Fix typo.
8577         * config/darwin9.h: Same.
8578
8579 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
8580
8581         * c-pch.c (pch_init): Clear v.
8582
8583 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8584
8585         PR middle-end/42930
8586         * graphite-scop-detection.c (graphite_can_represent_scev): Call
8587         graphite_can_represent_init for MULT_EXPR.
8588
8589 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8590
8591         PR middle-end/42914
8592         PR middle-end/42530
8593         * graphite-sese-to-poly.c (remove_phi): New.
8594         (translate_scalar_reduction_to_array): Call remove_phi.
8595
8596 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8597
8598         PR middle-end/42771
8599         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
8600         * graphite-clast-to-gimple.h (gloog): Update declaration.
8601         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
8602         * graphite-poly.h (struct poly_bb): Add missing comments.
8603         (struct scop): Add poly_scop_p field.
8604         (POLY_SCOP_P): New.
8605         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
8606         * graphite.c (graphite_transform_loops): Build the polyhedral
8607         representation for each scop before code generation.
8608         * sese.c (rename_variables_in_operand): Removed.
8609         (rename_variables_in_expr): Return the renamed expression.
8610         (rename_sese_parameters): New.
8611         * sese.h (rename_sese_parameters): Declared.
8612
8613 2010-02-11  Richard Guenther  <rguenther@suse.de>
8614
8615         PR tree-optimization/42998
8616         * tree-ssa-pre.c (create_expression_by_pieces): Treat
8617         POINTER_PLUS_EXPR properly.
8618
8619 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
8620             Changpeng Fang  <changpeng.fang@amd.com>
8621
8622         PR middle-end/40886
8623         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
8624         the cost of an IV candidate when the IV is used in a test against zero.
8625
8626         * gcc.dg/tree-ssa/ivopts-3.c: New.
8627
8628 2010-02-11  Richard Guenther  <rguenther@suse.de>
8629
8630         PR lto/41664
8631         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
8632         pointer-vs-decl case by swapping refs.  Handle some cases
8633         of pointer-vs-decl disambiguations more conservatively.
8634         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
8635         to false after expanding.
8636
8637 2010-02-11  Richard Guenther  <rguenther@suse.de>
8638
8639         PR driver/43021
8640         * gcc.c (process_command): Handle LTO file@offset case more
8641         appropriately.
8642
8643 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
8644
8645         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
8646         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
8647         of DEBUG_INSNs.
8648         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
8649
8650         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
8651         if MEM's mode size isn't DWARF2_ADDR_SIZE.
8652         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
8653         Optimize eq/ne comparisons when both arguments are known to be
8654         zero-extended.
8655         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
8656         Don't mask operands unnecessarily if they are known to be already
8657         zero-extended.
8658
8659 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8660
8661         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
8662         instead of loop.
8663
8664 2010-02-10  Richard Guenther  <rguenther@suse.de>
8665
8666         PR tree-optimization/43017
8667         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
8668         for wrapping signed arithmetic.
8669
8670 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
8671
8672         PR debug/43010
8673         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
8674         if no debug info should be emitted for it.
8675
8676 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
8677
8678         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
8679         note when flag_exceptions is set.
8680
8681 2010-02-10  Duncan Sands  <baldrick@free.fr>
8682
8683         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
8684
8685 2010-02-10  Richard Guenther  <rguenther@suse.de>
8686
8687         PR c/43007
8688         * tree.c (get_unwidened): Handle constants.
8689         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
8690
8691 2010-02-10  Martin Jambor  <mjambor@suse.cz>
8692
8693         PR lto/42985
8694         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
8695         check for variable argument counts independently.
8696
8697 2010-02-10  Christian Bruel  <christian.bruel@st.com>
8698
8699         PR target/42841
8700         * config/sh/sh.c (find_barrier): Increase length for non delayed
8701         conditional branches.
8702
8703 2010-02-10  Christian Bruel  <christian.bruel@st.com>
8704
8705         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
8706
8707 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
8708
8709         * builtins.c (set_builtin_user_assembler_name): Also handle
8710         ffs if int is smaller than word.
8711
8712 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
8713
8714         PR middle-end/42973
8715         * ira-conflicts.c (get_dup): Remove.
8716         (process_reg_shuffles): Add new parameter.  Use it as an
8717         additional guard for copy generation.
8718         (add_insn_allocno_copies): Rewrite.
8719
8720 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
8721
8722         * common.opt (fsched2-use-traces): Preserved for backward
8723         compatibility.
8724         * doc/invoke.texi: Remove the documentation about option
8725         -fsched2-use-traces.
8726         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
8727         flag_sched2_use_traces.
8728         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
8729         the backward compatibility flag section.
8730
8731 2010-02-09  Richard Guenther  <rguenther@suse.de>
8732
8733         PR tree-optimization/43008
8734         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
8735         make HEAP variables initialized from global memory if they
8736         are not known builtin functions.
8737         (find_func_aliases): Adjust.
8738
8739 2010-02-09  Richard Guenther  <rguenther@suse.de>
8740
8741         PR tree-optimization/43000
8742         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
8743         arithmetic manually.
8744
8745 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
8746
8747         PR tree-optimization/42931
8748         * tree-loop-linear.c (try_interchange_loops): Don't call
8749         double_int_mul if estimated_loop_iterations failed.
8750
8751 2010-02-08  Martin Jambor  <mjambor@suse.cz>
8752
8753         PR middle-end/42898
8754         * tree-sra.c (build_accesses_from_assign): Do not mark in
8755         should_scalarize_away_bitmap if stmt has volatile ops.
8756         (sra_modify_assign): Do not process assigns piecemeal if if stmt
8757         has volatile ops.
8758
8759 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
8760
8761         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
8762
8763 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
8764
8765         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
8766         before the pattern.
8767
8768 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
8769
8770         PR middle-end/42946
8771         * df-core.c (df_finish_pass): Change type of saved_flags to int.
8772
8773 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
8774
8775         PR middle-end/42988
8776         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
8777         to unknown_dependence.
8778         (graphite_legal_transform_dr): Handle the unknown_dependence.
8779         (graphite_carried_dependence_level_k): Same.
8780
8781 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
8782
8783         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
8784
8785 2010-02-07  Richard Guenther  <rguenther@suse.de>
8786
8787         PR middle-end/42991
8788         * expr.c (get_inner_reference): Always initialize *pbitsize.
8789
8790 2010-02-07  Richard Guenther  <rguenther@suse.de>
8791
8792         PR middle-end/42956
8793         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
8794         new ARRAY_REFs on variable size element or minimal index arrays.
8795         Complete.
8796         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
8797         gimple_fold_indirect_ref.
8798
8799 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
8800
8801         PR target/42957
8802         * arm.c (arm_override_options): Just return if the user has specified
8803         an invalid fpu name.
8804
8805 2010-02-03  Jason Merrill  <jason@redhat.com>
8806
8807         PR c++/42870
8808         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
8809         i386_pe_maybe_record_exported_symbol.
8810
8811 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
8812
8813         PR target/42924
8814         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
8815         (pa_delegitimize_address): New function.
8816
8817 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
8818
8819         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
8820         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
8821
8822 2010-02-05  Richard Guenther  <rguenther@suse.de>
8823
8824         PR lto/42762
8825         * lto-streamer-in.c (get_resolution): Deal with references
8826         to undefined functions.
8827
8828 2010-02-05  Richard Guenther  <rguenther@suse.de>
8829
8830         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
8831         (fold_const_aggregate_ref): Likewise.
8832         (ccp_fold_stmt): Substitute loads.
8833         (maybe_fold_reference): Verify types before substituting.
8834         Unshare properly.
8835         (fold_gimple_assign): Unshare properly.
8836         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
8837
8838 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
8839
8840         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
8841         for rs6000_gen_cell_microcode.
8842
8843 2010-02-04  Richard Guenther  <rguenther@suse.de>
8844
8845         PR rtl-optimization/42952
8846         * dse.c (const_or_frame_p): Remove MEM handling.
8847
8848 2010-02-04  Nick Clifton  <nickc@redhat.com>
8849
8850         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
8851         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
8852         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
8853         (mn10300_asm_output_mi_thunk): New function.
8854         (mn10300_can_output_mu_thunk): New function.
8855         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
8856         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
8857         (FUNCTION_ARG): Delete incorrect comment.
8858
8859 2010-02-03  Jason Merrill  <jason@redhat.com>
8860
8861         PR c++/40138
8862         * fold-const.c (operand_equal_p): Handle erroneous types.
8863
8864 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8865
8866         * config/h8300/h8300.md (can_delay): Fix attibute condition.
8867
8868 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8869
8870         PR rtl-optimization/42941
8871         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
8872         of xmalloc.
8873
8874 2010-02-03  Jason Merrill  <jason@redhat.com>
8875
8876         PR c++/35652
8877         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
8878
8879 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
8880
8881         PR debug/42896
8882         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
8883         (cselib_reset_table): Renamed from...
8884         (cselib_reset_table_with_next_value): ... this.
8885         (cselib_get_next_uid): Renamed from...
8886         (cselib_get_next_unknown_value): ... this.
8887         * cselib.c (next_uid): Renamed from...
8888         (next_unknown_value): ... this.
8889         (cselib_clear_table): Adjust.
8890         (cselib_reset_table): Adjust.  Renamed from...
8891         (cselib_reset_table_with_next_value): ... this.
8892         (cselib_get_next_uid): Adjust.  Renamed from...
8893         (cselib_get_next_unknown_value): ... this.
8894         (get_value_hash): Use hash.
8895         (cselib_hash_rtx): Likewise.
8896         (new_cselib_val): Adjust.  Set and dump uid.
8897         (cselib_lookup_mem): Pass next_uid as hash.
8898         (cselib_subst_to_values): Likewise.
8899         (cselib_log_lookup): Dump uid.
8900         (cselib_lookup): Pass next_uid as hash.  Adjust.
8901         (cselib_process_insn): Adjust.
8902         (cselib_init): Initialize next_uid.
8903         (cselib_finish): Adjust.
8904         (dump_cselib_table): Likewise.
8905         * dse.c (canon_address): Dump value uid.
8906         * print-rtl.c (print_rtx): Print value uid.
8907         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
8908         (dvuid): New type.
8909         (dv_uid): New function, sort of renamed from...
8910         (dv_htab_hash): ... this, reimplemented in terms of it and...
8911         (dv_uid2hash): ... this.  New.
8912         (variable_htab_eq): Drop excess assertions.
8913         (tie_break_pointers): Removed.
8914         (canon_value_cmp): Compare uids.
8915         (variable_post_merge_New_vals): Print uids.
8916         (vt_add_function_parameters): Adjust.
8917         (vt_initialize): Reset table.  Adjust.
8918
8919 2010-02-03  Richard Guenther  <rguenther@suse.de>
8920
8921         PR tree-optimization/42944
8922         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
8923         (call_may_clobber_ref_p_1): Likewise.  Properly handle
8924         malloc and calloc clobbering errno.
8925
8926 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
8927
8928         * doc/invoke.texi: Fix name of sched1 dump.
8929
8930         * opts.c (decode_options): Set flag_tree_switch_conversion
8931         only conditionally on optimize >= 2.
8932
8933         * gcse.c: Assorted comment fixes in pass description.
8934
8935 2010-02-03  Anthony Green  <green@moxielogic.com>
8936
8937         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
8938         nop padding in order to maintain alignment of storage location of
8939         target function address.
8940         (moxie_trampoline_init): Store target function address at newly
8941         aligned location.
8942         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
8943         to 32.
8944         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
8945
8946 2010-02-03  Richard Guenther  <rguenther@suse.de>
8947
8948         PR middle-end/42927
8949         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
8950
8951 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8952
8953         * config.gcc: Reenable check for obsolete targets.
8954         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
8955         mips-sgi-irix6.[0-4]*.
8956
8957 2010-02-02  Nick Clifton  <nickc@redhat.com>
8958
8959         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
8960         constant size of 4 as being the same as 0.
8961         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
8962         can take values in the range 0..4.
8963
8964 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
8965
8966         PR java/41991
8967         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
8968         as _darwin10_Unwind_FindEnclosingFunction().
8969         * libgcc-libsystem.ver: New.
8970
8971 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
8972
8973         PR target/41399
8974         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
8975         implicitly set registers.
8976
8977 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
8978
8979         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
8980         (arm_override_options): Allow automatic selection of the thread
8981         pointer register if thumb2.
8982         (legitimize_pic_address): Improve code sequences for Thumb2.
8983         (arm_call_tls_get_addr): Likewise.
8984         (legitimize_tls_address): Likewise.
8985         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
8986         (pic_load_addr_32bit): ... this.  New named pattern.
8987         * thumb2.md (pic_load_addr_thumb2): Delete.
8988         (pic_load_dot_plus_four): Delete.
8989         (tls_load_dot_plus_four): New named pattern.
8990
8991 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8992
8993         PR libgomp/29986
8994         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
8995         Document fix for TLS bug.
8996
8997 2010-01-31  Richard Guenther  <rguenther@suse.de>
8998
8999         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9000         conservatively correct.
9001
9002 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9003
9004         PR target/42850
9005         Revert:
9006         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9007
9008         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9009
9010 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9011
9012         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9013
9014 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9015
9016         * config.gcc: Adjust order of makefile fragments for mingw targets.
9017
9018 2010-01-31  Richard Guenther  <rguenther@suse.de>
9019
9020         PR middle-end/42898
9021         * gimplify.c (gimplify_init_constructor): For volatile LHS
9022         initialize a temporary.
9023
9024 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9025
9026         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9027         --with-headers
9028         * configure: Regenerate.
9029
9030 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9031
9032         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9033         the same alias set and their sizes different constantness.
9034         (aliasing_component_refs_p): Revert 2009-10-24 change.
9035
9036 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9037
9038         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9039         unused.
9040
9041 2010-01-29  Richard Guenther  <rguenther@suse.de>
9042
9043         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9044         Assert we successfully updated the call.
9045
9046 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9047
9048         PR rtl-optimization/42889
9049         * df.h (df_set_bb_dirty_nonlr): New prototype.
9050         * df-core.c (df_set_bb_dirty_nonlr): New function.
9051         * df-scan.c (df_insn_rescan): Call it instead of
9052         df_set_bb_dirty for DEBUG_INSNs.
9053
9054 2010-01-29  Richard Guenther  <rguenther@suse.de>
9055
9056         PR middle-end/37448
9057         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9058         quadratic behavior in most cases.
9059
9060 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9061
9062         PR target/42891
9063         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9064         in the call to gen_x86_movsicc_0_m1.
9065
9066 2010-01-28  Richard Guenther  <rguenther@suse.de>
9067
9068         PR tree-optimization/42871
9069         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9070
9071 2010-01-28  Richard Guenther  <rguenther@suse.de>
9072
9073         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9074         into call arguments.
9075
9076 2010-01-28  Richard Guenther  <rguenther@suse.de>
9077
9078         PR middle-end/42883
9079         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9080         the forwarder if the destination is an EH landing pad.
9081
9082 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9083
9084         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9085         block list passed to gimple_duplicate_sese_tail.
9086         (parallelize_loops): Avoid parallelization when the function
9087         has_nonlocal_label.
9088         Avoid parallelization when the preheader is IRREDUCIBLE.
9089         Try to optimize when estimated_loop_iterations_int is unresolved.
9090         Add the loop's location to the dump file.
9091         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9092         (gimple_duplicate_sese_tail): Remove the check for the latch.
9093         Redirect nexits to the exit block.
9094         Remove handling of the incoming edges to the latch.
9095         Redirect the backedge from the copied latch to the exit bb.
9096
9097 2010-01-28  Michael Matz  <matz@suse.de>
9098
9099         PR target/42881
9100         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9101         Wrap force_reg into a sequence, emit it before user.
9102
9103 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9104
9105         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9106         (arm_rev): New.
9107         (arm_legacy_rev): Likewise.
9108         (thumb_legacy_rev): Likewise.
9109
9110 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9111
9112         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9113         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9114         on MEM's address failed, try avoid_constant_pool_reference and
9115         recurse if it returned something different.
9116         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9117         address, try avoid_constant_pool_reference and recurse if it
9118         returned something different.
9119         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9120         address and avoid_constant_pool_reference returned something
9121         different, don't set have_address.
9122
9123 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
9124
9125         PR debug/42861
9126         * var-tracking.c (val_store): Add modified argument, obey it.
9127         Adjust callers.
9128         (count_uses): Move down logging of main.
9129         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9130         don't need resolution.
9131         (emit_notes_in_bb): Likewise.
9132
9133 2010-01-27  Richard Guenther  <rguenther@suse.de>
9134
9135         PR middle-end/42878
9136         * tree-inline.c (remap_decl): Delay remapping of SSA name
9137         default definitions until we need them.
9138
9139 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9140
9141         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9142         (rs6000_delegitimize_address): New function.
9143
9144         * config/s390/s390.c (s390_delegitimize_address): Call
9145         delegitimize_mem_from_attrs.
9146
9147         PR middle-end/42874
9148         * tree-inline.c (cannot_copy_type_1): Removed.
9149         (copy_forbidden): Don't forbid copying of functions containing
9150         records/unions with variable length fields.
9151
9152 2010-01-27  Christian Bruel  <christian.bruel@st.com>
9153
9154         Revert:
9155         PR target/42841
9156         * config/sh/sh.c (find_barrier): Increase length for non delayed
9157         conditional branches.
9158
9159 2010-01-27  Matthias Klose  <doko@ubuntu.com>
9160
9161         * configure.ac (gnu-unique-object): Fix ldd version check.
9162         * configure: Regenerate.
9163
9164 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9165
9166         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
9167         HAVE_GNU_AS value.
9168         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
9169         Test for HAVE_GNU_AS value.
9170
9171 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9172
9173         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
9174         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
9175         INT64_TYPE): Define.
9176         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
9177         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9178         INT_LEAST64_TYPE): Define.
9179         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
9180         UINT_LEAST64_TYPE): Define.
9181         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
9182         INT_FAST64_TYPE): Define.
9183         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9184         UINT_FAST64_TYPE): Define.
9185         (INTMAX_TYPE, UINTMAX_TYPE): Define.
9186         (INTPTR_TYPE, UINTPTR_TYPE): Define.
9187         (SIG_ATOMIC_TYPE): Define.
9188
9189 2010-01-26  Richard Guenther  <rguenther@suse.de>
9190
9191         * df-scan.c (df_scan_set_bb_info): Remove assert.
9192         (df_insn_rescan_debug_internal): Merge asserts.
9193         (df_install_ref): Likewise.
9194         (df_mark_reg): Use bitmap_set_range.
9195         (df_hard_reg_used_p): Remove assert.
9196         (df_hard_reg_used_count): Likewise.
9197
9198 2010-01-26  Richard Guenther  <rguenther@suse.de>
9199
9200         PR rtl-optimization/42685
9201         * web.c (web_main): Ignore DEBUG_INSNs.
9202
9203 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
9204
9205         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
9206
9207         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
9208         Fix types of fndecl and arglist parameters.
9209
9210 2010-01-26  Richard Guenther  <rguenther@suse.de>
9211
9212         PR middle-end/42806
9213         * tree-eh.c (unsplit_eh): Skip debug insns.
9214
9215 2010-01-26  Richard Guenther  <rguenther@suse.de>
9216
9217         PR tree-optimization/42250
9218         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
9219
9220 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
9221
9222         PR fortran/42866
9223         * omp-low.c (expand_omp_sections): Only use single_pred if
9224         l2_bb is single_pred_p.
9225
9226 2010-01-25  Christian Bruel  <christian.bruel@st.com>
9227
9228         PR target/42841
9229         * config/sh/sh.c (find_barrier): Increase length for non delayed
9230         conditional branches.
9231         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
9232
9233 2010-01-24  David S. Miller  <davem@davemloft.net>
9234
9235         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
9236         define if not using GAS.
9237         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9238         Likewise.  Delete SECTION_MERGE code, which is only applicable
9239         when using GAS.
9240
9241 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
9242
9243         PR c++/42748
9244         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
9245         mangling of va_list in system headers.
9246
9247 2010-01-23  Toon Moene  <toon@moene.org>
9248
9249         * tree-predcom.c (combine_chains): Return NULL, not false.
9250
9251 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
9252
9253         * tree-loop-distribution.c (distribute_loop): Fix declaration and
9254         initialization of variable res to agree with return type.
9255
9256 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
9257
9258         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
9259         * tree-sra.c: Add include of expr.h.
9260
9261 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
9262
9263         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
9264         insert the debug stmt on the single non-EH edge from the stmt.
9265
9266 2010-01-22  Richard Henderson  <rth@redhat.com>
9267
9268         PR tree-opt/42833
9269         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
9270         the RHS until after generate_subtree_copies has insertted its
9271         code before the current statement.
9272
9273 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
9274
9275         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
9276
9277         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
9278
9279 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9280
9281         PR tree-optimization/42585
9282         * tree-sra.c (struct access): New field grp_total_scalarization.
9283         (dump_access): Dump the new field.
9284         (should_scalarize_away_bitmap): New variable.
9285         (cannot_scalarize_away_bitmap): Likewise.
9286         (sra_initialize): Allocate new bitmaps.
9287         (sra_deinitialize): Free new bitmaps.
9288         (create_access_1): New function.
9289         (create_access): Parts moved to create_access_1.
9290         (type_consists_of_records_p): New function.
9291         (completely_scalarize_record): Likewise.
9292         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
9293         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
9294         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
9295         access.
9296         (analyze_all_variable_accesses): Completely scalarize small eligible
9297         records.
9298
9299 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9300
9301         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
9302
9303 2010-01-21  Andrew Haley  <aph@redhat.com>
9304
9305         * gcc.c (process_command): Move lang_specific_driver before
9306         setting cc_libexec_prefix.
9307
9308 2010-01-21  Richard Guenther  <rguenther@suse.de>
9309
9310         PR middle-end/19988
9311         * fold-const.c (negate_expr_p): Pretend only negative
9312         real constants are easily negatable.
9313
9314 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
9315             Jason Merrill  <jason@redhat.com>
9316
9317         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
9318         (TYPE_TRANSPARENT_AGGR): this, for union and record.
9319         * calls.c (initialize argument_information): Handle it.
9320         * c-common.c (handle_transparent_union_attribute): Use new name.
9321         * c-decl.c (finish_struct): Ditto.
9322         * c-typeck.c (type_lists_compatible_p): Ditto.
9323         (convert_for_assignment): Use new name and also handle record.
9324         * function.c (aggregate_value_p): Handle it.
9325         (pass_by_reference): Ditto.
9326         (assign_parm_data_types): Ditto.
9327         * print-tree.c (print_node): Ditto.
9328         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
9329         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
9330         * tree.c (first_field): New fn.
9331
9332 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9333
9334         PR target/42818
9335         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
9336         even when linking statically, for now.
9337
9338 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
9339
9340         PR debug/42715
9341         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
9342         without a cselib val.
9343         (count_uses): Accept MO_VAL_SET with no val on stores.
9344         (add_stores): Likewise.
9345
9346 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9347
9348         * var-tracking.c (check_value_val): Add a compile time assertion.
9349         (dv_is_decl_p): Simplify.
9350         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
9351         gcc_assert if ENABLE_CHECKING.
9352
9353 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
9354
9355         PR debug/42782
9356         * var-tracking.c: Include tree-flow.h.
9357         (mem_dies_at_call): New.
9358         (dataflow_set_preserve_mem_locs): Use it.
9359         (dataflow_set_remove_mem_locs): Likewise.
9360         (dump_var): Renamed from dump_variable.  Adjust all callers.
9361         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
9362         * Makefile.in (var-tracking.o): Adjust deps.
9363
9364 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
9365
9366         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
9367
9368 2010-01-20  Richard Guenther  <rguenther@suse.de>
9369
9370         PR tree-optimization/42717
9371         * tree-ssa-dce.c (get_live_post_dom): Remove.
9372         (forward_edge_to_pdom): Take an arbitrary edge to copy
9373         degenerate PHI args from.
9374         (remove_dead_stmt): Use the first post-dominator even if it
9375         does not contain live statements as redirection destination.
9376
9377 2010-01-20  Richard Guenther  <rguenther@suse.de>
9378
9379         * tree-inline.c (estimate_num_insns): Handle EH builtins.
9380
9381 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9382
9383         * sel-sched.c (create_speculation_check): Remove set but not used
9384         variable twin.
9385         (try_transformation_cache): Remove set but not used variable ds.
9386         (calculate_privileged_insns): Remove set but not used variables
9387         cur_insn and min_spec_insn.
9388         (find_best_expr): Remove set but not used variable avail_n.
9389         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
9390         variable e.
9391         * cgraphunit.c (assemble_thunk): Remove set but not used variable
9392         false_label.
9393         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
9394         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
9395         new_scop_exit_edge.
9396
9397 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
9398
9399         PR bootstrap/42786
9400         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
9401         cpu types.  Add support for *-sse3 cpu types.
9402         (x86_64-*-*): Ditto.
9403
9404 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9405
9406         PR middle-end/42803
9407         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
9408         argument, call initializer_constant_valid_p_1 instead of
9409         initializer_constant_valid_p, pass CACHE to it, return NULL
9410         immediately if first call returns NULL.
9411         (initializer_constant_valid_p_1): New function.
9412         (initializer_constant_valid_p): Use it.
9413
9414 2010-01-20  Thomas Quinot  <quinot@adacore.com>
9415
9416         * tree.def (PLACEHOLDER_EXPR): Fix comment.
9417
9418 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9419
9420         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
9421         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
9422         (loc_list_from_tree): Don't handle unsigned division.  Handle
9423         signed modulo using DW_OP_{over,over,div,mul,minus}.
9424         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
9425         modulo instead of signed.
9426
9427 2010-01-20  DJ Delorie  <dj@redhat.com>
9428
9429         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
9430         (Fpa): Pass it
9431         (h8300_emit_stack_adjustment): Propogate it.
9432         (push): Pass it.
9433         (h8300_expand_prologue): Likewise.
9434         (h8300_expand_epilogue): Likewise.
9435
9436 2010-01-19  Michael Matz  <matz@suse.de>
9437
9438         PR tree-optimization/41783
9439         * tree-data-ref.c (toplevel): Include flags.h.
9440         (dump_data_dependence_relation):  Also dump the inputs if the
9441         result will be unknown.
9442         (split_constant_offset_1): Look through some conversions.
9443         * tree-predcom.c (determine_roots_comp): Restart a new chain if
9444         the offset from last element is too large.
9445         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
9446         (reassociate_to_the_same_stmt): Handle vector registers.
9447         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
9448         (e.g. conversions).
9449         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
9450         wide_prolog_niters argument, emit widening instructions.
9451         (vect_do_peeling_for_alignment): Adjust caller, use widened
9452         variant of the iteration cound.
9453         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
9454
9455 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9456
9457         PR target/38697
9458         * config/arm/neon-testgen.m (emit_automatics): New parameter
9459         features. Adjust for Fixed_return_reg feature.
9460         (test_intrinsic): Call emit_automatics with new feature.
9461         * config/arm/neon.ml: Update copyright years.
9462         (features): New Fixed_return_reg feature.
9463         (ops): Update feature for Vget_low.
9464
9465 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
9466
9467         PR tree-optimization/42719
9468         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
9469         stmt uses.
9470
9471         PR debug/42728
9472         * fwprop.c (all_uses_available_at): Return false if def_set dest
9473         is a REG that is used in def_insn.
9474
9475 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
9476
9477         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
9478
9479         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
9480         Add argument names.
9481
9482         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
9483
9484         * target.h (struct gcc_target) <secondary_reload>: Change type
9485         of last argument to secondary_reload_info *.
9486
9487 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
9488
9489         PR target/42774
9490         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
9491         memory references with unaligned offsets.  Remove CQImode handling.
9492         (unaligned_memory_operand): Return 1 for memory references with
9493         unaligned offsets.  Remove CQImode handling.
9494
9495 2010-01-18  Richard Guenther  <rguenther@suse.de>
9496
9497         PR middle-end/39954
9498         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
9499         builtin calls.
9500
9501 2010-01-18  Richard Guenther  <rguenther@suse.de>
9502
9503         PR tree-optimization/42781
9504         * tree-ssa-structalias.c (find_what_var_points_to): Skip
9505         restrict processing only if the original variable was artificial.
9506
9507 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
9508
9509         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
9510         find number of popped argument bytes.
9511
9512         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
9513         Fix the text that describes the return value for invalid insns.
9514
9515         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
9516
9517         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
9518         Clarify what 'cost of the -dependence' is.  Fix quoting.
9519
9520         * toplev.c (default_get_pch_validity): Rename argument to "sz".
9521         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
9522
9523 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
9524
9525         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
9526         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
9527
9528 2010-01-17  Richard Guenther  <rguenther@suse.de>
9529
9530         PR middle-end/42248
9531         * function.c (split_complex_args): Take a VEC to modify.
9532         (assign_parms_augmented_arg_list): Build a VEC instead of
9533         a chain of PARM_DECLs.
9534         (assign_parms_unsplit_complex): Take a VEC of arguments.
9535         Do not fixup unmodified parms.
9536         (assign_parms): Deal with the VEC.
9537         (gimplify_parameters): Likewise.
9538
9539 2010-01-17  Richard Guenther  <rguenther@suse.de>
9540
9541         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
9542         node existence check.
9543         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
9544         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
9545         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
9546         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
9547         (gimple_execute_on_growing_pred): Likewise.
9548
9549 2010-01-17  Richard Guenther  <rguenther@suse.de>
9550
9551         PR tree-optimization/42773
9552         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
9553         (compute_antic_aux): Likewise.
9554         (compute_partial_antic_aux): Likewise.
9555
9556 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
9557
9558         PR debug/42767
9559         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
9560         and US_TRUNCATE.
9561
9562 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
9563
9564         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
9565         appearance.
9566
9567         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
9568         Fix markup for strict argument.
9569
9570         (TARGET_SCHED_REORDER2): Fix argument types.
9571
9572         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
9573         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
9574
9575         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
9576         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
9577
9578         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
9579         Add argument name.
9580
9581         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
9582         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
9583         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
9584         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
9585         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
9586
9587         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
9588
9589         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
9590
9591         (TARGET_ASM_RELOC_RW_MASK): Add return type.
9592         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
9593
9594         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
9595
9596         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
9597         Use prototype.
9598
9599         (TARGET_ASM_NAMED_SECTION): Fix argument list.
9600
9601         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
9602         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
9603
9604         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
9605
9606         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
9607
9608         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
9609         referring to it.  Fix language.
9610
9611         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
9612
9613         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
9614
9615         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
9616
9617         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
9618
9619         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
9620         '@var{stream}.  Remove stray 'and'.
9621
9622         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
9623
9624         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
9625
9626         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
9627
9628         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
9629         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
9630
9631         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
9632         Fix description of return value.
9633         Rename argument "sz" to "len."
9634
9635         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
9636         Clarify meaning of 'true' return value.
9637
9638         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
9639
9640         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
9641         rep_mode versus mode_rep.
9642
9643         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
9644
9645         (TARGET_BUILTIN_DECL): Fix name.
9646
9647         (TARGET_COMMUTATIVE_P): Fix type of first argument.
9648
9649         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
9650
9651         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
9652
9653         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
9654
9655         (TARGET_RELAXED_ORDERING): Use @deftypevr.
9656
9657         (TARGET_GET_DRAP_RTX): Note that this is a hook.
9658         Clarify language.
9659
9660         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
9661         Rename argument tm_fn to md_fn.
9662
9663         (TARGET_OPTION_PRINT): Fix argument list.
9664
9665 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
9666
9667         PR target/42664
9668         * config/i386/i386.c (ix86_fixup_binary_operands):
9669         Revert FMA4 fixup of operands.
9670
9671 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9672
9673         PR gcc/42525
9674         * Makefile.in (write_entries_to_file, install-plugin):
9675         Use \012 instead of \n with tr.
9676
9677 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
9678
9679         * configure.ac (HAVE_AS_REF): New C macro.
9680         * configure: Regenerate.
9681         * config.in: Likewise.
9682         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
9683         if HAVE_AS_REF.
9684         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
9685         if HAVE_AS_REF.
9686
9687 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
9688
9689         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
9690
9691         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
9692
9693         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
9694
9695         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
9696
9697         (TARGET_IN_SMALL_DATA_P): Fix argument type.
9698
9699         (TARGET_BINDS_LOCAL_P): Fix argument type.
9700
9701         (TARGET_ASM_FILE_END): Use prototype.
9702
9703         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
9704
9705         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
9706
9707         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
9708
9709         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
9710
9711         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
9712         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
9713
9714         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
9715         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
9716
9717         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
9718         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
9719         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
9720         (TARGET_ADDR_SPACE_CONVERT): Likewise.
9721
9722         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
9723
9724         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
9725
9726         (TARGET_INIT_BUILTINS): Use prototype.
9727
9728         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
9729         Put 'const char *' in braces.  Fix parameter types.
9730         (TARGET_INVALID_CONVERSION): Fix parameter types.
9731         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
9732         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
9733
9734         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
9735         Fix argument type.
9736
9737         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
9738
9739         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
9740
9741 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
9742
9743         * doc/tm.texi (TARGET_HELP): Fix return type.
9744
9745         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
9746         in braces.  Fix argument types.
9747
9748         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
9749
9750         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
9751
9752         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
9753
9754         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
9755         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
9756
9757         (TARGET_MANGLE_TYPE): Fix argument types.
9758
9759         (TARGET_IRA_COVER_CLASSES): Use prototype.
9760
9761         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
9762
9763         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
9764
9765         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
9766
9767         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
9768
9769         (TARGET_CALLEE_COPIES): Fix argument types.
9770
9771         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
9772
9773         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
9774
9775         (TARGET_FUNCTION_VALUE): Fix argument types.
9776
9777         (TARGET_RETURN_IN_MSB): Fix argument type.
9778
9779         (TARGET_RETURN_IN_MEMORY): Fix argument types.
9780
9781         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
9782
9783         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
9784
9785         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
9786         agree with return type.
9787
9788         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
9789
9790 2010-01-15  Jing Yu  <jingyu@google.com>
9791
9792         PR rtl-optimization/42691
9793         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
9794         a pseudo to a constant and are merged, and adjust comments.
9795
9796 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
9797
9798         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
9799
9800 2010-01-15  Richard Guenther  <rguenther@suse.de>
9801
9802         PR middle-end/42739
9803         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
9804         labels of computed or non-local gotos to the destination.
9805         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
9806         landing pad label is the first label.
9807
9808 2010-01-15  Richard Guenther  <rguenther@suse.de>
9809
9810         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
9811
9812 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9813
9814         PR target/42747
9815         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
9816         to allow generation of the xssqrtdp instruction on power7.
9817         (sqrtdf2_fpr): Ditto.
9818
9819 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9820
9821         PR middle-end/42674
9822         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
9823         functions with noreturn attribute.
9824
9825         PR c++/42608
9826         * varasm.c (declare_weak): Add weak attribute to decl if it
9827         doesn't have one already.
9828         (assemble_external): Only add decls to weak_decls if they also
9829         have weak attribute.
9830
9831 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
9832
9833         * var-tracking.c (var_reg_delete): Don't delete the association
9834         between REGs and values or one-part variables if the register
9835         isn't clobbered.
9836
9837 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9838
9839         PR debug/42657
9840         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
9841         because its first operand is a non-localized variable.
9842
9843 2010-01-14  Martin Jambor  <mjambor@suse.cz>
9844
9845         PR tree-optimization/42706
9846         * tree-sra.c (encountered_recursive_call): New variable.
9847         (encountered_unchangable_recursive_call): Likewise.
9848         (sra_initialize): Initialize both new variables.
9849         (callsite_has_enough_arguments_p): New function.
9850         (scan_function): Call decl and flags check only for IPA-SRA, check
9851         whether there is a recursive call and whether it has enough arguments.
9852         (all_callers_have_enough_arguments_p): New function.
9853         (convert_callers): Look for recursive calls only when
9854         encountered_recursive_call is set.
9855         (ipa_early_sra): Bail out either if
9856         !all_callers_have_enough_arguments_p or
9857         encountered_unchangable_recursive_call.
9858
9859 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9860
9861         * sel-sched.c: Add 2010 to copyright years.
9862         * sel-sched-ir.c: Likewise.
9863         * sel-sched-ir.h: Likewise.
9864
9865 2010-01-14  Martin Jambor  <mjambor@suse.cz>
9866
9867         PR tree-optimization/42714
9868         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
9869         constructors specially.
9870
9871 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9872
9873         * config/i386/drivers-i386.c (detect_caches_intel):
9874         Add l2sizekb parameter and fill in.
9875         (host_detect_local_cpu): Add l2sizekb, fill in.
9876         Add Atom small cache heuristic.
9877
9878 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9879
9880         * config/i386/drivers-i386.c (detect_caches_cpuid4):
9881         Add level3 parameter and fill in.
9882         (detect_caches_intel): Handle level3 cache.
9883
9884 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9885
9886         * config/i386/drivers-i386.c (host_detect_local_cpu):
9887         Fix core duo detection.
9888
9889 2010-01-14  Andi Kleen  <ak@linux.intel.com>
9890
9891         * config/i386/drivers-i386.c (host_detect_local_cpu):
9892         Fix Atom detection.
9893
9894 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9895
9896         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
9897         (rs6000_variable_issue_1): this.  Use...
9898         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
9899
9900 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9901
9902         * sel-sched-ir.c (sel_restore_other_notes): Rename to
9903         sel_restore_notes.  Update all callers.  Call reemit_notes
9904         for all insns.
9905
9906 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9907
9908         PR rtl-optimization/42246
9909         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
9910         loops.
9911
9912 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9913
9914         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
9915         all successors is the same as number of successors in current region.
9916
9917 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9918
9919         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
9920         to rename is not separable.  Otherwise check that its LHS is not NULL.
9921
9922 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9923
9924         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
9925
9926 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9927
9928         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
9929         available registers when failed to discover LHS register class.
9930         Fix indentation.  Update comment.
9931
9932 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9933             Alexander Monakov  <amonakov@ispras.ru>
9934
9935         PR rtl-optimization/42389
9936         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
9937         to can_issue_more.
9938         (advance_state_on_fence): Likewise.
9939         (sel_target_adjust_priority): Print debug output only when
9940         sched_verbose >= 4, not 2.
9941         (get_expr_cost): Do not issue all unique insns on the next cycle.
9942         (fill_insns): Initialize can_issue_more from the value saved
9943         with the fence.
9944         * sel-sched-ir.c (flist_add): New parameter issue_more.
9945         Init FENCE_ISSUE_MORE with it.
9946         (merge_fences): Likewise.
9947         (init_fences): Update call to flist_add.
9948         (add_to_fences, add_clean_fence_to_fences)
9949         (add_dirty_fence_to_fences): Likewise.
9950         (move_fence_to_fences): Update call to merge_fences.
9951         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
9952         sched groups.
9953         * sel-sched-ir.h (struct _fence): New field issue_more.
9954         (FENCE_ISSUE_MORE): New accessor macro.
9955
9956 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9957
9958         PR rtl-optimization/42388
9959         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
9960         that have no predecessors nor successors.  Do not call move_bb_info
9961         for empty blocks outside of current region.
9962
9963 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9964
9965         PR rtl-optimization/42294
9966         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
9967         * sel-sched.c (move_exprs_to_boundary): Transitively add all
9968         originators' originators.
9969
9970 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
9971
9972         PR rtl-optimization/39453
9973         PR rtl-optimization/42246
9974         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
9975         for pipelining_p.
9976         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
9977
9978 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
9979             Alexander Monakov  <amonakov@ispras.ru>
9980
9981         PR middle-end/42245
9982         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
9983         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
9984         argument.  Update all callers.
9985         (tidy_control_flow): ... and here.  Recompute topological order
9986         of basic blocks in region if necessary.
9987         (sel_redirect_edge_and_branch): Change return type.  Return true
9988         if topological order might have been invalidated.
9989         (purge_empty_blocks): Export and move from...
9990         * sel-sched.c (purge_empty_blocks): ... here.
9991         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
9992         (maybe_tidy_empty_bb): Delete prototype.
9993         (purge_empty_blocks): Declare.
9994
9995 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
9996
9997         PR rtl-optimization/42249
9998         * sel-sched.c (try_replace_dest_reg): When chosen register
9999         and original register is the same, do not bail out early, but
10000         still check all original insns for validity of replacing destination
10001         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10002         in this case.
10003
10004 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10005
10006         PR c/42721
10007         Port from no-undefined-overflow branch:
10008         2009-03-09  Richard Guenther  <rguenther@suse.de>
10009
10010         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10011
10012 2010-01-14  Richard Guenther  <rguenther@suse.de>
10013
10014         PR lto/42665
10015         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10016
10017 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10018
10019         PR tree-optimization/42709
10020         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10021         as scalar type in creation of constant vector operand.
10022
10023 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10024
10025         PR testsuite/42414
10026         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10027         (check-parallel-%): Match `testsuite' directory component only
10028         at the end.
10029
10030 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10031
10032         PR translation/39521
10033         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10034         strings with _().
10035
10036 2010-01-13  Richard Guenther  <rguenther@suse.de>
10037
10038         PR tree-optimization/42730
10039         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10040         offset zero.
10041
10042 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10043
10044         PR target/pr42542
10045         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10046         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10047         them signed.
10048
10049 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10050
10051         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10052         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10053         ___umulsi3_highpart.
10054
10055         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10056         rather than schedule_insns if the pass is enabled.
10057
10058 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10059
10060         PR tree-optimization/42704
10061         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10062         SSA_NAMEs.
10063
10064 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10065
10066         PR tree-optimization/42703
10067         * tree-sra.c (analyze_access_subtree): Check that we can build a
10068         reference to the original data within the aggregate.
10069
10070 2010-01-13  Richard Guenther  <rguenther@suse.de>
10071
10072         PR tree-optimization/42705
10073         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10074
10075 2010-01-13  Richard Guenther  <rguenther@suse.de>
10076
10077         PR middle-end/42716
10078         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10079
10080 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10081
10082         PR debug/41371
10083         * var-tracking.c (values_to_unmark): New variable.
10084         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10085         values_to_unmark vector.  Moved body to...
10086         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10087         instead queue it into values_to_unmark vector.
10088         (vt_find_locations): Free values_to_unmark vector.
10089
10090 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10091
10092         * config/s390/s390.c (override_options): Set
10093         default of max-pending-list-length to 256
10094
10095 2010-01-13  Richard Guenther  <rguenther@suse.de>
10096
10097         PR lto/42678
10098         * tree-pass.h (PROP_gimple_lcx): New.
10099         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10100         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10101         before the final cleanup_eh.
10102         (dump_properties): Dump PROP_gimple_lcx.
10103         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10104         (tree_lower_complex_O0): Remove.
10105         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10106         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10107         tree_lower_complex, schedule TODO_update_ssa.
10108         * lto-streamer-out.c (output_function): Stream the functions
10109         properties.
10110         * lto-streamer-in.c (input_function): Likewise.
10111         (lto_read_body): Do not override them here.
10112
10113 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10114
10115         PR c/42708
10116         * c-typeck.c (build_c_cast): Fold value cast to union type before
10117         wrapping it in a CONSTRUCTOR.
10118
10119 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10120
10121         PR rtl-optimization/42699
10122         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10123         involved.
10124
10125 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10126
10127         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10128         SUBTARGET_WARN_UNUSED_SPEC): Move ...
10129         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10130         SUBTARGET_WARN_UNUSED_SPEC): ... here
10131         * config/mips/iris5.h (LIBGCC_SPEC): Define.
10132
10133 2010-01-12  Julian Brown  <julian@codesourcery.com>
10134
10135         * config/arm/neon-schedgen.ml (Utils): Don't try to
10136         open missing module.
10137         (find_with_result): New.
10138
10139 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10140
10141         PR debug/42662
10142         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10143         sharing when canonicalizing ({lt,ge}u (plus a b) b).
10144
10145         PR tree-optimization/42645
10146         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
10147         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10148         decl_map, set processing_debug_stmt to -1 and return name without
10149         any remapping.
10150
10151 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10152
10153         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
10154         binutils version, and reword target configuration description.
10155
10156 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10157
10158         * config/avr/avr.h (LINKER_NAME): Remove.
10159
10160 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
10161
10162         PR target/42416
10163         * config/rs6000/rs6000.c (rs6000_override_options): On targets
10164         that support VSX, warn for -mno-altivec if vsx is not disabled,
10165         and disable vsx.
10166
10167 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
10168             Shujing Zhao  <pearly.zhao@oracle.com>
10169
10170         PR translation/42469
10171         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
10172         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
10173         character between option name and help text.
10174         * c.opt (imultilib): Likewise.
10175
10176 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
10177
10178         * lto-streamer-out.c (output_unreferenced_globals): Output static
10179         variables.
10180
10181 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
10182
10183         PR rtl-optimization/42621
10184         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
10185         optimizing for size.
10186         (duplicate_computed_gotos): Remove now-redundant check.
10187
10188 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
10189
10190         PR target/37454
10191         * configure.ac: Save and restore LDFLAGS and LIBS
10192         * configure: Regenerate.
10193
10194 2010-01-10  Richard Guenther  <rguenther@suse.de>
10195
10196         PR middle-end/42667
10197         * builtins.c (fold_builtin_strlen): Add type argument and
10198         convert the resulting length to it.
10199         (fold_builtin_1): Adjust.
10200
10201 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
10202
10203         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
10204         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
10205         1 insn.
10206         (num_insns_constant_wide): Adjust for that change.
10207
10208 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10209
10210         PR debug/42631
10211         * web.c (union_defs): Add used argument, to combine uses of
10212         uninitialized regs.
10213         (entry_register): Adjust type and tests of used argument.
10214         (web_main): Widen used for new use.  Pass it to union_defs.
10215         * df.h (union_defs): Adjust prototype.
10216
10217 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10218
10219         PR debug/42630
10220         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
10221         uses in new incoming argument.  Free body.
10222         (reset_debug_uses_in_loop): New.
10223         (analyze_insn_to_expand_var): Call the latter if the former found
10224         anything.  Fix whitespace.  Reject invalid dest overlaps before
10225         going through all insns in the loop.
10226
10227 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10228
10229         PR debug/42629
10230         * haifa-sched.c (dying_use_p): Debug insns don't count.
10231
10232 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10233
10234         PR middle-end/42363
10235         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
10236         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
10237         (verify_gimple_call): Reject LHS in noreturn calls.
10238
10239 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10240
10241         PR debug/42604
10242         PR debug/42395
10243         * tree-vect-loop-manip.c (adjust_info): New type.
10244         (adjust_vec): New pointer to vector.
10245         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
10246         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
10247         (slpeel_update_phis_for_duplicate_loop): Use them.
10248         (slpeel_update_phi_nodes_for_guard1): Likewise.
10249         (slpeel_update_phi_nodes_for_guard2): Likewise.
10250         (slpeel_tree_peel_loop_to_edge): Likewise.
10251         (vect_update_ivs_after_vectorizer): Likewise.
10252
10253 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10254
10255         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
10256         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
10257
10258 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10259
10260         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
10261         bogus uninitialized warning.
10262
10263 2010-01-09  Richard Guenther  <rguenther@suse.de>
10264
10265         PR middle-end/42512
10266         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
10267         the evolution is compatible with the initial condition.
10268
10269 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
10270
10271         * gcc.c (process_command): Update copyright notice dates.
10272         * gcov.c (print_version): Likewise.
10273         * gcov-dump.c (print_version): Likewise.
10274         * mips-tfile.c (main): Likewise.
10275         * mips-tdump.c (main): Likewise.
10276
10277 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10278
10279         PR target/41885
10280         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
10281         (rotlhi3): Delete.
10282         (rotlhi3_8): Delete.
10283         (rotlsi3): Delete.
10284         (rotlsi3_8): Delete.
10285         (rotlsi3_16): Delete.
10286         (rotlsi3_24): Delete.
10287         (rotl<mode>3): New.
10288         (*rotw<mode>3): New.
10289         (*rotb<mode>3): New.
10290         * config/avr/avr.c (avr_rotate_bytes): New function.
10291         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
10292
10293 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
10294
10295         PR target/37454
10296         * configure.ac: Modify -rdynamic check.
10297         * configure: Regenerate.
10298
10299 2010-01-08  DJ Delorie  <dj@redhat.com>
10300
10301         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
10302         register popping order.
10303
10304 2010-01-08  Richard Guenther  <rguenther@suse.de>
10305
10306         PR lto/42528
10307         * c.opt (fsigned-char): Also let LTO handle this option.
10308         (funsigned-char): Likewise.
10309
10310 2010-01-07  Richard Guenther  <rguenther@suse.de>
10311
10312         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
10313         (gimple_op): Likewise.
10314         (gimple_op_ptr): Likewise.
10315         (gimple_assign_set_lhs): Remove gcc_assert.
10316         (gimple_assign_set_rhs1): Likewise.
10317         (gimple_assign_set_rhs2): Likewise.
10318         (gimple_call_set_lhs): Likewise.
10319         (gimple_call_set_fn): Likewise.
10320         (gimple_call_set_fndecl): Likewise.
10321         (gimple_call_fndecl): Likewise.
10322         (gimple_call_return_type): Likewise.
10323         (gimple_call_set_chain): Likewise.
10324         (gimple_call_num_args): Likewise.
10325         (gimple_call_set_arg): Likewise.
10326         (gimple_cond_set_code): Likewise.
10327         (gimple_cond_set_lhs): Likewise.
10328         (gimple_cond_set_rhs): Likewise.
10329         (gimple_cond_set_true_label): Likewise.
10330         (gimple_cond_set_false_label): Likewise.
10331         (gimple_label_set_label): Likewise.
10332         (gimple_goto_set_dest): Likewise.
10333         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
10334         (gimple_debug_bind_get_value): Likewise.
10335         (gimple_debug_bind_get_value_ptr): Likewise.
10336         (gimple_debug_bind_set_var): Likewise.
10337         (gimple_debug_bind_set_value): Likewise.
10338         (gimple_debug_bind_reset_value): Likewise.
10339         (gimple_debug_bind_has_value_p): Likewise.
10340         (gimple_return_retval_ptr): Remove gcc_assert.
10341         (gimple_return_retval): Likewise.
10342         (gimple_return_set_retval): Likewise.
10343         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
10344         (safe_referenced_var_iterator): Remove.
10345         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
10346         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
10347         (fill_referenced_var_vec): Remove.
10348         (first_readonly_imm_use): Remove redundant gcc_assert.
10349         (phi_arg_index_from_use): Combine gcc_asserts.
10350         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
10351         (first_imm_use_stmt): Remove redundant gcc_assert.
10352         * tree-cfg.c (verify_gimple_call): Verify function and chain
10353         operands.  Verify arguments.
10354         (verify_types_in_gimple_stmt): Verify condition code and labels.
10355
10356 2010-01-07  Richard Guenther  <rguenther@suse.de>
10357
10358         PR tree-optimization/42641
10359         * sese.c (rename_map_elt_info): Use the SSA name version, do
10360         not hash pointers.
10361
10362 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
10363
10364         PR tree-optimization/42625
10365         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
10366         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
10367
10368 2010-01-07  Duncan Sands  <baldrick@free.fr>
10369
10370         * Makefile.in (PLUGIN_HEADERS): Add version.h.
10371
10372 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
10373
10374         PR target/42511
10375         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
10376         note itself is not function_invariant_p.
10377
10378 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
10379
10380         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
10381         Do not add the DF_NOTE problem.
10382         * store-motion.c (execute_rtl_store_motion): Likewise.
10383
10384 2010-01-07  Martin Jambor  <mjambor@suse.cz>
10385
10386         PR tree-optimization/42157
10387         * tree-sra.c (compare_access_positions): Stabilize sort if both
10388         accesses have integer types, return zero immediately if they are the
10389         same.
10390
10391 2010-01-06  Richard Henderson  <rth@redhat.com>
10392
10393         PR middle-end/41883
10394         * haifa-sched.c (add_to_note_list): Merge into ...
10395         (concat_note_lists): ... here, and ...
10396         (unlink_other_notes, rm_other_notes): Merge into...
10397         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
10398         NOTE_INSN_EPILOGUE_BEG.
10399
10400 2010-01-06  Richard Guenther  <rguenther@suse.de>
10401
10402         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
10403         not inline regular functions into always-inline functions.
10404
10405 2010-01-06  Nick Clifton  <nickc@redhat.com>
10406
10407         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
10408         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
10409         used together.
10410         (OVERRIDE_OPTIONS): Delete.
10411         (OPTIMIZATION_OPTIONS): Define.
10412         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
10413         * config/rx/rx.c (rx_handle_option): Issue an error message if
10414         -mcpu=rx200 and -fpu are used together.
10415         (rx_set_optimization_options): New function.  Issue an error
10416         message if an optimization attribute attempts to reset the FPU/
10417         math optimization pairing.
10418         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
10419         * config/rx/rx.opt: Set the default to 32-bit doubles.
10420         * config/rx/t-rx: Add multilibs for -nofpu option.
10421         * doc/invoke.texi: Update documentation of RX options.
10422
10423 2010-01-06  Richard Guenther  <rguenther@suse.de>
10424
10425         * tree-ssa-pre.c (name_to_id): New global.
10426         (alloc_expression_id): Simplify SSA name handling.
10427         (lookup_expression_id): Likewise.
10428         (init_pre): Zero name_to_id.
10429         (fini_pre): Free it.
10430
10431 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
10432
10433         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
10434
10435 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
10436
10437         PR target/42542
10438         * config/i386/sse.md (smaxv2di3): New.
10439         (umaxv2di3): Likewise.
10440         (sminv2di3): Likewise.
10441         (uminv2di3): Likewise.
10442
10443 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10444
10445         PR target/42564
10446         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
10447         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
10448         (legitimize_tls_address): Likewise.
10449         (sparc_tls_referenced_p): Likewise.
10450         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
10451         and adjust calls to legitimize_pic_address.
10452         (legitimate_constant_p) Use sparc_tls_referenced_p.
10453         (legitimate_pic_operand_p): Likewise.
10454         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
10455         (sparc_tls_symbol_ref_1): Delete.
10456         (sparc_tls_referenced_p): Make static, recognize specific patterns.
10457         (legitimize_tls_address): Make static, handle CONST patterns.
10458         (legitimize_pic_address): Make static, remove unused parameter and
10459         adjust recursive calls.
10460         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
10461         and adjust call to legitimize_pic_address.
10462         (sparc_output_mi_thunk): Likewise.
10463
10464 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
10465             H.J. Lu  <hongjiu.lu@intel.com>
10466
10467         PR target/42542
10468         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
10469         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
10470         operands to make them signed.
10471
10472         Revert:
10473         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10474
10475         PR target/42542
10476         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10477         GTU to GT for V4SI and V2DI.
10478
10479         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10480         (umin<mode>3): Removed.
10481         (uminv8hi3): New.
10482         (uminv4si3): Likewise.
10483
10484 2010-01-05  Martin Jambor  <mjambor@suse.cz>
10485
10486         PR tree-optimization/42462
10487         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
10488         current_function_decl to helper functions and macros.
10489
10490 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10491
10492         PR bootstrap/41771
10493         * flags.h: Don't include real.h.
10494         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
10495         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
10496         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
10497         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
10498         * dominance.c: Update copyright.
10499         * gimple.c (walk_gimple_op): Remove inline.
10500         * tree-ssa-reassoc.c: Include real.h.
10501         * Makefile.in (FLAGS_H): Remove $(REAL_H).
10502         (tree-ssa-reassoc.o): Depend on $(REAL_H).
10503
10504 2010-01-05  Nick Clifton  <nickc@redhat.com>
10505
10506         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
10507         register to push into the stack frame when the accumulator has to
10508         be saved during interrupts.
10509
10510 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
10511
10512         * doc/invoke.texi: Remove the documentation about option
10513         -Wunreachable-code.
10514         * common.opt (Wunreachable-code):  Preserved for backward
10515         compatibility.
10516         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
10517         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
10518         the backward compatibility flag section.
10519
10520 2010-01-05  Richard Guenther  <rguenther@suse.de>
10521
10522         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
10523
10524 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
10525
10526         PR other/42611
10527         * cfgexpand.c (expand_one_var): Diagnose too large variables.
10528
10529         PR tree-optimization/42508
10530         * tree-sra.c (convert_callers): Check for recursive call
10531         by comparing cgraph nodes instead of decls.
10532         (modify_function): Call ipa_modify_formal_parameters also
10533         on all same_body aliases.
10534
10535         * cgraphunit.c (cgraph_materialize_all_clones): Compare
10536         cgraph nodes when checking for same_body aliases.
10537
10538 2010-01-05  Richard Guenther  <rguenther@suse.de>
10539
10540         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
10541         allocation and lookup.
10542         (get_or_alloc_expr_for_constant): Likewise.
10543         (phi_translate): Sink allocation.
10544
10545 2010-01-04  Richard Guenther  <rguenther@suse.de>
10546
10547         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
10548         a new entry only if needed.
10549         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
10550         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
10551         hashtable lookup.
10552         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
10553         the result array.
10554         (phi_translate): Handle CONSTANTs early.
10555
10556 2010-01-04  Martin Jambor  <mjambor@suse.cz>
10557
10558         PR tree-optimization/42398
10559         * tree-sra.c (struct access): Removed flag grp_different_types.
10560         (dump_access): Do not dump the removed flag.
10561         (sort_and_splice_var_accesses): Do not set the removed flag.
10562         (sra_modify_expr): Check for type compatibility directly.
10563
10564 2010-01-04  Martin Jambor  <mjambor@suse.cz>
10565
10566         PR tree-optimization/42366
10567         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
10568         edges with variable number of parameters.
10569         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
10570         flag instead of asserting it.
10571         (ipa_read_node_info): Read uses_analysis_done flag.
10572
10573 2010-01-04  Richard Guenther  <rguenther@suse.de>
10574
10575         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
10576         iterative_hash_* as intended.
10577         (vn_reference_compute_hash): Likewise.  Simplify hashing
10578         SSA names.
10579         (vn_reference_lookup_2): Likewise.
10580         (vn_nary_op_compute_hash): Likewise.
10581         (vn_phi_compute_hash): Likewise.
10582         (expressions_equal_p): Remove strange code.
10583         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
10584         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
10585         (bitmap_insert_into_set_1): Take value-id as parameter.
10586         (add_to_value): Pass it.
10587         (bitmap_insert_into_set): Likewise.
10588         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
10589
10590 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
10591
10592         PR driver/42442
10593         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
10594         (do_self_spec): For switches with SWITCH_IGNORE set set also
10595         SWITCH_IGNORE_PERMANENTLY.
10596         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
10597         of SWITCH_IGNORE.
10598
10599 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
10600
10601         * lto-streamer-out.c (output_unreferenced_globals): Output the full
10602         tree of an unreferenced global var.
10603
10604 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10605
10606         PR target/42542
10607         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
10608         GTU to GT for V4SI and V2DI.
10609
10610         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
10611         (umin<mode>3): Removed.
10612         (uminv8hi3): New.
10613         (uminv4si3): Likewise.
10614
10615 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
10616
10617         PR lto/42581
10618         * collect2.c (main): Turn on trace in collect2 if -v is passed
10619         to gcc with LTO.
10620
10621 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
10622
10623         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
10624         description of expression operand.
10625
10626 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
10627
10628         * configure.ac: Add install-html to target_list for Make-hooks.
10629         * configure: Regenerate.
10630         * fortran/Make-lang.in (F95_HTMLFILES): New.
10631         (fortran.html): Use it.
10632         (fortran.install-html): New.
10633         * Makefile.in (install-html): Add lang.install-html.
10634         * java/Make-lang.in (JAVA_HTMLFILES): New.
10635         (java.html): Use it.
10636         (java.install-html): New.
10637         * objc/Make-lang.in (objc.install-html): New.
10638         * objcp/Make-lang.in (obj-c++.install-html): New.
10639         * cp/Make-lang.in (c++.install-html): New.
10640         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
10641         * lto/Make-lang.in (lto.install-html): New.
10642
10643 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10644
10645         PR lto/42520
10646         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
10647
10648 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
10649
10650         PR rtl-optimization/41862
10651         * store-motion.c (store_killed_in_insn, compute_store_table,
10652         remove_reachable_equiv_notes, replace_store_insn,
10653         build_store_vectors): Ignore all DEBUG_INSNs.
10654
10655 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
10656
10657         PR lto/41564
10658         * common.opt: Add dumpdir.
10659
10660         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
10661         isn't specified.
10662         (option_map): Add --dumpdir.
10663
10664         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
10665
10666         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
10667
10668         * opts.c (decode_options): Try dump_dir_name first if
10669         dump_base_name isn't an absolute path.
10670         (common_handle_option): Handle OPT_dumpdir.
10671
10672         * toplev.c (dump_dir_name): New.
10673         (print_switch_values): Also ignore -dumpdir.
10674
10675         * toplev.h (dump_dir_name): New.
10676
10677 2010-01-03  Richard Guenther  <rguenther@suse.de>
10678
10679         PR tree-optimization/42589
10680         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
10681         double-word expansion of bswap32.
10682
10683 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
10684
10685         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
10686         with BLOCK_FOR_INSN.
10687         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
10688         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
10689         noce_process_if_block): Likewise.
10690         * gcse.c (compute_local_properties, insert_expr_in_table,
10691         insert_set_in_table, canon_list_insert, find_avail_set,
10692         pre_insert_copy_insn): Likewise.
10693
10694         * basic-block.h (BLOCK_NUM): Move from here...
10695         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
10696
10697 2010-01-03  Richard Guenther  <rguenther@suse.de>
10698
10699         PR tree-optimization/42438
10700         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
10701         contains_may_not_return_call flag.
10702         (BB_MAY_NOTRETURN): New.
10703         (valid_in_sets): Trapping nary operations are not valid
10704         in blocks that may not return.
10705         (insert_into_preds_of_block): Remove check for trapping expressions.
10706         (compute_avail): Compute also BB_MAY_NOTRETURN.
10707
10708 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
10709
10710         * doc/invoke.texi: Add 2010 to copyright years.
10711
10712 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
10713
10714         * config/sparc/sparc.c: Fix formatting nits.
10715
10716 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
10717             Alexander Monakov  <amonakov@ispras.ru>
10718
10719         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
10720
10721 2010-01-02  Richard Guenther  <rguenther@suse.de>
10722
10723         PR middle-end/42577
10724         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
10725         (simplify_switch_using_ranges): Mark to be removed edges
10726         as non-executable.
10727
10728 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10729
10730         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10731
10732         * collect2.c (scan_libraries): Add missing argument in call to
10733         scan_prog_file.
10734
10735 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
10736
10737         PR target/42448
10738         * config/alpha/predicates.md (aligned_memory_operand): Return false
10739         for CQImode.
10740         (unaligned_memory_operand): Return true for CQImode.
10741         * config/alpha/alpha.c (get_aligned_mem): Assert that location
10742         doesn not cross aligned SImode word boundary.
10743
10744 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
10745
10746         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
10747         Remove.
10748         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
10749         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
10750
10751 2010-01-02  Richard Guenther  <rguenther@suse.de>
10752
10753         PR lto/41597
10754         * toplev.c (compile_file): Emit LTO marker properly.  Change
10755         it to __gnu_lto_v1.
10756         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
10757
10758 2010-01-01  Richard Guenther  <rguenther@suse.de>
10759
10760         PR debug/42455
10761         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
10762
10763 2010-01-01  Richard Guenther  <rguenther@suse.de>
10764
10765         PR c/42570
10766         * c-decl.c (grokdeclarator): For zero-size arrays force
10767         structural equality checks as layout_type does.
10768
10769 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
10770
10771         * builtins.c: Update copyright to 2010.
10772
10773 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
10774
10775         PR lto/42531
10776         * lto-streamer-out.c (produce_asm): Revert the last change.
10777         (copy_function): Likewise.
10778
10779         * lto-streamer.c (lto_get_section_name): Skip any leading
10780         asterisk in name.
10781
10782 2010-01-01  Richard Guenther  <rguenther@suse.de>
10783
10784         PR middle-end/42559
10785         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
10786         for LABEL_DECLs.
10787
10788 \f
10789 Copyright (C) 2010 Free Software Foundation, Inc.
10790
10791 Copying and distribution of this file, with or without modification,
10792 are permitted in any medium without royalty provided the copyright
10793 notice and this notice are preserved.