OSDN Git Service

2033f79cf9bd598f5bfaf0c23ece9b9484f9e025
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
2
3         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
4         langhooks-def.h.
5         (diagnostic_initialize): Initialize x_data not last_function.
6         (diagnostic_report_current_function): Move to tree-diagnostic.c.
7         (default_diagnostic_starter): Call
8         diagnostic_report_current_module not
9         diagnostic_report_current_function.
10         (diagnostic_report_diagnostic): Initialize x_data not
11         abstract_origin.
12         (verbatim): Likewise.
13         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
14         x_data.
15         (struct diagnostic_context): Change last_function to x_data.
16         (diagnostic_auxiliary_data): Replace with
17         diagnostic_context_auxiliary_data and
18         diagnostic_info_auxiliary_data.
19         (diagnostic_last_function_changed, diagnostic_set_last_function,
20         diagnostic_report_current_function): Move to tree-diagnostic.h.
21         (print_declaration, dump_generic_node, print_generic_stmt,
22         print_generic_stmt_indented, print_generic_expr,
23         print_generic_decl, debug_c_tree, dump_omp_clauses,
24         print_call_name, debug_generic_expr, debug_generic_stmt,
25         debug_tree_chain, default_tree_printer): Move to
26         tree-pretty-print.h.
27         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
28         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
29         gimple-pretty-print.h.
30         * pretty-print.c: Don't include tree.h
31         (pp_base_format): Don't handle %K here.
32         (pp_base_tree_identifier): Move to tree-pretty-print.c.
33         * pretty-print.h (text_info): Change abstract_origin to x_data.
34         (pp_tree_identifier, pp_unsupported_tree,
35         pp_base_tree_identifier): Move to tree-pretty-print.h.
36         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
37         tree-pretty-print.h: New files.
38         * tree-pretty-print.c: Include tree-pretty-print.h.
39         (percent_K_format): New.  Moved from pretty-print.c.
40         (pp_base_tree_identifier): Move from pretty-print.c.
41         * c-objc-common.c: Include tree-pretty-print.h.
42         (c_tree_printer): Handle %K here.
43         * langhooks.c: Include tree-diagnostic.h.
44         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
45         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
46         (default_tree_printer): Handle %K using percent_K_format.
47         (general_init): Use default_tree_diagnostic_starter.
48         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
49         (free_lang_data): Use default_tree_diagnostic_starter.
50         * c-pretty-print.c: Include tree-pretty-print.h.
51         * cfgexpand.c: Include tree-pretty-print.h and
52         gimple-pretty-print.h.
53         * cgraphunit.c: Include tree-pretty-print.h and
54         gimple-pretty-print.h.
55         * dwarf2out.c: Include tree-pretty-print.h.
56         * except.c: Include tree-pretty-print.h.
57         * gimple-pretty-print.c: Include tree-pretty-print.h and
58         gimple-pretty-print.h.
59         * gimplify.c: Include tree-pretty-print.h.
60         * graphite-poly.c: Include tree-pretty-print.h and
61         gimple-pretty-print.h.
62         * ipa-cp.c: Include tree-pretty-print.h.
63         * ipa-inline.c: Include gimple-pretty-print.h.
64         * ipa-prop.c: Include tree-pretty-print.h and
65         gimple-pretty-print.h.
66         * ipa-pure-const.c: Include gimple-pretty-print.h.
67         * ipa-struct-reorg.c: Include tree-pretty-print.h and
68         gimple-pretty-print.h.
69         * ipa-type-escape.c: Include tree-pretty-print.h.
70         * print-rtl.c: Include tree-pretty-print.h.
71         * print-tree.c: Include gimple-pretty-print.h.
72         * sese.c: Include tree-pretty-print.h.
73         * tree-affine.c: Include tree-pretty-print.h.
74         * tree-browser.c: Include tree-pretty-print.h.
75         * tree-call-cdce.c: Include gimple-pretty-print.h.
76         * tree-cfg.c: Include tree-pretty-print.h and
77         gimple-pretty-print.h.
78         * tree-chrec.c: Include tree-pretty-print.h.
79         * tree-data-ref.c: Include tree-pretty-print.h and
80         gimple-pretty-print.h.
81         * tree-dfa.c: Include tree-pretty-print.h.
82         * tree-if-conv.c: Include tree-pretty-print.h and
83         gimple-pretty-print.h.
84         * tree-inline.c: Include tree-pretty-print.h.
85         * tree-into-ssa.c: Include tree-pretty-print.h and
86         gimple-pretty-print.h.
87         * tree-nrv.c: Include tree-pretty-print.h.
88         * tree-object-size.c: Include tree-pretty-print.h and
89         gimple-pretty-print.h.
90         * tree-outof-ssa.c: Include tree-pretty-print.h and
91         gimple-pretty-print.h.
92         * tree-parloops.c: Include tree-pretty-print.h and
93         gimple-pretty-print.h.
94         * tree-predcom.c: Include tree-pretty-print.h and
95         gimple-pretty-print.h.
96         * tree-scalar-evolution.c: Include tree-pretty-print.h and
97         gimple-pretty-print.h.
98         * tree-sra.c: Include tree-pretty-print.h.
99         * tree-ssa-address.c: Include tree-pretty-print.h.
100         * tree-ssa-alias.c: Include tree-pretty-print.h.
101         * tree-ssa-ccp.c: Include tree-pretty-print.h and
102         gimple-pretty-print.h.
103         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
104         * tree-ssa-copy.c: Include tree-pretty-print.h and
105         gimple-pretty-print.h.
106         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
107         * tree-ssa-dce.c: Include tree-pretty-print.h and
108         gimple-pretty-print.h.
109         * tree-ssa-dom.c: Include tree-pretty-print.h and
110         gimple-pretty-print.h.
111         * tree-ssa-dse.c: Include gimple-pretty-print.h.
112         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
113         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
114         * tree-ssa-live.c: Include tree-pretty-print.h and
115         gimple-pretty-print.h.
116         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
117         gimple-pretty-print.h.
118         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
119         gimple-pretty-print.h.
120         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
121         gimple-pretty-print.h.
122         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
123         gimple-pretty-print.h.
124         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
125         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
126         * tree-ssa-operands.c: Include tree-pretty-print.h and
127         gimple-pretty-print.h.
128         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
129         gimple-pretty-print.h.
130         * tree-ssa-pre.c: Include tree-pretty-print.h and
131         gimple-pretty-print.h.
132         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
133         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
134         gimple-pretty-print.h.
135         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
136         gimple-pretty-print.h.
137         * tree-ssa-sink.c: Include gimple-pretty-print.h.
138         * tree-ssa-ter.c: Include tree-pretty-print.h and
139         gimple-pretty-print.h.
140         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
141         * tree-ssa.c: Include tree-pretty-print.h and
142         gimple-pretty-print.h.
143         * tree-stdarg.c: Include gimple-pretty-print.h.
144         * tree-switch-conversion.c: Include gimple-pretty-print.h.
145         * tree-tailcall.c: Include tree-pretty-print.h and
146         gimple-pretty-print.h.
147         * tree-vect-data-refs.c: Include tree-pretty-print.h and
148         gimple-pretty-print.h.
149         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
150         gimple-pretty-print.h.
151         * tree-vect-loop.c: Include tree-pretty-print.h and
152         gimple-pretty-print.h.
153         * tree-vect-patterns.c: Include gimple-pretty-print.h.
154         * tree-vect-slp.c: Include tree-pretty-print.h and
155         gimple-pretty-print.h.
156         * tree-vect-stmts.c: Include tree-pretty-print.h and
157         gimple-pretty-print.h.
158         * tree-vectorizer.c: Include tree-pretty-print.h.
159         * tree-vrp.c: Include tree-pretty-print.h and
160         gimple-pretty-print.h.
161         * value-prof.c: Include tree-pretty-print.h and
162         gimple-pretty-print.h.
163         * var-tracking.c: Include tree-pretty-print.h.
164         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
165         (tree-diagnostic.o): New dependencies.
166         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
167         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
168         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
169         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
170         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
171         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
172         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
173         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
174         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
175         tree-ssa-address.o, tree-ssa-loop-niter.o,
176         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
177         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
178         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
179         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
180         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
181         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
182         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
183         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
184         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
185         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
186         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
187         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
188         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
189         tree-switch-conversion.o, var-tracking.o, value-prof.o,
190         cfgexpand.o, pretty-print.o): Update dependencies.
191
192 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
193
194         * tree-ssa-structalias.c: Remove tm_p.h from include.
195
196 2010-05-21  Jeff Law  <law@redhat.com>
197
198         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
199
200 2010-05-21  Jason Merrill  <jason@redhat.com>
201
202         * tree-eh.c (cleanup_is_dead_in): New.
203         (lower_try_finally): Don't generate a dead cleanup region.
204         (lower_cleanup): Likewise.
205
206 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
207
208         PR debug/44223
209         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
210         unchain each use from the cyclic next_regno_use chain first.
211
212 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
213
214         * real: Do not include gmp.h, mpfr.h, and mpc.h.
215         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
216         (real_value_negate, real_value_abs): New prototypes.
217         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
218         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
219         new include file for interface between MPFR and REAL_VALUE_TYPE.
220         * real.c: Include realmpfr.h.
221         (real_arithmetic2): Remove legacy function.
222         (real_value_negate): New.
223         (real_value_abs): New.
224         (mfpr_from_real, real_from_mpfr): Move from here...
225         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
226         * builtins.c: Include realmpfr.h.
227         * fold-const.c: Include realmpfr.h.
228         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
229         (fold_negate_const): Likewise.
230         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
231         * toplev.c: Include realmpfr.h.
232         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
233         and real_value_negate.
234         * fixed-value.c (check_real_for_fixed_mode): Likewise.
235         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
236         (vfp3_const_double_index): Likewise.
237         (arm_print_operand): Likewise.
238         * Makefile.in: Update dependencies.
239
240 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
241
242         * config/s390/s390.c (override_options): Increase the default
243         of max-completely-peel-times.
244
245 2010-05-21  Julian Brown  <julian@codesourcery.com>
246             Mark Mitchell  <mark@codesourcery.com>
247
248         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
249         sibling calls for Thumb-1.
250         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
251         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
252         Thumb-2.
253         (*call_insn, *call_value_insn): Don't use for Thumb-2.
254         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
255         for Thumb-2.
256         (return): New expander.
257         (*arm_return): New name for ARM return insn.
258         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
259
260 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
261
262         * config.gcc (sparc64-*-rtems*): New target.
263
264 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
265
266         * tree.c (build_function_decl_skip_args): Fix grammar.
267         (build_function_type_list_1): Fix typos, adjust formatting.
268
269 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
270
271         * tree.h: Include real.h and fixed-value.h as basic datatypes.
272         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
273         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
274         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
275         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
276         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
277         tree-pretty-print.c, tree-loop-distribution.c,
278         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
279         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
280         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
281         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
282         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
283         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
284         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
285         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
286         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
287         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
288         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
289         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
290         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
291         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
292         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
293         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
294         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
295         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
296         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
297         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
298         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
299         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
300         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
301         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
302         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
303         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
304         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
305         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
306         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
307         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
308         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
309         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
310         config/score/score7.c, config/score/score.c, config/arm/arm.c,
311         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
312         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
313         config/bfin/bfin.c:
314         Clean up redundant includes.
315         * Makefile.in: Update accordingly.
316
317 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
318
319         PR middle-end/44204
320         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
321         statement has no arguments.
322
323 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
324
325         PR/44139
326         * varasm.c (emutls_decl): Merge attributes to new decl.
327
328 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
329
330         PR middle-end/44101
331         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
332         around the uniquized constructor if its type requires a conversion.
333
334 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
335
336         PR debug/44205
337         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
338         at -O0 goto_locus of any of the incoming edges differs from
339         goto_locus of outgoing edge, or gimple_location of any of the
340         labels differs.
341
342 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
343
344         * ira.c (ira_non_ordered_class_hard_regs): Define.
345         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
346         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
347         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
348         cost of unaligned hard regs when allocating multi-reg pseudos.
349
350 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
351
352         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
353         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
354         for TARGET_NO_FLOAT.
355         * config/mips/mips.c (mips_file_start): Expand conditional expression
356         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
357         (mips_override_options): Move -mno-float override -msoft-float and
358         -mhard-float.
359         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
360         Condition(TARGET_SUPPORTS_NO_FLOAT).
361         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
362         __mips_no_float here.
363         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
364         (TARGET_SUPPORTS_NO_FLOAT): Define.
365         * config/mips/sdemtk.opt: Delete.
366
367 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
368
369         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail
370         out if !cond.
371
372 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
373
374         PR target/43733
375         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
376         * configure: Regenerate.
377         * config.in: Regenerate.
378         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
379         instead of sahf only for 64bit targets.
380
381 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
382
383         PR debug/44178
384         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
385         setup_ref_regs for DEBUG_INSNs.
386
387 2010-05-20  Jan Hubicka  <jh@suse.cz>
388
389         PR middle-end/44197
390         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
391
392 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
393
394         PR bootstrap/43870
395         * df-scan.c (df_ref_compare): Stabilize sort.
396
397 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
398
399         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
400         argument.  Don't use DW_OP_piece if offset is non-zero,
401         put offset into second DW_OP_bit_piece argument.
402         (dw_sra_loc_expr): Adjust callers.  For memory expressions
403         compute offset.
404
405 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
406
407         PR target/44202
408         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
409         settings for 16-bit-constant "addo" alternative.
410
411 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
412
413         * config/mips/mips-dsp.md (add<DSPV:mode>3,
414         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
415
416         PR target/43764
417         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
418         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
419         Use it.
420
421 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
422
423         * diagnostic.c (FLOAT, FFS): Don't undefine.
424         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
425         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
426         include ordering.
427
428 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
429
430         * combine.c (propagate_for_debug): Call make_compound_operation
431         on the source value.
432         (try_combine): When implementing a split chosen by find_split_point,
433         either copy i2src or set it to null.  Assert that i2src is not null
434         before substituting into CALL_INSN_FUNCTION_USAGE.
435
436 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
437
438         * double-int.h (double_int_ior): New function.
439         * tree.h (build_int_cst_wide_type): Remove.
440         * tree.c (build_int_cst_wide_type): Remove.
441         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
442         of build_int_cst_wide_type.
443         * stor-layout.c (set_sizetype): (Ditto.).
444         * dojump.c (do_jump): Use build_int_cstu instead of
445         build_int_cst_wide_type.
446
447 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
448
449         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
450         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
451         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
452         * gimplify.c: (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
453         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
454         propagate the 'data' argument to copy_tree_r.
455         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
456         Propagate 'data' argument to walk_tree.
457         (copy_if_shared): New function.
458         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
459         (unmark_visited): New function.
460         (unshare_body): Call copy_if_shared instead of doing it manually.
461         (unvisit_body): Call unmark_visited instead of doing it manually.
462
463 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
464
465         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
466         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
467         * hooks.c: Likewise.
468         * target-def.h (TARGET_FOLD_BUILTIN): Define to
469         hook_tree_tree_int_treep_bool_null.
470         * target.h: (struct gcc_target): Update signature of fold_builtin
471         field.
472         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
473         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
474         instead of the call expression.
475         (fold_builtin_call_array): Pass n and argarray directly.
476         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
477         consing a list.
478         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
479         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
480         `i' and use it in place of `arity'.
481         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
482         Dereference `args' directly.
483         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
484
485 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
486
487         * doc/sourcebuild.texi (Effective-Target Keywords): Document
488         3dnow, sse3, sse2.
489         (Directives): Document optional dg-require-effective-target
490         selector.
491
492 2010-05-19  Richard Guenther  <rguenther@suse.de>
493
494         PR lto/44196
495         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
496
497 2010-05-19  Richard Guenther  <rguenther@suse.de>
498
499         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
500         * common.opt (fwhopr=): New.
501         * opts.c (common_handle_option): Handle OPT_fwhopr.
502         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
503         * collect2.c (main): Match -fwhopr*.
504         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
505         Execute ltrans stage in parallel when jobs is bigger than 1.
506
507 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
508
509         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
510         pentiumpro on Solaris 8/x86 with Sun as.
511         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
512         hidden alias bug.
513         (gcc_cv_as_ix86_quad): Check for .quad directive.
514         * configure: Regenerate.
515         * config.in: Regenerate.
516         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
517
518 2010-05-19  Martin Jambor  <mjambor@suse.cz>
519
520         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
521         also for indirect edges.  Actual printing moved...
522         (ipa_print_node_jump_functions_for_edge): ...here.
523         (ipa_compute_jump_functions): Renamed to
524         ipa_compute_jump_functions_for_edge and made static.
525         (ipa_compute_jump_functions): New function.
526         (make_edge_direct_to_target): Check if the number of arguments on
527         the newly direct edge is the same as the number of parametrs of
528         the callee.
529         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
530         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
531         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
532         analysis functions unconditionally, call the new
533         ipa_analyze_params_uses on the node instead of every edge.
534
535 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
536
537         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
538         to tree.
539         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
540         also checks for a constant int vs.  non-constant but
541         loop-invariant steps.
542         (find_or_create_group): Change the sort algorithm to only consider
543         steps that are constant ints.
544         (idx_analyze_ref): Adopt code to handle a tree instead of a
545         HOST_WIDE_INT for step.
546         (gather_memory_references_ref): Handle tree instead of int and be
547         prepared to see a NULL_TREE.
548         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
549         prefetches if the step cannot be calculated at compile time.
550         (issue_prefetch_ref): Issue prefetches for non-constant but
551         loop-invariant steps.
552
553 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
554
555         Revert:
556         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
557
558         * tree.h (build_call_list): Remove.
559         * tree.c (build_call_list): Remove.
560
561 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
562
563         * tree.h (build_call_list): Remove.
564         * tree.c (build_call_list): Remove.
565
566 2010-05-18  Jan Hubicka  <jh@suse.cz>
567
568         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
569
570 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
571
572         PR rtl-optimization/43332
573         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
574
575 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
576
577         * tree.h (build_int_cstu): Implement as static inline.
578         * tree.c (build_int_cstu): Remove function.
579         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
580         sign extended.
581
582 2010-05-18  Richard Guenther  <rguenther@suse.de>
583
584         PR lto/44143
585         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
586         (debug): Initialize from -save-temps.
587         (collect_execute): Print command-line when verbose.
588         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
589         for ltrans invocation.  Produce -dumpbase flag again.
590         (process_args): Remove.
591         (main): Simplify.
592         * collect2.c (maybe_run_lto_and_relink): Only pass object
593         files to lto-wrapper.
594         * gcc.c (LINK_COMMAND_SPEC): Likewise.
595
596 2010-05-18  Jan Hubicka  <jh@suse.cz>
597
598         * opts.c (decode_options): Do not disable whopr at ipa_cp.
599         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
600
601 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
602
603         PR lto/44184
604         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
605         in a GIMPLE_ASM.
606         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
607         in a GIMPLE_ASM.
608
609 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
610
611         PR debug/41371
612         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
613         rtx_equal_p inline.
614
615 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
616
617         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
618         lto-macho as lto_binary_reader.
619
620         * darwin.c (darwin_asm_named_section): Do not add assembler comment
621         after .section directive; just print it before the directive instead.
622
623 2010-05-17  Jan Hubicka  <jh@suse.cz>
624
625         * cgraph.c (cgraph_create_virtual_clone): Only check
626         versionable_function_p when not in wpa and checking is enabled.
627         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
628         there are no more functions to materialize.
629
630 2010-05-17  Jan Hubicka  <jh@suse.cz>
631
632         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
633         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
634         New functions.
635         (output_cgraph): Call output_cgraph_opt_summary.
636         (input_cgrpah): Call input_cgraph_opt_summary.
637         (output_cgraph_opt_summary_p, output_node_opt_summary,
638         input_node_opt_summary, input_cgraph_opt_section): New functions.
639         * lto-section-in.c (lto_section_name): Add cgraphopt.
640         * tree-inline.c (tree_function_versioning): Handle parm_num.
641         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
642         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
643
644 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
645
646         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
647         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
648         the insn to prefetch ratio heuristic to loops with known trip count.
649
650 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
651
652         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
653         (schedule_prefetches): Do not generate a prefetch if the unroll factor
654         is far from what is required by the prefetch.
655
656 2010-05-17  Jan Hubicka  <jh@suse.cz>
657
658         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
659         (ipcp_estimate_growth): Likewise.
660         (ipcp_const_param_count): Likewise.
661         (ipcp_insert_stage): Likewise.
662         * ipa-prop.c (visit_load_for_mod_analysis): New function.
663         (visit_store_addr_for_mod_analysis): Set used flag.
664         (ipa_detect_param_modifications): Set used flag for SSE params;
665         update use of walk_stmt_load_store_addr_ops.
666         (ipa_print_node_params): Print used flag.
667         (ipa_write_node_info): Stream used flag.
668         (ipa_read_node_info): Likewise.
669         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
670         (ipa_is_param_used): New function.
671         (lto_ipa_fixup_call_notes): Remove unused declaration.
672
673 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
674
675         PR target/44074
676         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
677         * configure: Regenerate.
678         * config.in: Regenerate.
679         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
680         !HAVE_AS_IX86_REP_LOCK_PREFIX.
681         Don't emit whitespace.
682         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
683         (*rep_movsi): Likewise.
684         (*rep_movsi_rex64): Likewise.
685         (*rep_movqi): Likewise.
686         (*rep_movqi_rex64): Likewise.
687         (*rep_stosdi_rex64): Likewise.
688         (*rep_stossi): Likewise.
689         (*rep_stossi_rex64): Likewise.
690         (*rep_stosqi): Likewise.
691         (*rep_stosqi_rex64): Likewise.
692         (*cmpstrnqi_nz_1): Use {%;} after repz.
693         (*cmpstrnqi_nz_rex_1): Likewise.
694         (*cmpstrnqi_1): Likewise.
695         (*cmpstrnqi_rex_1): Likewise.
696         (*strlenqi_1): Use {%;} after repnz.
697         (*strlenqi_rex_1): Likewise.
698         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
699         (*sync_compare_and_swap<mode>): Likewise.
700         (sync_double_compare_and_swap<mode>): Likewise.
701         (*sync_double_compare_and_swapdi_pic): Likewise.
702         (sync_old_add<mode>): Likewise.
703         (sync_add<mode>): Likewise.
704         (sync_sub<mode>): Likewise.
705         (sync_<code><mode>): Likewise.
706
707 2010-05-17  Martin Jambor  <mjambor@suse.cz>
708
709         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
710         otr_token and polymorphic.
711         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
712         (cgraph_clone_edge): Copy the above fields.
713         * tree.c (get_binfo_at_offset): New function.
714         * tree.h (get_binfo_at_offset): Declare.
715         * ipa-prop.h (enum jump_func_type): Added known_type jump function
716         type, reordered items, updated comments.
717         (union jump_func_value): Added base_type field, reordered fields.
718         (enum ipa_lattice_type): Moved down in the file.
719         (struct ipa_param_descriptor): New field polymorphic.
720         (ipa_is_param_polymorphic): New function.
721         * ipa-prop.c: Include gimple.h and gimple-fold.h.
722         (ipa_print_node_jump_functions): Print known type jump functions.
723         (compute_complex_pass_through): Renamed to...
724         (compute_complex_assign_jump_func): this.
725         (compute_complex_ancestor_jump_func): New function.
726         (compute_known_type_jump_func): Likewise.
727         (compute_scalar_jump_functions): Create known type and complex ancestor
728         jump functions.
729         (ipa_note_param_call): New parameter polymorphic, set the corresponding
730         flag in the call note accordingly.
731         (ipa_analyze_call_uses): Renamed to...
732         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
733         variable var only in the block where it is used.
734         (ipa_analyze_virtual_call_uses): New function.
735         (ipa_analyze_call_uses): Likewise.
736         (combine_known_type_and_ancestor_jfs): Likewise.
737         (update_jump_functions_after_inlining): Implemented handling of a
738         number of new jump function types combination.
739         (print_edge_addition_message): Removed.
740         (make_edge_direct_to_target): New function.
741         (try_make_edge_direct_simple_call): Likewise.
742         (try_make_edge_direct_virtual_call): Likewise.
743         (update_call_notes_after_inlining): Renamed to...
744         (update_indirect_edges_after_inlining): this.  Moved edge creation for
745         indirect calls to try_make_edge_direct_simple_call, also calls
746         try_make_edge_direct_virtual_call for virtual calls.
747         (ipa_print_node_params): Changed the header message.
748         (ipa_write_jump_function): Stream also known type jump functions.
749         (ipa_read_jump_function): Likewise.
750         (ipa_write_indirect_edge_info): Stream new fields in
751         cgraph_indirect_call_info.
752         (ipa_read_indirect_edge_info): Likewise.
753         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
754         GIMPLE_FOLD_H.
755
756 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
757
758         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
759
760 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
761
762         * tree.h (CALL_EXPR_ARGS): Delete.
763         (call_expr_arglist): Delete.
764         * tree.c (call_expr_arglist): Delete.
765         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
766         targetm.fold_builtin.
767         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
768         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
769         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
770         arglist parameter.  Use CALL_EXPR_ARG.
771         (picochip_expand_builtin_3op): Likewise.
772         (picochip_expand_builtin_2opvoid): Likewise.
773         (picochip_expand_array_get): Likewise.
774         (picochip_expand_array_put): Likewise.
775         (picochip_expand_array_testport): Likewise.
776         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
777         rather than arglist.
778         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
779         CALL_EXPR_ARGS.
780         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
781         than TREE_VALUE and TREE_CHAIN.
782         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
783         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
784         the arglist.
785
786 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
787
788         PR bootstrap/42347
789         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
790         to have no fallthru edge.
791
792         PR middle-end/44102
793         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
794         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
795         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
796         add BARRIER after previous bb if needed.
797
798 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
799
800         * tree.c (build_function_type_list_1): Remove bogus assert condition.
801
802 2010-05-17  Alan Modra  <amodra@gmail.com>
803
804         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
805         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
806         with copy_reg rtx param.
807         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
808         Correct cases where code for ABI_V4 did not initialise the reg
809         used to access frame.  Also leave frame_reg_rtx as sp for large
810         frames that save no regs.
811
812 2010-05-17  Martin Jambor  <mjambor@suse.cz>
813
814         PR middle-end/44133
815         * tree-sra.c (create_access_replacement): New parameter rename, mark
816         the replaement for renaming only when it is true.
817         (get_access_replacement): Pass true in the rename parameter of
818         create_access_replacement.
819         (get_unrenamed_access_replacement): New function.
820         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
821         replacement declaration from it.
822
823 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
824
825         * function.c (try_fit_stack_local, add_frame_space): New static
826         functions.
827         (assign_stack_local_1): Use them.  Look for opportunities to use
828         space previously wasted on alignment.
829         * function.h (struct frame_space): New.
830         (struct rtl_data): Add FRAME_SPACE_LIST member.
831         * reload1.c (something_was_spilled): New static variable.
832         (alter_reg): Set it.
833         (reload): Test it in addition to testing if the frame size changed.
834
835 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
836
837         * config/s390/s390.c: Define sane prefetch settings and activate
838         flag_prefetch_loop_arrays on -O3.
839         * config/s390/s390.h: Declare that read can use write prefetch.
840
841 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
842
843         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
844         build.
845
846 2010-05-16  Jan Hubicka  <jh@suse.cz>
847
848         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
849         function body; do not check stdarg field of struct function.
850
851 2010-05-16  Jan Hubicka  <jh@suse.cz>
852
853         * cgraph.c (dump_cgraph_node): Dump versionable flag.
854         * cgraph.h (cgraph_local_info): Add versionable flag.
855         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
856         (ipcp_versionable_function_p): Use it.
857         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
858         versionable flag.
859
860 2010-05-16  Jan Hubicka  <jh@suse.cz>
861
862         * cgraph.c (cgraph_clone_node): Take decl argument and insert
863         clone into hash when it is different from orig.
864         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
865         * cgraph.h (cgraph_clone_node): Update prototype.
866         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
867         (lto_cgraph_encoder_delete): Delete body map.
868         (lto_cgraph_encoder_size): Move to header.
869         (lto_cgraph_encoder_encode_body_p,
870         lto_set_cgraph_encoder_encode_body): New.
871         (lto_output_node): Do not take written_decls argument; output clone_of
872         pointer.
873         (add_node_to): Add include_body_argument; call
874         lto_set_cgraph_encoder_encode_body on master of the clone.
875         (add_references): Update use of add_node_to.
876         (compute_ltrans_boundary): Likewise.
877         (output_cgraph): Do not create written_decls bitmap.
878         (input_node): Take nodes argument; stream in clone_of correctly.
879         (input_cgraph_1): Update use of input_node.
880         * lto-streamer-out.c (lto_output): Use encoder info to decide
881         what bodies to output.
882         * ipa-inline.c (cgraph_clone_inlined_nodes,
883         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
884         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
885         (lto_cgraph_encoder_size): Define here.
886         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
887         Declare.
888
889 2010-05-16  Richard Guenther  <rguenther@suse.de>
890
891         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
892         -fipa-type-escape.
893         * ipa-type-escape.c (gate_type_escape_vars): Run when
894         -fipa-struct-reorg runs.
895         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
896         * common.opt (fipa-type-escape): Remove.
897
898 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
899
900         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
901         (decode_options): Likewise.
902         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
903
904 2010-05-16  Jan Hubicka  <jh@suse.cz>
905
906         * ipa.c (function_and_variable_visibility): Also bring local all
907         aliases.
908
909 2010-05-16  Richard Guenther  <rguenther@suse.de>
910
911         * alias.c (nonoverlapping_memrefs_p): Remove use of
912         IPA type-escape information.
913
914 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
915
916         * c-common.c (c_common_reswords): Add _Static_assert for C.
917         * c-parser.c (c_token_starts_declaration,
918         c_parser_next_token_starts_declaration,
919         c_parser_static_assert_declaration_no_semi,
920         c_parser_static_assert_declaration): New.
921         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
922         Handle static assertions if static_assert_ok.
923         (c_parser_external_declaration, c_parser_declaration_or_fndef,
924         c_parser_compound_statement_nostart, c_parser_label,
925         c_parser_for_statement, c_parser_objc_methodprotolist,
926         c_parser_omp_for_loop): All callers of
927         c_parser_declaration_or_fndef changed.
928         (c_parser_struct_declaration): Handle static assertions.
929         (c_parser_compound_statement_nostart): Use
930         c_parser_next_token_starts_declaration and
931         c_token_starts_declaration to detect start of declarations.
932         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
933         Likewise.
934
935 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
936
937         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
938         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
939         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
940         TARGET_FUNCTION_VALUE_REGNO_P): Define.
941         (mmix_function_outgoing_value): Rename to...
942         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
943         (mmix_function_value_regno_p): Make static.
944         (mmix_libcall_value): New function.
945         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
946         mmix_function_value_regno_p): Remove declaration.
947
948 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
949
950         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
951         BUILT_IN_ALLOCA if stack checking is enabled.
952
953 2010-05-16  Richard Guenther  <rguenther@suse.de>
954
955         * var-tracking.c (vars_copy_1): Inline ...
956         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
957         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
958         (variable_merge_over_cur): Adjust.  Merge asserts.
959         (variable_merge_over_src): Likewise.
960         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
961         (variable_post_merge_new_vals): Merge asserts.
962         (variable_post_merge_perm_vals): Likewise.
963         (find_mem_expr_in_1pdv): Likewise.
964         (dataflow_set_different_value): Remove.
965         (onepart_variable_different_p): Merge asserts.
966         (variable_different_p): Likewise.
967         (dataflow_set_different_1): Inline ...
968         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
969         (emit_notes_for_differences_1): Merge asserts.
970
971 2010-05-16  Richard Guenther  <rguenther@suse.de>
972
973         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
974         * optabs.c (libfunc_decl_hash): Likewise.
975         * varasm.c (emutls_decl): Likewise.
976
977 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
978
979         * c-decl.c: Don't include gimple.h.
980         (merge_decls): Do not copy gimple_body.
981
982 2010-05-15  Jason Merrill  <jason@redhat.com>
983
984         * c.opt: Add -fnothrow-opt.
985
986 2010-05-15  Jan Hubicka  <jh@suse.cz>
987
988         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
989         analyzed.
990         * passes.c (ipa_write_summaries): Write all analyzed nodes.
991
992 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
993
994         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
995         * Makefile.in: Add it.
996         Fix all other Makefile dependencies for changes below.
997         * tree.h: Include it instead of defining VEC primitives here.
998         * gimple.h: Likewise.
999         * rtl.h: Likewise.
1000         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1001         * except.h: Include vecir.h, break dependence on tree.h.
1002
1003         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1004         Move from here...
1005         * tree-iterator.c: ...to here.
1006         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1007
1008         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1009         tm_p.h.
1010         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1011         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1012         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1013         tree-mudflap.h, and target.h.
1014         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1015         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1016         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1017         Add FIXME for why gimple.h is still included (should be unnecessary
1018         since GCC 4.5 gimplification unit-at-a-time).
1019         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1020         * c-pragma.c: Add FIXME for why function.h needs to be included just
1021         for cfun, at front-end level.
1022         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1023         Do not include ggc.h, but include vecprim.h for VEC(char).
1024         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1025         Explain why target.h is included.
1026         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1027         Explain why gimple.h is included.
1028         * c-ppoutput.c: Do not include tm.h.
1029         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1030         * c-parses.c: Explain why rtl.h is included, and that this (and only
1031         this) is also why tm.h must be included.
1032         Do not include except.h.
1033         * c-lang.c: Do not include ggc.h.
1034
1035 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1036
1037         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1038
1039 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
1040
1041         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1042         unions by default if those structs and unions have no tags.  Do
1043         not condition anonymous struct and unions handling on flag_iso.
1044         Allow anonymous structs and unions for C1X.
1045         (finish_struct): Do not diagnose lack of named fields when
1046         anonymous structs and unions present for C1X.  Accept flexible
1047         array members in structure with anonymous structs or unions but no
1048         directly named fields.
1049         * doc/extend.texi (Unnamed Fields): Update.
1050
1051 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1052
1053         * gimple.h (compare_field_offset): Rename into...
1054         (gimple_compare_field_offset): ...this.
1055         * gimple.c (compare_field_offset): Rename into...
1056         (gimple_compare_field_offset): ...this.  Compare the full access if
1057         the offset is self-referential.
1058         (gimple_types_compatible_p): Adjust for above renaming.
1059         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
1060         DECL_NONADDRESSABLE_P flag of fields before merging them.
1061
1062 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
1063
1064         * tree.h (ctor_to_list): Delete.
1065         * tree.c (ctor_to_list): Delete.
1066
1067 2010-05-15  Jan Hubicka  <jh@suse.cz>
1068
1069         * ipa-reference.c: Include toplev.h
1070         (is_proper_for_analysis): Only add to all_module_statics
1071         if it is allocated.
1072         (write_node_summary_p, stream_out_bitmap,
1073         ipa_reference_write_optimization_summary,
1074         ipa_reference_read_optimization_summary): New.
1075         (struct ipa_opt_pass_d pass_ipa_reference): Add
1076         optimization summary streaming.
1077         * lto-cgraph.c (referenced_from_this_partition_p,
1078         reachable_from_this_partition_p): New functions.
1079         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1080         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
1081         * opts.c (decode_options): Enable ipa_reference.
1082         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
1083         * lto-streamer.h (referenced_from_this_partition_p,
1084         reachable_from_this_partition_p): Declare.
1085
1086 2010-05-15  Richard Guenther  <rguenther@suse.de>
1087
1088         PR tree-optimization/44038
1089         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
1090         taking the address of a V_C_E of a constant.
1091
1092 2010-05-14  Jan Hubicka  <jh@suse.cz>
1093
1094         * tree.h (memory_identifier_string): Remove.
1095         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
1096         (ipa_reference_global_vars_info_d): Remove statics_not_read and
1097         statics_not_written.
1098         (ipa_reference_optimization_summary_d): New structure.
1099         (ipa_reference_optimization_summary_t): New type and vector.
1100         (ipa_reference_vars_info_d): Embedd structures instead of using
1101         pointers.
1102         (reference_vars_to_consider): Remove out of GGC space.
1103         (module_statics_escape): Remove.
1104         (global_info_obstack): Rename to ...
1105         (optimization_summary_obstack): ... this one.
1106         (initialization_status_t): Remove.
1107         (memory_identifier_string): Remove.
1108         (get_reference_vars_info): Fix indenting.
1109         (set_reference_vars_info): Likewise.
1110         (get_reference_optimization_summary): New.
1111         (set_reference_optimization_summary): New.
1112         (get_global_reference_vars_info): Remove.
1113         (ipa_reference_get_read_global): Remove.
1114         (ipa_reference_get_written_global): Remove.
1115         (ipa_reference_get_not_read_global): Update.
1116         (ipa_reference_get_not_written_global): Update.
1117         (is_proper_for_analysis): Outlaw addressable.
1118         (propagate_bits): Update for new datastructures.
1119         (analyze_variable): Remove.
1120         (init_function_info): Update for new datastructures.
1121         (clean_function_local_data): Remove.
1122         (clean_function): Remove.
1123         (copy_global_bitmap): Use optimizations_summary_obstack.
1124         (duplicate_node_data): Duplicate optimization summary only.
1125         (remove_node_data): Remove optimization summary only.
1126         (generate_summary): Do not analyze variables; do not compute
1127         module_statics_escape; do not prune solutions by it.
1128         (read_write_all_from_decl): Fix typos in comments.
1129         (propagate): Doscover readonly and nonaddressable first;
1130         update for new datastructures; share global bitmaps.
1131         * ipa-reference.h (ipa_reference_get_read_global,
1132         ipa_reference_get_written_global): Remove.
1133         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
1134         * Makefile.in: Remove ipa-refereference from GT files.
1135
1136 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1137
1138         PR debug/44112
1139         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
1140         for all SYMBOL_REF_DECLs.
1141
1142 2010-05-14  Jan Hubicka  <jh@suse.cz>
1143
1144         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
1145         (varpool_all_refs_explicit_p): New inline function.
1146         * ipa-reference.c: Update comment.
1147         (module_statics_written): Remove.
1148         (get_static_decl): Remove.
1149         (ipa_init): Do not initialize module_statics_written.
1150         (analyze_function): Likewise.
1151         (generate_summary): Likewise; do not compute module_statics_readonly
1152         and do not update variable flags.
1153         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
1154         * ipa.c: Inlucde flags.h
1155         (cgraph_local_node_p): New.
1156         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
1157         promote functions to local.
1158         (ipa_discover_readonly_nonaddressable_vars): New function.
1159         (function_and_variable_visibility): Use cgraph_local_node_p.
1160         * varpool.c (varpool_finalize_decl): Set force_output for
1161         DECL_PRESERVE_P vars.
1162
1163 2010-05-14  Jan Hubicka  <jh@suse.cz>
1164
1165         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
1166
1167 2010-05-14  Richard Guenther  <rguenther@suse.de>
1168
1169         PR tree-optimization/44119
1170         * tree-ssa-pre.c (eliminate): Properly mark replacement of
1171         a PHI node necessary.
1172
1173 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1174
1175         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
1176
1177 2010-05-14  Jason Merrill  <jason@redhat.com>
1178
1179         PR c++/44127
1180         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
1181         (gimple_call_set_nothrow): New.
1182         * gimple.c (gimple_build_call_from_tree): Call it.
1183         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
1184
1185         PR c++/44127
1186         * gimplify.c (gimplify_seq_add_stmt): No longer static.
1187         * gimple.h: Declare it.
1188         * gimple.c (gimple_build_eh_filter): No ops.
1189
1190 2010-05-14  Jan Hubicka  <jh@suse.cz>
1191
1192         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
1193         nodes already in queue.
1194         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
1195         re-enqueueing node.
1196
1197 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1198
1199         PR debug/44136
1200         * cfgexpand.c (expand_debug_expr): If non-memory op0
1201         has BLKmode, return NULL.
1202
1203 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
1204
1205         * config.gcc: Add support for --with-cpu option for bdver1.
1206         * config/i386/i386.h (TARGET_BDVER1): New macro.
1207         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
1208         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1209         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
1210         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1211         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
1212         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
1213         (processor_type): Add PROCESSOR_BDVER1.
1214         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
1215         processor_type in config/i386/i386.h.
1216         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
1217         movaps <reg, reg> instead of movapd <reg, reg> when replacing
1218         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
1219         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
1220         to emit packed xor instead of packed double/packed integer
1221         xor for SSE and AVX when moving a zero value.
1222         * config/i386/sse.md: Add check for
1223         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
1224         movapd/movdqa for SSE and AVX.
1225         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
1226         single logical operations i.e and, or and xor instead of packed double
1227         logical operations for SSE and AVX.
1228         * config/i386/i386-c.c (ix86_target_macros_internal):
1229         Add PROCESSOR_BDVER1.
1230         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
1231         (has_fma4, has_xop): New.
1232         * config/i386/i386.c (bdver1_cost): New variable.
1233         (m_BDVER1): New macro.
1234         (m_AMD_MULTIPLE): Add m_BDVER1.
1235         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
1236         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
1237         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
1238         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
1239         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
1240         x86_tune_sse_partial_reg_dependency,
1241         x86_tune_sse_unaligned_load_optimal,
1242         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
1243         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
1244         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
1245         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
1246         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1247         Enable/disable for bdver1.
1248         (processor_target_table): Add bdver1_cost.
1249         (cpu_names): Add bdver1.
1250         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
1251          processor_alias_table.
1252         (ix86_expand_vector_move_misalign): Change.
1253         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
1254         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
1255         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
1256         of movupd/movdqu for SSE and AVX.
1257         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
1258         (ix86_tune_adjust_cost): Add code for bdver1.
1259         (standard_sse_constant_opcode): Add check for
1260         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
1261         of packed double xor for SSE and AVX.
1262
1263 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
1264
1265         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
1266         result to unsigned.
1267
1268 2010-05-14  Tristan Gingold  <gingold@adacore.com>
1269
1270         * toplev.c (default_debug_hooks): Remove this variable.
1271         (process_options): Remove assignments to default_debug_hooks.
1272
1273 2010-05-14  Martin Jambor  <mjambor@suse.cz>
1274
1275         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
1276         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
1277         * langhooks.h (struct lang_hooks_for_decls): Removed field
1278         fold_obj_type_ref.
1279         * tree.c (free_lang_data): Remove assignment to
1280         lang_hooks.fold_obj_type_ref.
1281         * tree.def (OBJ_TYPE_REF): Update comment.
1282
1283 2010-05-14  Richard Guenther  <rguenther@suse.de>
1284
1285         PR tree-optimization/44124
1286         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
1287
1288 2010-05-14  Alan Modra  <amodra@gmail.com>
1289
1290         PR target/44075
1291         * config/rs6000/rs6000.c (struct machine_function): Reorder
1292         fields for better packing.  Add lr_save_state.
1293         (rs6000_ra_ever_killed): Return lr_save_state if set.
1294         (rs6000_emit_eh_reg_restore): Set lr_save_state.
1295
1296 2010-05-13  Jan Hubicka  <jh@suse.cz>
1297
1298         * varpool.c (decide_is_variable_needed): Drop code checking
1299         TREE_SYMBOL_REFERENCED.
1300
1301 2010-05-13  Jan Hubicka  <jh@suse.cz>
1302
1303         * final.c (output_addr_const): Do not call mark_decl_referenced.
1304         * cgraphunit.c (process_function_and_variable_attributes): Use
1305         mark_needed_node dirrectly.
1306         (assemble_thunk): Do not call mark_decl_referenced.
1307
1308 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
1309
1310         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
1311
1312 2010-05-13  Jeff Law  <law@redhat.com>
1313
1314         * ira-conflicts.c (print_allocno_conflicts): New function broken out
1315         from...
1316         (print_conflicts): Call print_allocno_conflicts.
1317
1318 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1319
1320         PR debug/44104
1321         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
1322         if it is NULL.
1323
1324 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
1325
1326         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
1327         t-mingw-w64 or t-mingw-w32 for multilib configuration.
1328         * config/i386/t-mingw-w32: New.
1329         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
1330
1331 2010-05-13  Martin Jambor  <mjambor@suse.cz>
1332
1333         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
1334         gimple-fold.c).
1335         * gimple-fold.c (get_base_binfo_for_type): New function.
1336         (gimple_get_relevant_ref_binfo): Likewise.
1337         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1338         (gimple_fold_obj_type_ref): Likewise.
1339         (fold_gimple_call): Simplify condition for folding virtual calls
1340         and call gimple_fold_obj_type_ref.
1341         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
1342         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1343
1344 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
1345
1346         * config/rs6000/rs6000-protos.h
1347         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
1348         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
1349         (rs6000_debug_mode_dependent_address)
1350         (rs6000_mode_dependent_address_ptr): Likewise.
1351
1352 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1353
1354         PR debug/43983
1355         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
1356         by SRA.
1357         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
1358         * tree-sra.c (create_access_replacement): Call unshare_expr before
1359         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
1360         * dwarf2out.c: Include tree-flow.h.
1361         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
1362         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
1363         Handle DW_OP_bit_piece.
1364         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
1365         construct_piece_list, adjust_piece_list): New functions.
1366         (add_var_loc_to_decl): Handle SRA optimized variables.
1367         Adjust for var_loc_note to loc field renaming.
1368         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
1369         in VAR_LOCATION note.
1370         (new_loc_descr_op_bit_piece): New function.
1371         (dw_sra_loc_expr): New function.
1372         (dw_loc_list): Use it.  Don't handle the last range after the
1373         loop, handle it inside of the loop.  Adjust for var_loc_note
1374         to loc field renaming.
1375         (add_location_or_const_value_attribute): Only special case
1376         single entry loc lists if loc is NOTE_P.  Adjust for
1377         var_loc_note to loc field renaming.
1378         (dwarf2out_var_location): Don't set newloc->var_loc_note
1379         and newloc->next here.
1380
1381 2010-05-12  Jan Hubicka  <jh@suse.cz>
1382
1383         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
1384         flag.
1385         * cgraph.h (cgraph_only_called_directly_p,
1386         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
1387         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
1388         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
1389         (assemble
1390         * ipa.c (cgraph_remove_unreachable_nodes): Use
1391         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
1392         flags.
1393         * tree-inline.c (copy_bb): Check address_taken flag.
1394         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
1395         externally_visible flag.
1396
1397 2010-05-12  Jason Merrill  <jason@redhat.com>
1398
1399         PR bootstrap/44048
1400         PR target/44099
1401         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
1402         * sdbout.c (plain_type_1): Likewise.
1403         * dwarf2out.c (is_base_type): Likewise.
1404         (gen_type_die_with_usage): Likewise.  Generate
1405         DW_TAG_unspecified_type for any LANG_TYPE.
1406
1407 2010-05-12  Jan Hubicka  <jh@suse.cz>
1408
1409         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
1410         indrect edges too.
1411         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
1412         (cgraph_clone_edge): Update.
1413         (cgraph_node_remove_callees): Remove indirect calls too.
1414         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
1415         (cgraph_create_indirect_edge): Update prototype.
1416         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
1417         is_proper_for_analysis.
1418         (add_new_function, visited_nodes, function_insertion_hook_holder,
1419         get_local_reference_vars_info, mark_address_taken, mark_address,
1420         mark_load, mark_store, check_asm_memory_clobber, check_call,
1421         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
1422         (ipa_init): Do not initialize visited_nodes;
1423         function_insertion_hook_holder.
1424         (analyze_variable): Rewrite.
1425         (analyze_function): Rewrite.
1426         (copy_local_bitmap): Remove.
1427         (duplicate_node_dat): Do not duplicate local info.
1428         (generate_summary): Simplify to only walk cgraph.
1429         (write_node_summary_p, ipa_reference_write_summary,
1430         ipa_reference_read_summary): Remove.
1431         (propagate): Do not remove function insertion;
1432         generate summary.
1433         (pass_ipa_reference): NULLify summary handling fields.
1434         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
1435         (input_edge): Input ecf_flags.
1436         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
1437         (update_indirect_edges_after_inlining): Ignore edges with unknown
1438         param.
1439
1440 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
1441
1442         * implicit-zee.c: New file.
1443         * tree-pass.h (pass_implicit_zee): Declare.
1444         * passes.c (init_optimization_passes): Add zee pass.
1445         * common.opt (fzee): New flag.
1446         * timevar.def (TV_ZEE): Define.
1447         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
1448         and beyond.
1449         * Makefile.in (implicit-zee.o): Add new build file.
1450
1451 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1452             Nathan Froyd  <froydnj@codesourcery.com>
1453
1454         * c-common.c (sync_resolve_params): Remove write-only variable.
1455
1456 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
1457
1458         * target.h (struct gcc_target): Add mode_dependent_address_p field.
1459         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1460         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
1461         * targhooks.c (default_mode_dependent_address_p): New function.
1462         * targhooks.h (default_mode_dependent_address_p): Declare function.
1463         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
1464         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
1465         * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
1466         target hook. Change return type to bool.
1467         * recog.h: (mode_dependent_address_p): Change return type to bool.
1468
1469 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1470             Nathan Froyd  <froydnj@codesourcery.com>
1471
1472         * tree-mudflap.c (build_function_type_0, build_function_type_1,
1473         build_function_type_2, build_function_type_3): Remove.
1474         (mudflap_init): Use build_function_type_list.
1475
1476 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
1477             Nathan Froyd  <froydnj@codesourcery.com>
1478
1479         * coverage.c (build_fn_info_value): Call build_constructor instead of
1480         build_constructor_from_list.
1481         (build_ctr_info_value): Likewise.
1482         (build_gcov_info): Likewise.
1483
1484 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
1485
1486         * tree.c (build_constructor): Compute TREE_CONSTANT for the
1487         resultant constructor.
1488         (build_constructor_single): Don't set TREE_CONSTANT.
1489         (build_constructor_from_list): Don't compute TREE_CONSTANT.
1490
1491 2010-05-12  Jan Hubicka  <jh@suse.cz>
1492
1493         * cgraph.h (struct varpool_node): Add aux.
1494         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
1495         * varpool.c (varpool_remove_node): Do not remove initializer.
1496         (varpool_reset_queue): Export.
1497         (varpool_finalize_decl): Volatile vars are forced to be output.
1498         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
1499         replaced decl.
1500         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
1501         process_references, varpool_can_remove_if_no_refs): New functions.
1502         (cgraph_remove_unreachable_nodes): Handle variables too.
1503
1504 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1505
1506         PR target/44088
1507         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
1508
1509 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
1510
1511         PR middle-end/44085
1512         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
1513         change value of ORT_TASK.
1514         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
1515         (omp_notice_threadprivate_variable): New function.
1516         (omp_notice_variable): Call it for threadprivate variables.
1517         If enclosing ctx is a task, print enclosing task rather than
1518         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
1519         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
1520         if task has untied clause.
1521
1522         PR debug/42278
1523         * dwarf2out.c (base_type_die): Don't add name attribute here.
1524         (modified_type_die): Instead of sizetype use
1525         its underlying original type.  If a DW_TAG_base_type doesn't
1526         have name added, add __unknown__.
1527         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
1528         always call force_type_die instead.
1529
1530 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
1531
1532         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
1533         for __stack_chk_guard.
1534
1535 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1536
1537         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
1538         don't call start_source_file debug hook here...
1539         (finish_options): ... but here, after outputting predefined and
1540         command line defines and undefs.
1541
1542         PR middle-end/44071
1543         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
1544         no fallthru edge.
1545         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
1546         optimizing away empty bb with no successors, move over its
1547         footer chain to fallthru predecessor.
1548         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
1549         (rtl_split_edge): For asm goto call patch_jump_insn even if
1550         splitting fallthru edge.
1551
1552         PR c++/44059
1553         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
1554         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
1555         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
1556         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
1557         on DW.ref.* decls.
1558
1559         PR c++/44062
1560         * c-parser.c (c_parser_expression): Mark LHS of a comma
1561         expression as read if it is a decl, handled component or
1562         COMPOUND_EXPR with that on the RHS.
1563         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
1564         if it is a decl or handled component.
1565
1566 2010-05-11  Jan Hubicka  <jh@suse.cz>
1567
1568         * lto-symtab.c (lto_symtab_free): New function.
1569         * lto-streamer.h (lto_symtab_free): Declare.
1570
1571 2010-05-11  Jan Hubicka  <jh@suse.cz>
1572
1573         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
1574         that if function is needed it is reachable.
1575         (lto_output_node): See if it the function is reachable or referenced.
1576         (output_cgraph): Update call of lto_output_node.
1577         * lto-streamer.h (reachable_from_other_partition_p): Declare.
1578
1579 2010-05-11  Jan Hubicka  <jh@suse.cz>
1580
1581         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
1582         Mark as used.
1583
1584 2010-05-11  Jan Hubicka  <jh@suse.cz>
1585
1586         PR tree-optimize/44063
1587         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
1588         queue.
1589         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
1590         limits.
1591         (estimate_function_body_sizes): Compute sizes even when disregarding.
1592
1593 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
1594
1595         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
1596
1597 2010-05-11  Jan Hubicka  <jh@suse.cz>
1598
1599         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
1600         into every boundary.
1601
1602 2010-05-11  Jan Hubicka  <jh@suse.cz>
1603
1604         * matrix-reorg.c (matrix_reorg): Rebuild edges.
1605
1606 2010-05-11  Jan Hubicka  <jh@suse.cz>
1607
1608         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
1609         lto_streamer_cache_delete): Put nodes into heap.
1610         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
1611         heap.
1612
1613 2010-05-11  Jan Hubicka  <jh@suse.cz>
1614
1615         * cgraphbuild.c (cgraph_rebuild_references): New.
1616         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
1617         out extern inlines.
1618         * cgraph.h (cgraph_rebuild_references): Declare.
1619         * tree-inline.c (tree_function_versioning): Use it.
1620         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
1621
1622 2010-05-11  Jan Hubicka  <jh@suse.cz>
1623
1624         * cgraph.c: Include ipa-utils.h
1625         (cgraph_create_virtual_clone): Update references.
1626         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
1627
1628 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1629
1630         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
1631         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
1632         cache size.
1633
1634 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
1635
1636         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
1637
1638 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1639
1640         * gcc.c (execute): For -### don't quote arguments that
1641         contain just alphanumerics and _/-. characters.
1642         * doc/invoke.texi: Document that change for -###.
1643
1644         PR debug/44023
1645         * df-problems.c (struct dead_debug): Add to_rescan field.
1646         (dead_debug_init): Clear to_rescan field.
1647         (dead_debug_finish): Rescan all debug insns in to_rescan
1648         bitmap and free the bitmap.
1649         (dead_debug_insert_before): Instead of rescanning debug insns
1650         immediately queue their rescanning until dead_debug_finish.
1651         (df_note_bb_compute): After dead_debug_add do continue instead
1652         of break.
1653
1654 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
1655
1656         PR debug/44028
1657         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
1658         clear also INSN_REG_USE_LIST.
1659
1660 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1661
1662         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
1663
1664 2010-05-10  Jan Hubicka  <jh@suse.cz>
1665
1666         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
1667         commited change.
1668
1669 2010-05-10  Jan Hubicka  <jh@suse.cz>
1670
1671         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
1672         Allocate encoders.
1673         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
1674         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
1675         (lto_streamer_cache_create): Init alloc pool.
1676         (lto_streamer_cache_delete): Free alloc pool.
1677         * lto-streamer.h: Include alloc pool.
1678         (lto_streamer_cache_d): Use alloc pool.
1679         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
1680
1681 2010-05-10  Jan Hubicka  <jh@suse.cz>
1682
1683         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
1684         * cgraphbuild.c: Include except.h
1685         (record_type_list, record_eh_tables): New function.
1686         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
1687
1688 2010-05-10  Jan Hubicka  <jh@suse.cz>
1689
1690         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
1691         __frame_dummy_init_array_entry, force_to_data): Attribute as used
1692         rather than unused.
1693
1694 2010-05-10  Michael Matz  <matz@suse.de>
1695
1696         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
1697         (can_reassociate_p): Use FLOAT_TYPE_P.
1698         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
1699         (vect_force_simple_reduction): ... this.
1700         * tree-parloops.c (gather_scalar_reductions): Use
1701         vect_force_simple_reduction.
1702         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
1703         vect_is_simple_reduction, add modify argument, if true rewrite
1704         "a-b" into "a+(-b)".
1705         (vect_is_simple_reduction, vect_force_simple_reduction): New
1706         functions.
1707         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
1708
1709 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1710             Vladimir Makarov  <vmakarov@redhat.com>
1711
1712         PR rtl-optimization/44012
1713         * ira-build.c (remove_unnecessary_allocnos): Nullify
1714         regno_allocno_map of the removed allocno.
1715
1716 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1717
1718         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
1719         to /dev/null.
1720         * configure: Regenerate.
1721
1722 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1723
1724         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
1725         unused.
1726         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
1727         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
1728         support in Sun ld.
1729         * configure: Regenerate.
1730
1731 2010-05-10  Richard Guenther  <rguenther@suse.de>
1732
1733         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
1734         marked if the entry identifier is marked.
1735
1736 2010-05-10  Richard Guenther  <rguenther@suse.de>
1737
1738         * c-common.c (struct c_common_attributes): Add fnspec attribute.
1739         (handle_fnspec_attribute): New function.
1740         * gimple.h (gimple_call_return_flags): Declare.
1741         (gimple_call_arg_flags): Likewise.
1742         * gimple.c (gimple_call_arg_flags): New function.
1743         (gimple_call_return_flags): Likewise.
1744         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
1745         New argument flags.
1746         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
1747         return value flags.
1748         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
1749         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
1750         main work to ...
1751         (make_heapvar_for): ... this new function.
1752         (handle_rhs_call): Handle fnspec attribute argument specifiers.
1753         (handle_lhs_call): Likewise.
1754         (find_func_aliases): Adjust.
1755
1756 2010-05-10  Richard Guenther  <rguenther@suse.de>
1757
1758         PR tree-optimization/44050
1759         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
1760
1761 2010-05-10  Wei Guozhi  <carrot@google.com>
1762
1763         PR target/42879
1764         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
1765
1766 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
1767
1768         PR c/10676
1769         * c-typeck.c (lookup_field): Take a type directly.  Update
1770         recursive calls.
1771         (build_component_ref): Update call to lookup_field.
1772         (set_init_label): Use lookup_field to find initialized field.
1773         Handle returned list of fields like a sequence of designators.
1774
1775 2010-05-09  Richard Guenther  <rguenther@suse.de>
1776
1777         PR middle-end/44024
1778         * fold-const.c (tree_single_nonzero_warnv_p): Properly
1779         handle &FUNCTION_DECL.
1780
1781 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
1782
1783         PR c/4784
1784         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
1785         structures and unions recursively.
1786         (detect_field_duplicates): Move duplicate detection with a hash to
1787         detect_field_duplicates_hash.  Always use a hash if anonymous
1788         structures or unions are present.
1789         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
1790         give errors.
1791
1792 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1793
1794         PR target/44046
1795         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
1796         detect Atom, Core 2 and Core i7.
1797
1798 2010-05-09  Richard Guenther  <rguenther@suse.de>
1799
1800         * gcc.c (store_arg): Handle temporary file deletion for
1801         joined arguments.
1802
1803 2010-05-09  Richard Guenther  <rguenther@suse.de>
1804
1805         PR middle-end/44043
1806         * ipa-inline.c (estimate_function_body_sizes): Return after
1807         disregarding inline limits.
1808
1809 2010-05-09  Richard Guenther  <rguenther@suse.de>
1810
1811         * gcc.c (store_arg): Revert last change.
1812
1813 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
1814
1815         PR middle-end/28685
1816         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
1817         (optimize_ops_list): Call it.
1818
1819 2010-05-08  Richard Guenther  <rguenther@suse.de>
1820
1821         PR tree-optimization/44030
1822         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
1823         NECESSARY flag if we propagate from a inserted expression.
1824
1825 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
1826
1827         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
1828         domain types as equal if they are both PLACEHOLDER_EXPRs.
1829
1830 2010-05-08  Richard Guenther  <rguenther@suse.de>
1831
1832         * lto-wrapper.c (run_gcc): Remove linker output from
1833         command line for LTRANS invocation.
1834
1835 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1836
1837         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1838         lto-macho as lto_binary_reader.
1839         * target.h (struct gcc_target): New hooks lto_start and lto_end.
1840         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
1841         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
1842         in lto_start and lto_end calls.
1843         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
1844         magic numbers.
1845         (scan_prog_file): Update is_elf_or_coff call.
1846         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
1847
1848         * collect2.c (main): Fix enum comparison.
1849
1850         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
1851         Add prototypes.
1852         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
1853         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
1854         and TARGET_ASM_LTO_END.
1855         * darwin.c: Include obstack.h and lto-streamer.h.
1856         (lto_section_names_offset, lto_section_names_obstack,
1857         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
1858         global variables.
1859         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
1860         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
1861         to a temporary file.
1862         (darwin_asm_lto_end): New function.  Restore asm_out_file.
1863         (darwin_asm_named_section): For LTO sections, replace the name with
1864         the offset of the section name in a string table, and build this
1865         table.
1866         (darwin_file_start): Initialize global vars for LTO support.
1867         (darwin_file_end): If output to asm_out_file was redirected, append it
1868         to the proper asm_out_file here.  Add the section names section.
1869
1870 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1871
1872         * c-pragma.c (pending_weak_d, pending_weak): New.
1873         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
1874         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
1875         handle_pragma_weak): Update the uses of pending_weaks.
1876
1877 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1878
1879         PR documentation/44016
1880         * doc/standards.texi (Standards): Link to unversioned
1881         cxx0x_status.html page.
1882
1883 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
1884
1885         PR target/43708
1886         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
1887         in addition to TREE_USED, to avoid "set but unused" warnings.
1888
1889 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1890
1891         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
1892         (is_loop_prefetching_profitable): Do not insert prefetches
1893         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
1894         times the prefetch ahead distance.
1895
1896 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1897
1898         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
1899         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
1900         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
1901         the unroll_factor.
1902
1903 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
1904
1905         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
1906         a diagnostic info when the insn-to-mem ratio is too small.
1907
1908 2010-05-07  Richard Guenther <rguenther@suse.de>
1909
1910         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
1911         the linker plugin.
1912         (store_arg): Queue temp_filename for deletion instead of
1913         the whole argument.
1914
1915 2010-05-07  Richard Guenther  <rguenther@suse.de>
1916
1917         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
1918         (run_gcc): Handle LTRANS phase invocation.
1919         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
1920
1921 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
1922
1923         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
1924         this is also meaningful on PARM_DECLs and RESULT_DECLs.
1925
1926 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1927
1928         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
1929
1930 2010-05-07  Richard Guenther  <rguenther@suse.de>
1931
1932         PR tree-optimization/44020
1933         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
1934         code when PRE is not yet initialized.
1935
1936 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1937
1938         * config/mips/dbxmdebug.h: Remove.
1939         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
1940
1941 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
1942
1943         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
1944         with null pointer and also warn about ordered comparison of zero with
1945         pointer if -Wextra.
1946
1947 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1948
1949         * graphite-blocking.c
1950         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
1951         * graphite-clast-to-gimple.c
1952         (clast_to_gcc_expression): Same.
1953         (precision_for_value): Same.
1954         (precision_for_interval): Same.
1955         (gcc_type_for_interval): Same.
1956         (graphite_create_new_guard): Same.
1957         (compute_bounds_for_level): Same.
1958         (graphite_create_new_loop_guard): Same.
1959         * graphite-interchange.c
1960         (build_linearized_memory_access): Same.
1961         (pdr_stride_in_loop): Same.
1962         (memory_strides_in_loop_1): Same.
1963         (memory_strides_in_loop): Same.
1964         (extend_scattering): Same.
1965         (psct_scattering_dim_for_loop_depth): Same.
1966         (pbb_number_of_iterations): Same.
1967         * graphite-poly.h
1968         (debug_iteration_domains): Same.
1969         * graphite-ppl.c
1970         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1971         (ppl_set_inhomogeneous_gmp): Same.
1972         (ppl_strip_loop): Same.
1973         (ppl_lexico_compare_linear_expressions): Same.
1974         (ppl_read_polyhedron_matrix): Same.
1975         (ppl_max_for_le_pointset): Same.
1976         * graphite-ppl.h
1977         (ppl_read_polyhedron_matrix): Same.
1978         (tree_int_to_gmp): Same.
1979         (gmp_cst_to_tree): Same.
1980         (ppl_set_inhomogeneous): Same.
1981         (ppl_set_inhomogeneous_tree): Same.
1982         (ppl_set_coef): Same.
1983         (ppl_set_coef_tree): Same.
1984         * graphite-sese-to-poly.c
1985         (build_pbb_scattering_polyhedrons): Same.
1986         (build_scop_scattering): Same.
1987         (scan_tree_for_params_right_scev): Same.
1988         (scan_tree_for_params): Same.
1989         (find_params_in_bb): Same.
1990         (find_scop_parameters): Same.
1991         (add_upper_bounds_from_estimated_nit): Same.
1992         (build_loop_iteration_domains): Same.
1993         (add_condition_to_domain): Same.
1994         (pdr_add_memory_accesses): Same.
1995
1996 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1997
1998         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
1999         CLooG's value_* macros to their respective mpz_* counterparts.
2000         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2001         (graphite_create_new_loop_guard): Same.
2002         * graphite-interchange.c (build_linearized_memory_access): Same.
2003         (pdr_stride_in_loop): Same.
2004         (memory_strides_in_loop_1): Same.
2005         (1st_interchange_profitable_p): Same.
2006         * graphite-poly.c (extend_scattering): Same.
2007         (psct_scattering_dim_for_loop_depth): Same.
2008         (pbb_number_of_iterations): Same.
2009         (pbb_number_of_iterations_at_time): Same.
2010         * graphite-poly.h (new_1st_loop): Same.
2011         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2012         (oppose_constraint): Same.
2013         (insert_constraint_into_matrix): Same.
2014         (ppl_set_inhomogeneous_gmp): Same.
2015         (ppl_set_coef_gmp): Same.
2016         (ppl_strip_loop): Same.
2017         (ppl_lexico_compare_linear_expressions): Same.
2018         (ppl_max_for_le_pointset): Same.
2019         (ppl_min_for_le_pointset): Same.
2020         (ppl_build_realtion): Same.
2021         * graphite-ppl.h (gmp_cst_to_tree): Same.
2022         (ppl_set_inhomogeneous): Same.
2023         (ppl_set_inhomogeneous_tree): Same.
2024         (ppl_set_coef): Same.
2025         (ppl_set_coef_tree): Same.
2026         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2027         (build_scop_scattering): Same.
2028         (add_value_to_dim): Same.
2029         (scan_tree_for_params_right_scev): Same.
2030         (scan_tree_for_params_int): Same.
2031         (scan_tree_for_params): Same.
2032         (find_params_in_bb): Same.
2033         (find_scop_parameters): Same.
2034         (add_upper_bounds_from_estimated_nit): Same.
2035         (build_loop_iteration_domains): Same.
2036         (create_linear_expr_from_tree): Same.
2037         (add_condition_to_domain): Same.
2038         (pdr_add_memory_accesses): Same.
2039
2040 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2041             Jason Merrill  <jason@redhat.com>
2042
2043         * c-common.c (c_common_reswords): Add nullptr.
2044         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
2045         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2046         (gen_type_die_with_usage): Likewise.
2047         * dbxout.c (dbxout_type): Likewise.
2048         * sdbout.c (plain_type_1): Likewise.
2049
2050 2010-05-06  Jason Merrill  <jason@redhat.com>
2051
2052         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2053         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
2054         ret appropriately.
2055         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2056
2057         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
2058         stripping WITH_SIZE_EXPR.
2059         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
2060         change.
2061
2062 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2063
2064         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
2065         list of obsolete configurations.
2066         Disabled check for obsolete configurations.
2067         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
2068         Removed support for previous versions.
2069         * config/mips/iris.h: Removed.
2070         * config/mips/iris5.h: Removed.
2071         * config/mips/iris6.h: Merged old iris.h contents.
2072         (TARGET_IRIX): Removed.
2073         (DRIVER_SELF_SPECS): Removed mabi=32.
2074         (IDENT_ASM_OP): Removed undef.
2075         (STARTFILE_SPEC): Removed mabi=32.
2076         (ENDFILE_SPEC): Likewise.
2077         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
2078         (MACHINE_TYPE): Update for IRIX 6.5.
2079         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
2080         TARGET_IRIX by TARGET_IRIX6.
2081         (mips_file_start): Likewise.
2082         (mips_output_external): Remove IRIX 5/6 O32 support.
2083         (mips_output_function_prologue): Likewise.
2084         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
2085         TARGET_IRIX6.
2086         (TARGET_CPU_CPP_BUILTINS): Likewise.
2087         (TARGET_IRIX): Removed.
2088         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
2089         (MULTILIB_DIRNAMES): Removed 32.
2090         (MULTILIB_OSDIRNAMES): Removed ../lib.
2091         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
2092         (Specific, mips-sgi-irix5): Document removal.
2093         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
2094         Remove references to older IRIX 6 releases and the O32 ABI.
2095
2096 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
2097
2098         PR bootstrap/43994
2099         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
2100         instead of DF_REF_REAL_REG.
2101
2102 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2103
2104         PR target/43888
2105         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
2106         handling to still return true for x64 targets.
2107
2108 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2109
2110         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
2111
2112 2010-05-06  Jan Hubicka  <jh@suse.cz>
2113
2114         PR tree-optimization/43791
2115         * ipa-inline.c (update_caller_keys): Remove bogus
2116         disregard_inline_limits check.
2117
2118 2010-05-06  Michael Matz  <matz@suse.de>
2119
2120         PR tree-optimization/43984
2121         * tree-ssa-pre.c (inserted_phi_names): Remove.
2122         (inserted_exprs): Change to bitmap.
2123         (create_expression_by_pieces): Set bits, don't append to vector.
2124         (insert_into_preds_of_block): Don't handle inserted_phi_names.
2125         (eliminate): Don't look at inserted_phi_names, remove deleted
2126         insns from inserted_exprs.
2127         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
2128         (init_pre, fini_pre): Allocate and free bitmaps.
2129         (execute_pre): Insert insns on edges before elimination.
2130
2131 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2132
2133         * tree.c (initializer_zerop): Handle STRING_CST.
2134
2135 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2136
2137         PR 40989
2138         * doc/invoke.texi (Wimplicit): Document as C only.
2139         * opts.c (common_handle_option): Add argument kind.
2140         (handle_option): Rename as read_cmdline_option. Factor out code to...
2141         (handle_option): ... here. New.
2142         (handle_options): Rename as read_cmdline_options.
2143         (decode_options): Update call.
2144         (set_option): Use option index instead of option pointer. Classify
2145         diagnostics correctly.
2146         (enable_warning_as_error): Call handle_option.
2147         * opts.h (set_option): Update declaration.
2148         (handle_option): Declare.
2149         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
2150         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
2151         * c-opts.c (set_Wimplicit): Delete.
2152         (c_family_lang_mask): New static constant.
2153         (c_common_handle_option): Add argument kind. Use handle_option
2154         instead of set_Wimplicit.
2155         (c_common_post_options): warn_implicit and warn_implicit_int
2156         are disabled by default.
2157         * c-common.c (warn_implicit): Do not define here.
2158         * c-common.h (warn_implicit): Do not declare here.
2159         (c_common_handle_option): Update declaration.
2160         * lto-opts.c (lto_reissue_options): Update call to set_option.
2161
2162 2010-05-06  Richard Guenther  <rguenther@suse.de>
2163
2164         PR tree-optimization/43571
2165         * domwalk.c (walk_dominator_tree): Walk the dominator
2166         sons in more optimal order.
2167
2168 2010-05-06  Richard Guenther  <rguenther@suse.de>
2169
2170         PR tree-optimization/43934
2171         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
2172         (stmt_cost): Likewise.
2173         (extract_true_false_args_from_phi): New helper.
2174         (determine_max_movement): For PHI nodes verify we can hoist them
2175         and compute their cost.
2176         (determine_invariantness_stmt): Handle PHI nodes.
2177         (move_computations_stmt): Likewise.  Hoist PHI nodes in
2178         if-converted form using COND_EXPRs.
2179         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
2180         (tree_ssa_lim): Likewise.
2181         * tree-flow.h (tree_ssa_lim): Adjust prototype.
2182         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
2183
2184 2010-05-06  Richard Guenther  <rguenther@suse.de>
2185
2186         PR tree-optimization/43987
2187         * tree-ssa-structalias.c (could_have_pointers): For possibly
2188         address-taken variables force pointers to be recorded.
2189         (create_variable_info_for_1): Likewise.
2190         (push_fields_onto_fieldstack): Pass in wheter all fields
2191         must have pointers.
2192         (find_func_aliases): Query types instead of vars whether
2193         they contain pointers where appropriate.
2194
2195 2010-05-06  Jan Hubicka  <jh@suse.cz>
2196
2197         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
2198         (record_reference, mark_address, mark_load, mark_store): Record
2199         references.
2200         (record_references_in_initializer): Update call of record_references.
2201         (rebuild_cgraph_edges): Remove all references before rebuiding.
2202         * cgraph.c (cgraph_create_node): Clear ref list.
2203         (cgraph_remove_node): Remove references.
2204         (dump_cgraph_node): Dump references.
2205         (cgraph_clone_node): Clone references.
2206         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
2207         (struct cgraph_node, varpool_node): Add ref_lst.
2208         * ipa-ref.c: New file.
2209         * ipa-ref.h: New file.
2210         * ipa-ref-inline.h: New file.
2211         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
2212         (referenced_from_other_partition_p): New function.
2213         (lto_output_varpool_node): Take set arugment; call
2214         referenced_from_other_partition.
2215         (lto_output_ref): New.
2216         (add_references): New.
2217         (output_refs): New.
2218         (output_cgraph): Compute boundary based on references; output refs.
2219         (output_varpool): Accept cgraph_node_set argument.
2220         (input_ref): New.
2221         (input_refs): New.
2222         (input_cgraph): Call input_refs.
2223         * lto-section-in.c (lto_section_name): Add refs.
2224         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
2225         (ipa-ref.o): New file.
2226         * varpool.c (varpool_node): Clear ipa ref list.
2227         (varpool_remove_node): Remove references.
2228         (dump_varpool_node): Dump references.
2229         (varpool_assemble_decl): Only compile finalized ones.
2230         (varpool_extra_name_alias): Initialize ref list.
2231         * lto-streamer.c (lto-get_section_name): Add .refs section.
2232         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
2233         (referenced_from_other_partition_p): Declared.
2234
2235 2010-05-06  Ira Rosen  <irar@il.ibm.com>
2236
2237         PR tree-optimization/43901
2238         * tree-vect-stmts.c (vectorizable_call): Assert that vector
2239         type is not NULL if it's transformation phase, and return
2240         FALSE if it's analysis.
2241         (vectorizable_conversion, vectorizable_operation,
2242         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
2243
2244 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
2245
2246         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2247         Delete.
2248         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2249         New define.
2250         * config/mips/mips-protos.h
2251         (mips_small_register_classes_for_mode_p): Delete prototype.
2252
2253 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
2254
2255         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
2256         * config/arm/arm.c (multiple_operation_profitable_p,
2257         compute_offset_order): New static functions.
2258         (load_multiple_sequence, store_multiple_sequence): Use them.
2259         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
2260         memory offsets, not register numbers.
2261         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
2262
2263 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
2264
2265         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
2266         (get_pending_sizes, put_pending_size, put_pending_sizes):
2267         Update the uses of pending_sizes.
2268         * c-decl.c (store_parm_decls): Likewise.
2269         * c-tree.h (struct c_arg_info): Likewise.
2270         * tree.h: Update the prototype for get_pending_sizes and
2271         put_pending_sizes.
2272
2273 2010-05-05  Jason Merrill  <jason@redhat.com>
2274
2275         PR debug/43370
2276         * c-common.c (handle_aligned_attribute): Respect
2277         ATTR_FLAG_TYPE_IN_PLACE.
2278
2279         PR testsuite/43758
2280         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
2281         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2282         (TARGET_INITIALIZER): Use it.
2283         * c-common.c (attribute_takes_identifier_p): Call it.
2284         * c-common.h: Update prototype.
2285         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
2286         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2287
2288 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2289
2290         PR debug/43950
2291         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
2292         DW_ID_down_case for Fortran compilation units.
2293
2294 2010-05-05  Jan Hubicka  <jh@suse.cz>
2295
2296         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
2297         handle aliases.
2298
2299 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2300
2301         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
2302         a variable-sized RESULT_DECL.
2303
2304 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
2305
2306         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
2307
2308 2010-05-05  Jason Merrill  <jason@redhat.com>
2309
2310         PR c++/43787
2311         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
2312         returns GS_OK.
2313         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
2314
2315 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
2316             Jakub Jelinek  <jakub@redhat.com>
2317
2318         PR debug/43478
2319         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
2320         (dead_debug_init, dead_debug_finish): New functions.
2321         (dead_debug_add, dead_debug_insert_before): Likewise.
2322         (df_note_bb_compute): Initialize a dead_debug object, add dead
2323         debug uses to it, insert debug bind insns before death insns,
2324         reset debug insns that refer to pending uses at the end.
2325         * rtl.h (make_debug_expr_from_rtl): New prototype.
2326         * varasm.c (make_debug_expr_from_rtl): New function.
2327
2328 2010-05-05  Jan Hubicka  <jh@suse.cz>
2329
2330         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
2331         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
2332         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
2333         lto_varpool_encoder_deref, lto_varpool_encoder_size,
2334         lto_varpool_encoder_encode_initializer_p,
2335         lto_set_varpool_encoder_encode_initializer): New functions.
2336         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
2337         call output_varpool.
2338         (input_varpool_node): Do not always set analyzed.
2339         (input_cgraph_1): Return vector of cgraph nodes.
2340         (input_varpool_1): Return vector of varpools.
2341         (input_cgraph): Free the vectors.
2342         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2343         output only initializers needed.
2344         (lto_output): Only call output_cgraph.
2345         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
2346         * lto-section-out.c (lto_new_out_decl_state): Initialize
2347         state->varpool_node_encoder.
2348         * lto-streamer.h (lto_varpool_encoder_d): New.
2349         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2350         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
2351         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
2352         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
2353         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
2354         Declare.
2355         (output_varpool, input_varpool): Remove declarations.
2356
2357 2010-05-05  Jan Hubicka  <jh@suse.cz>
2358
2359         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
2360         with body can prevail.
2361
2362 2010-05-05  Jan Hubicka  <jh@suse.cz>
2363
2364         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
2365         size.
2366
2367 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2368
2369         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
2370
2371         * gengtype.h (erro_at_line): Constify pos argument.
2372
2373         * gengtype.c: Include hashtab.h.
2374         (enum gc_used): Document GC_MAYBE_POINTED_TO.
2375         (error_at_line): Constify pos argument.
2376         (do_typedef): Initialize p->opt field.
2377         (get_file_gtfilename): Fix comment typo.
2378         (struct walk_type_data): Constify line field.
2379         (get_output_file_for_structure): New function.
2380         (write_local_func_for_structure): Constify orig_s argument.
2381         Use get_output_file_for_structure.
2382         (write_func_for_structure): Use get_output_file_for_structure.
2383         (INDENT): New define.
2384         (dump_pair, dump_type, dump_type_list, dump_typekind)
2385         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
2386         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
2387         functions.
2388         (seen_types): New variable.
2389         (main): New variable do_dump.  Process "-d" command line option.
2390         Call dump_everything if dump requested.
2391
2392 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2393
2394         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
2395         in a temporary instead of invoking the macro multiple times.
2396         (track_expr_p): Likewise.
2397
2398 2010-05-04  Neil Vachharajani <nvachhar@google.com>
2399
2400         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
2401         per new semantics.
2402         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
2403         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
2404         conditions for printing notes.
2405         * common.opt (-Wcoverage-mismatch): Allow negative, default to
2406         true, update documentation.
2407         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
2408
2409 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
2410
2411         PR c/43981
2412         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
2413         on dimen.
2414
2415 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2416
2417         PR target/43799
2418         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
2419         (*sse_prologue_save_insn1): Likewise.
2420         (SSE prologue save splitter): Likewise.
2421
2422 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2423
2424         * tree.c (free_lang_data_in_one_sizepos): New inline function.
2425         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
2426         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
2427         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
2428         all decls.  Call it on DECL_FIELD_OFFSET of fields.
2429         (find_decls_types_r): Follow DECL_VALUE_EXPR.
2430         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
2431
2432 2010-05-04  Martin Jambor  <mjambor@suse.cz>
2433
2434         * tree-sra.c (build_access_from_expr_1): The first parameter type
2435         changed to simple tree.
2436         (build_access_from_expr): Likewise, gsi parameter was eliminated.
2437         (scan_assign_result): Renamed to assignment_mod_result, enum elements
2438         renamed as well.
2439         (build_accesses_from_assign): Removed all parameters except for a
2440         simple gimple statement.  Now returns a simple bool.
2441         (scan_function): All non-analysis parts moved to separate functions
2442         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
2443         parameters and updated both callers.
2444         (sra_modify_expr): Removed parameter data.
2445         (sra_modify_function_body): New function.
2446         (perform_intra_sra): Call sra_modify_function_body to modify the
2447         function body.
2448         (replace_removed_params_ssa_names): Parameter data changed into
2449         adjustments vector.
2450         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
2451         changed the parameter dont_convert to convert with the opposite
2452         meaning.
2453         (sra_ipa_modify_assign): Parameter data changed into adjustments
2454         vector, return value changed to bool.
2455         (ipa_sra_modify_function_body): New function.
2456         (sra_ipa_reset_debug_stmts): Updated a comment.
2457         (modify_function): Use ipa_sra_modify_function_body to modify function
2458         body.
2459
2460 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2461
2462         PR middle-end/43671
2463         * alias.c (true_dependence): Handle the same VALUE in x and mem.
2464         (canon_true_dependence): Likewise.
2465         (write_dependence_p): Likewise.
2466
2467 2010-05-04  Jan Hubicka  <jh@suse.cz>
2468
2469         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
2470         * cgraphbuild.c: Include ipa-utils.h
2471         (record_reference_ctx): New struct.
2472         (record_reference): Simplify to work on initializers; not statements.
2473         (mark_address, mark_load, mark_store): New.
2474         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2475         walk PHI nodes too.
2476         (record_references_in_initializer): Update use of record_reference.
2477         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
2478         walk PHI nodes too.
2479
2480 2010-05-04  Jan Hubicka  <jh@suse.cz>
2481
2482         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
2483         node will be removed anyway.
2484         (lto_varpool_replace_node): Allow also unanalyzed nodes;
2485         relink aliases of node into prevailing node.
2486         * varpool.c (varpool_remove_node): Remove aliases properly;
2487         when removing node, remove all its aliases too; remove DECL_INITIAL
2488         of removed node; ggc_free the varpool node.
2489
2490 2010-05-04  Richard Guenther  <rguenther@suse.de>
2491
2492         PR tree-optimization/43879
2493         * tree-ssa-structalias.c (alias_get_name): Use
2494         DECL_ASSEMBLER_NAME if available.
2495         (create_function_info_for): Return the varinfo node.
2496         (ipa_pta_execute): Associate same-body aliases and extra names
2497         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
2498
2499 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2500
2501         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
2502
2503 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
2504
2505         PR bootstrap/43964
2506         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
2507         only if HONOR_REG_ALLOC_ORDER is not defined.
2508
2509 2010-05-04  Richard Guenther  <rguenther@suse.de>
2510
2511         PR tree-optimization/43949
2512         * tree-vrp.c (extract_range_from_binary_expr): Only handle
2513         TRUNC_MOD_EXPR.
2514
2515 2010-04-26  Jason Merrill  <jason@redhat.com>
2516
2517         * c.opt (-fstrict-enums): New.
2518         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
2519
2520 2010-05-03  David Ung <davidu@mips.com>
2521             James E. Wilson  <wilson@codesourcery.com>
2522
2523         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
2524         emit the trap instruction before the divide for TUNE_74K.
2525
2526 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
2527
2528         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
2529         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
2530         based on the above, for new target hook.
2531
2532         * hooks.c (hook_bool_mode_true): New generic hook.
2533         * hooks.h (hook_bool_mode_true): Add prototype.
2534
2535         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
2536         target hook.
2537         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
2538         target hook, set to hook_bool_mode_false.
2539         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
2540         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
2541         with targetm.small_register_classes_for_mode_p.
2542         (find_reusable_reload): Likewise.
2543         (combine_reloads): Likewise.
2544         * reload1.c (reload_as_needed): Likewise.
2545         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
2546         * ifcvt.c (noce_process_if_block, check_cond_move_block,
2547         dead_or_predicable): Likewise.
2548         * regmove.c (optimize_reg_copy_1): Likewise.
2549         * calls.c (prepare_call_address): Likewise.
2550         (precompute_register_parameters): Likewise.
2551
2552         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
2553         hook definition.
2554         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
2555         implementation of the hook that considers all register classes
2556         small except for SH64.
2557         (sh_override_options): Use the new hook.
2558         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
2559         Add prototype.
2560
2561         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
2562         hook definition.
2563         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
2564         implementation of the hook that considers all register classes
2565         small for THUMB1.
2566         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
2567         Add prototype.
2568
2569         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
2570         hook definition.
2571         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
2572         implementation of the hook that considers all register classes
2573         small for MIPS16.
2574         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
2575         Add prototype.
2576
2577         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
2578         hook definition.
2579         * config/m32c/m32c.h: Likewise.
2580         * config/pdp11/pdp11.h: Likewise.
2581         * config/avr/avr.h: Likewise.
2582         * config/xtensa/xtensa.h: Likewise.
2583         * config/m68hc11/m68hc11.h: Likewise.
2584         * config/mn10300/mn10300.h: Likewise.
2585         * config/mcore/mcore.h: Likewise.
2586         * config/h8300/h8300.h: Likewise.
2587         * config/bfin/bfin.h: Likewise.
2588
2589         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
2590         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
2591
2592 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
2593
2594         * double-int.h (tree_to_double_int): Remove macro.
2595         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
2596         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2597         (tree_to_double_int): New function.
2598         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
2599         Move ...
2600         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
2601
2602 2010-05-03  Richard Guenther  <rguenther@suse.de>
2603
2604         PR tree-optimization/43971
2605         * tree-ssa-structalias.c (get_constraint_for_1): Fix
2606         constraints in the !flag_delete_null_pointer_checks case.
2607
2608 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
2609
2610         PR debug/43972
2611         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
2612         result mode matches original rtl mode.
2613
2614 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2615
2616         PR target/43888
2617         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
2618
2619 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2620
2621         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
2622         when processing flag options.
2623
2624 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2625
2626         * gcov-iov.c (main): Change format string placeholder
2627         from %#08x to 0x%08x.
2628         * genchecksum.c (dosum): Change format string placeholder
2629         from %#02x to 0x%02x.
2630
2631 2010-05-02  Richard Guenther  <rguenther@suse.de>
2632
2633         PR tree-optimization/43879
2634         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
2635
2636 2010-05-02  Bruno Haible  <bruno@clisp.org>
2637
2638         * doc/extend.texi (Function Attributes): Fix a typo.
2639
2640 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2641
2642         Revert:
2643         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
2644         placeholder from 0x%x to %#x.
2645         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2646         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
2647         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
2648         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
2649         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
2650         * config/i386/i386.c (ix86_target_string): Ditto.
2651         * config/i386/i386.c (output_pic_addr_const): Ditto.
2652         (print_operand): Ditto.
2653
2654 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
2655
2656         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
2657         placeholder from 0x%x to %#x.
2658         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
2659         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
2660         (ASM_OUTPUT_DEBUG_DATA): Ditto.
2661         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
2662         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
2663         * optc-gen.awk: Ditto.
2664         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
2665         (HOST_WIDE_INT_PRINT_HEX): Ditto.
2666         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
2667         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
2668
2669 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2670
2671         * target.h (struct calls): Add function_value_regno_p field.
2672         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
2673         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
2674         * targhooks.c (default_function_value_regno_p): New function.
2675         * targhooks.h (default_function_value_regno_p): Declare function.
2676         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
2677         * builtins.c. (apply_result_size): (Ditto.).
2678         * combine.c. (likely_spilled_retval_p): (Ditto.).
2679         * mode-switching.c. Include 'target.h'.
2680         (create_pre_exit): Use function_value_regno_p hook.
2681         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
2682         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
2683         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
2684
2685         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
2686         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
2687         (ix86_function_value_regno_p): Declare as static, change argument
2688         type to const unsigned int.
2689         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
2690
2691 2010-05-01  Richard Guenther  <rguenther@suse.de>
2692
2693         PR tree-optimization/43949
2694         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
2695         types.
2696         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
2697
2698 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
2699
2700         * rtl.h (CONST_DOUBLE_P): Define.
2701         (rtx_to_double_int): Declare.
2702         * emit-rtl.c (rtx_to_double_int): New function.
2703         * dwarf2out.c (insert_double): New function.
2704         (loc_descriptor, add_const_value_attribute): Clean up, use
2705         rtx_to_double_int and insert_double functions.
2706
2707 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
2708
2709         * doc/extend.texi (Inline): Add missing return keyword to examples.
2710         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
2711         "command-line".
2712
2713 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
2716         the variable part of the offset as well.  Use highest_pow2_factor for
2717         all alignment checks.
2718
2719 2010-04-30  Richard Guenther  <rguenther@suse.de>
2720
2721         PR tree-optimization/43879
2722         * tree-ssa-structalias.c (type_could_have_pointers): Functions
2723         can have pointers.
2724
2725 2010-04-30  Jan Hubicka  <jh@suse.cz>
2726
2727         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
2728         varpool.
2729         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
2730
2731 2010-04-30  Jan Hubicka  <jh@suse.cz>
2732
2733         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
2734         New.
2735         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
2736         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
2737         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
2738         cgraph_node_set_needs_ltrans_p): Remove.
2739
2740 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2741
2742         * sdbout.c: Include vec.h, do not include varray.h.
2743         (deferred_global_decls, sdbout_global_decl,
2744         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
2745         * toplev.c: Do not include varray.h.
2746         (dump_memory_report): Do not dump VARRAY statistics.
2747         * gengtype.c (open_base_file): Ignore varray.h.
2748         * Makefile.in: Update for abovementioned changes.
2749         Remove all traces of varray.c and varray.h.
2750         * varray.c: Remove file.
2751         * varray.h: Remove file.
2752
2753 2010-04-30  Jan Hubicka  <jh@suse.cz>
2754
2755         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
2756         references.
2757
2758 2010-04-30  Jan Hubicka  <jh@suse.cz>
2759
2760         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
2761         needed.
2762
2763 2010-04-30  Richard Guenther  <rguenther@suse.de>
2764
2765         * tree-ssa-structalias.c (get_constraint_for_1): Generate
2766         constraints for CONSTRUCTOR.
2767
2768 2010-04-30  Richard Guenther  <rguenther@suse.de>
2769
2770         PR lto/43946
2771         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
2772         first after all lowering passes.
2773
2774 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2775
2776         * toplev.c: Include varray.h for statistics dumping.
2777         * tree.h: Do not declare varray_head_tag.
2778         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
2779         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
2780         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
2781         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
2782         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
2783         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
2784         c-common.c, c-common.h, reg-stack.c, basic-block.h,
2785         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
2786         include varray.h.
2787         * Makefile.in: Update for abovementioned changes.
2788
2789 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
2790
2791         PR debug/43942
2792         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
2793
2794 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
2795
2796         * config/picochip/picochip.c (picochip_legitimize_address): Define.
2797         Use this function to do machine-specific conversion.
2798         (picochip_legitimize_reload_address): Likewise.
2799         (picochip_legitimate_address_p): Check valid base register only if
2800         strict.
2801         (picochip_check_conditional_copy): Check for modw only if opnd is
2802         register.
2803         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
2804         to call the function in c.
2805         * config/picochip/picochip-protos.h
2806         (picochip_legitimize_reload_address): Define.
2807         * config/picochip/picochip.md (supported_compare1): Define.
2808
2809 2010-04-30  Jan Hubicka  <jh@suse.cz>
2810
2811         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
2812         (cgraph_global_info): Remove inlined.
2813         (LTO_cgraph_tag_names): Remove.
2814         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
2815         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
2816         simplify cgraph tags and document.
2817         (lto_output_node): Use only LTO_cgraph_unavail_node and
2818         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
2819         for_functions_valid, global info, process and output flags.
2820         (input_overwrite_node): Initialize estimated stack size and
2821         estimated growth.  Do not read flags we no longer store.
2822         (input_node): Likewise do not read info no longer stored.
2823         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
2824         flag.
2825
2826 2010-04-30  Richard Guenther  <rguenther@suse.de>
2827
2828         PR tree-optimization/43879
2829         * tree-ssa-structalias.c (get_constraint_for_1): Properly
2830         handle non-zero initializers.
2831
2832 2010-04-30  Richard Guenther  <rguenther@suse.de>
2833
2834         * builtins.c (fold_builtin_1): Delete free (0).
2835
2836 2010-04-29  Jan Hubicka  <jh@suse.cz>
2837
2838         * gengtype.c (open_base_files): Add lto-streamer.h
2839         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
2840         (pass_ipa_cp): GGC collect.
2841         * toplev. (compile_file): Do not output symbols.
2842         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
2843         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
2844         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
2845         * lto-section-in.c: Include ggc.h
2846         (lto_new_in_decl_state): Alloc in GGC.
2847         (lto_delete_in_decl_state): Likewise.
2848         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
2849         Collect.
2850
2851 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2852
2853         PR target/42895
2854         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
2855         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
2856         (HONOR_REG_ALLOC_ORDER): Describe new macro.
2857         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
2858         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
2859         account only if HONOR_REG_ALLOC_ORDER is not defined.
2860         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
2861         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
2862
2863 2010-04-29  Jon Grant  <04@jguk.org>
2864
2865         * collect2.c (vflag): Change type from int to bool.
2866         (debug): Likewise.
2867         (helpflag): New global bool.
2868         (main): Set vflag and debug with boolean, not integer truth values.
2869         Accept new "--help" option and output usage text if found.
2870         * collect2.h (vflag): Update prototype.
2871         (debug): Likewise.
2872
2873 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2874
2875         PR bootstrap/43936
2876         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
2877
2878 2010-04-29  Richard Guenther  <rguenther@suse.de>
2879
2880         PR bootstrap/43935
2881         * plugin.h (invoke_plugin_callbacks): Annotate arguments
2882         with ATTRIBUTE_UNUSED.
2883
2884 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2885
2886         PR target/43921
2887         * config/i386/i386.c (get_some_local_dynamic_name): Replace
2888         INSN_P with NONDEBUG_INSN_P.
2889         (distance_non_agu_define): Likewise.
2890         (distance_agu_use): Likewise.
2891
2892 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2893
2894         From Dominique d'Humieres <dominiq@lps.ens.fr>
2895         PR bootstrap/43858
2896         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
2897         test_set.
2898
2899 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
2900
2901         * plugin.h (invoke_plugin_callbacks): New inline function.
2902         * plugin.c (flag_plugin_added): New global flag.
2903         (add_new_plugin): Initialize above flag.
2904         (invoke_plugin_callbacks): Rename to ...
2905         (invoke_plugin_callbacks_full): ... this.
2906
2907 2010-04-28  Jan Hubicka  <jh@suse.cz>
2908
2909         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
2910         (lto_varpool_replace_node): New.
2911         (lto_symtab_resolve_symbols): Resolve varpool nodes.
2912         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
2913         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
2914         * cgraph.h (varpool_node_ptr): New type.
2915         (varpool_node_ptr): New vector.
2916         (varpool_node_set_def): New structure.
2917         (varpool_node_set): New type.
2918         (varpool_node_set): New vector.
2919         (varpool_node_set_element_def): New structure.
2920         (varpool_node_set_element, const_varpool_node_set_element): New types.
2921         (varpool_node_set_iterator): New type.
2922         (varpool_node): Add prev pointers, add used_from_other_partition,
2923         in_other_partition.
2924         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
2925         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
2926         varpool_get_node, varpool_remove_node): Declare.
2927         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
2928         varpool_node_set_size): New inlines.
2929         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
2930         * tree-pass.h (varpool_node_set_def): Forward declare.
2931         (ipa_opt_pass_d): Summary writting takes vnode sets too.
2932         (ipa_write_optimization_summaries): Update prototype.
2933         * ipa-cp.c (ipcp_write_summary): Update.
2934         * ipa-reference.c (ipa_reference_write_summary): Update.
2935         * lto-cgraph.c (lto_output_varpool_node): New static function.
2936         (output_varpool): New function.
2937         (input_varpool_node): New static function.
2938         (input_varpool_1): New function.
2939         (input_cgraph): Input varpool.
2940         * ipa-pure-const.c (pure_const_write_summary): Update.
2941         * lto-streamer-out.c (lto_output): Update, output varpool too.
2942         (write_global_stream): Kill WPA hack.
2943         (produce_asm_for_decls): Update.
2944         (output_alias_pair_p): Handle variables.
2945         (output_unreferenced_globals): Output only needed partition of varpool.
2946         * ipa-inline.c (inline_write_summary): Update.
2947         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
2948         cgraph.
2949         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
2950         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
2951         varpool_node_set_new, varpool_node_set_add,
2952         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
2953         debug_varpool_node_set): New functions.
2954         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
2955         (execute_one_pass): Process new decls too.
2956         (ipa_write_summaries_2): Pass around vsets.
2957         (ipa_write_summaries_1): Likewise.
2958         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
2959         to add.
2960         (ipa_write_optimization_summaries_1): Pass around vsets.
2961         (ipa_write_optimization_summaries): Likewise.
2962         * varpool.c (varpool_get_node): New.
2963         (varpool_node): Update doubly linked lists.
2964         (varpool_remove_node): New.
2965         (dump_varpool_node): More dumping.
2966         (varpool_enqueue_needed_node): Update doubly linked lists.
2967         (decide_is_variable_needed): Kill ltrans hack.
2968         (varpool_finalize_decl): Kill lto hack.
2969         (varpool_assemble_decl): Skip decls in other partitions.
2970         (varpool_assemble_pending_decls): Update doubly linkes lists.
2971         (varpool_empty_needed_queue): Likewise.
2972         (varpool_extra_name_alias): Likewise.
2973         * lto-streamer.c (lto_get_section_name): Add vars section.
2974         * lto-streamer.h (lto_section_type): Update.
2975         (output_varpool, input_varpool): Declare.
2976
2977 2010-04-28  Mike Stump  <mikestump@comcast.net>
2978
2979         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
2980
2981 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2982
2983         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
2984         record or union type with RECORD_OR_UNION_TYPE_P predicate.
2985         (lto_input_ts_type_tree_pointers): Likewise.
2986         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
2987         (lto_output_ts_type_tree_pointers): Likewise.
2988
2989 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2990
2991         Uniquization of constants at the Tree level
2992         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
2993         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
2994         bit to the end.
2995         (tree_output_constant_def): Declare.
2996         * gimplify.c (gimplify_init_constructor): When using block copy, first
2997         uniquize the constant constructor on the RHS.
2998         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
2999         DECL_IN_CONSTANT_POOL flag.
3000         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3001         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3002         constant pool.
3003         (assemble_variable): Deal with symbols belonging to the tree constant
3004         pool.
3005         (get_constant_section): Add ALIGN parameter and simplify.
3006         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3007         (assemble_constant_contents): Use the expression of the VAR_DECL.
3008         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3009         (tree_output_constant_def): New global function.
3010         (mark_constant): Use the expression of the VAR_DECL.
3011         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3012         its expression.
3013         (output_object_block): Likewise and assemble the expression.
3014
3015 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3016
3017         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3018         hash_tree, eq_tree): New tree hash table.
3019         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3020         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3021         lto_orig_address_remove): Reimplement.
3022
3023 2010-04-28  Xinliang David Li  <davidxl@google.com>
3024
3025         PR c/42643
3026         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3027         (compute_uninit_opnds_pos): New function.
3028         (is_non_loop_exit_postdominating): New function.
3029         (compute_control_dep_chain): New function.
3030         (find_pdom): New function.
3031         (convert_control_dep_chain_into_preds): New function.
3032         (find_predicates): New function.
3033         (find_control_equiv_block): New function.
3034         (collect_phi_def_edges): New function.
3035         (find_def_preds): New function.
3036         (find_dom): New function.
3037         (dump_predicates): New function.
3038         (get_cmp_code): New function.
3039         (is_value_included_in): New function.
3040         (find_matching_predicate_in_rest_chains): New function.
3041         (use_pred_not_overlap_with_undef_path_pred): New function.
3042         (is_use_properly_guarded): New function.
3043         (normalize_cond_1): New function.
3044         (is_and_or_or): New function.
3045         (normalize_cond): New function.
3046         (is_gcond_subset_of): New function.
3047         (is_subset_of_any): New function.
3048         (is_or_set_subset_of): New function.
3049         (is_and_set_subset_of): New function.
3050         (is_norm_cond_subset_of): New function.
3051         (is_pred_expr_subset_of): New function.
3052         (is_pred_chain_subset_of): New function.
3053         (is_included_in): New function.
3054         (is_superset_of): New function.
3055         (find_uninit_use): New function.
3056         (warn_uninitialized_phi): New function.
3057         (compute_possibly_undefined_names): New function.
3058         (ssa_undefined_value_p): New function.
3059         (execute_late_warn_uninitialized): New function.
3060         * tree-ssa.c (ssa_undefined_value_p): Removed.
3061         (warn_uninit): Changed to extern.
3062         (warn_uninitialized_phi): Removed.
3063         (warn_uninitialized_vars): Changed to extern.
3064         (execute_late_warn_uninitialized): Removed
3065         * tree-flow.h: Add new prototypes.
3066         * timevar.def: Add new time variable.
3067         * Makefile.in: Add new build file.
3068
3069 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
3070
3071         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
3072         type if available.
3073
3074 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3075
3076         PR target/22224
3077         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
3078
3079 2010-04-28  Martin Jambor  <mjambor@suse.cz>
3080
3081         * cgraph.h (struct cgraph_node): New field indirect_calls.
3082         (struct cgraph_indirect_call_info): New type.
3083         (struct cgraph_edge): Removed field indirect_call. New fields
3084         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
3085         (cgraph_create_indirect_edge): Declare.
3086         (cgraph_make_edge_direct): Likewise.
3087         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
3088         * ipa-prop.h (struct ipa_param_call_note): Removed.
3089         (struct ipa_node_params): Removed field param_calls.
3090         (ipa_create_all_structures_for_iinln): Declare.
3091         * cgraph.c: Described indirect edges and uids in initial comment.
3092         (cgraph_add_edge_to_call_site_hash): New function.
3093         (cgraph_edge): Search also among the indirect edges, use
3094         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
3095         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
3096         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
3097         site hash.
3098         (initialize_inline_failed): Assign a reason to indirect edges.
3099         (cgraph_create_edge_1): New function.
3100         (cgraph_create_edge): Moved some functionality to
3101         cgraph_create_edge_1.
3102         (cgraph_create_indirect_edge): New function.
3103         (cgraph_edge_remove_callee): Add an assert checking for
3104         non-indirectness.
3105         (cgraph_edge_remove_caller): Special-case indirect edges.
3106         (cgraph_remove_edge): Likewise.
3107         (cgraph_set_edge_callee): New function.
3108         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
3109         (cgraph_make_edge_direct): New function.
3110         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
3111         the declaration of the call statement matches.
3112         (cgraph_node_remove_callees): Special-case indirect edges.
3113         (cgraph_clone_edge): Likewise.
3114         (cgraph_clone_node): Clone also the indirect edges.
3115         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
3116         indirect_call, dump count of indirect_calls edges.
3117         * ipa-prop.c (iinlining_processed_edges): New variable.
3118         (ipa_note_param_call): Create indirect edges instead of
3119         creating notes.  New parameter node.
3120         (ipa_analyze_call_uses): New parameter node, pass it on to
3121         ipa_note_param_call.
3122         (ipa_analyze_stmt_uses): Likewise.
3123         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
3124         (print_edge_addition_message): Work on edges rather than on notes.
3125         (update_call_notes_after_inlining): Likewise, renamed to
3126         update_indirect_edges_after_inlining.
3127         (ipa_create_all_structures_for_iinln): New function.
3128         (ipa_free_node_params_substructures): Do not free notes.
3129         (ipa_edge_duplication_hook): Propagate bits within
3130         iinlining_processed_edges bitmap.
3131         (ipa_node_duplication_hook): Do not duplicate notes.
3132         (free_all_ipa_structures_after_ipa_cp): Renamed to
3133         ipa_free_all_structures_after_ipa_cp.
3134         (free_all_ipa_structures_after_iinln): Renamed to
3135         ipa_free_all_structures_after_iinln.
3136         (ipa_write_param_call_note): Removed.
3137         (ipa_read_param_call_note): Removed.
3138         (ipa_write_indirect_edge_info): New function.
3139         (ipa_read_indirect_edge_info): Likewise.
3140         (ipa_write_node_info): Do not stream notes, do stream information
3141         in indirect edges.
3142         (ipa_read_node_info): Likewise.
3143         (lto_ipa_fixup_call_notes): Removed.
3144         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
3145         * ipa-inline.c (pass_ipa_inline): Likewise.
3146         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
3147         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
3148         * tree-inline.c (copy_bb): Removed an unnecessary double check for
3149         is_gimple_call.
3150         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
3151         edges.
3152         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
3153         (output_cgraph): Stream also indirect edges.
3154         (lto_output_edge): Added capability to stream indirect edges.
3155         (input_edge): Likewise.
3156         (input_cgraph_1): Likewise.
3157         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
3158         of indirect edges.
3159
3160 2010-04-28  Richard Guenther  <rguenther@suse.de>
3161
3162         PR tree-optimization/43879
3163         PR tree-optimization/43909
3164         * tree-ssa-structalias.c (struct variable_info): Add
3165         only_restrict_pointers flag.
3166         (new_var_info): Initialize it.  Increment stats.total_vars here.
3167         (create_function_info_for): Do not increment stats.total_vars here.
3168         (get_function_part_constraint): Fix build with C++.
3169         (insert_into_field_list): Remove.
3170         (push_fields_onto_fieldstack): Properly merge fields.
3171         (create_variable_info_for): Split and simplify.
3172         (create_variable_info_for_1): New piece.
3173         (intra_create_variable_infos): Properly make restrict constraints
3174         from parameters.
3175
3176 2010-04-28  Richard Guenther  <rguenther@suse.de>
3177
3178         PR c++/43880
3179         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
3180
3181 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3182             Jan Hubicka <hubicka@ucw.cz>
3183
3184         * doc/invoke.texi (-Wsuggest-attribute=const,
3185         -Wsuggest-attribute=pure): Document.
3186         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
3187         (function_always_visible_to_compiler_p,
3188         suggest_attribute, warn_function_pure, warn_function_const):
3189         New functions.
3190         (check_call): Improve debug info.
3191         (analyze_function): Do not check availability.
3192         (add_new_function): Check availability.
3193         (propagate): Output warnings.
3194         (skip_function_for_local_pure_const): New function.
3195         (local_pure_const): Use it; output warnings.
3196         * common.opt (Wsuggest-attribute=const,
3197         Wsuggest-attribute=pure): New.
3198
3199 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3200
3201         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
3202         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
3203         or DW_CFA_def_cfa_offset{,_sf}.
3204
3205 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3206
3207         * tree.h: Fix truncated long macros.
3208
3209 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
3210
3211         * collect2.c (TARGET_64BIT): Redefine to target's default.
3212         * tlink.c: Likewise.
3213         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
3214         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
3215         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
3216         for underscoring __USER_LABEL_PREFIX__.
3217         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
3218         (SUB_LINK_ENTRY32): New.
3219         (SUB_LINK_ENTRY64): New.
3220         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
3221         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
3222         (SUB_LINK_ENTRY64): New.
3223         (SUB_LINK_ENTRY): New.
3224         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
3225         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
3226         x64 target is choosen.
3227         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
3228         * configure: Regenerated.
3229         * configure.ac (leading-mingw64-underscores): Option added.
3230
3231 2010-04-27  Jan Hubicka  <jh@suse.cz>
3232
3233         * doc/invoke.texi (-fipa-profile): Document.
3234         * opts.c (decode_options): Enable ipa-profile at -O1.
3235         * timevar.def (TV_IPA_PROFILE): Define.
3236         * common.opt (fipa-profile): Add.
3237         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
3238         flag for clones.
3239         (cgraph_propagate_frequency): Handle only local ones.
3240         * tree-pass.h (pass_ipa_profile): Declare.
3241         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
3242         (pass_ipa_profile): Use TV_IPA_PROFILE.
3243         * ipa.c (ipa_profile): New function.
3244         (gate_ipa_profile): Likewise.
3245         (pass_ipa_profile): New global variable.
3246         * passes.c (pass_ipa_profile): New.
3247
3248 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
3249
3250         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
3251
3252 2010-04-27  Martin Jambor  <mjambor@suse.cz>
3253
3254         PR middle-end/43812
3255         * ipa.c (dissolve_same_comdat_group_list): New function.
3256         (function_and_variable_visibility): Call
3257         dissolve_same_comdat_group_list when comdat group contains external or
3258         newly local nodes.
3259         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
3260         lists are circular and that they contain only DECL_ONE_ONLY nodes.
3261
3262 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3263
3264         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
3265         (const_hash_1) <VECTOR_CST>: New case.
3266         (compare_constant) <VECTOR_CST>: Likewise.
3267         <ADDR_EXPR>: Deal with LABEL_REFs.
3268         (copy_constant) <VECTOR_CST>: New case.
3269
3270 2010-04-27  Jan Hubicka  <jh@suse.cz>
3271
3272         * cgraph.c (cgraph_propagate_frequency): New function.
3273         * cgraph.h (cgraph_propagate_frequency): Declare.
3274         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
3275         cgraph_propagate_frequency.
3276
3277 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3278
3279         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3280
3281 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
3282
3283         PR target/40657
3284         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
3285         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
3286         here to determine which regs to push and how much stack to reserve.
3287
3288 2010-04-27  Jie Zhang  <jie@codesourcery.com>
3289
3290         * doc/gimple.texi (gimple_statement_with_ops): Remove
3291         addresses_taken field.
3292         (gimple_statement_with_memory_ops): Likewise.
3293
3294 2010-04-27  Jan Hubicka  <jh@suse.cz>
3295
3296         * tree-inline.c (eni_inlining_weights): Remove.
3297         (estimate_num_insns): Special case more builtins.
3298
3299 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
3300
3301         PR c/32207
3302         * c-typeck.c (build_binary_op): Move forward check for comparison
3303         pointer with null pointer constant and adjust the diagnostic message.
3304
3305 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
3306
3307         PR lto/42776
3308         * configure.ac (gcc_cv_as_section_has_align): Set if installed
3309         binutils supports extended .section directive needed by LTO, or
3310         warn if older binutils found.
3311         (LTO_BINARY_READER): New AC_SUBST'd variable.
3312         (LTO_USE_LIBELF): Likewise.
3313         * gcc/config.gcc (lto_binary_reader): New target-specific configure
3314         variable.
3315         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
3316         (LTO_USE_LIBELF): Likewise.
3317         * configure: Regenerate.
3318
3319         * collect2.c (is_elf): Rename from this ...
3320         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
3321          object files in addition to ELF-formatted ones.
3322         (scan_prog_file): Caller updated.  Also allow for LTO info marker
3323         symbol to be prefixed or not by an extra underscore.
3324
3325         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
3326         * config/i386/winnt.c: Also #include lto-streamer.h
3327         (i386_pe_asm_named_section): Specify 1-byte section alignment for
3328         LTO named sections.
3329         (i386_pe_asm_output_aligned_decl_common): Add comment.
3330         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
3331
3332 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
3333
3334         PR target/43889
3335         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
3336         Add missing earlyclobber for second alternative.
3337
3338 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
3339
3340         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
3341         bits for artificial defs at the top of the block.
3342         * fwprop.c (single_def_use_enter_block): Don't call it.
3343
3344 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
3345
3346         PR 43715
3347         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
3348         instead of "$gcc_cv_objdump -T".
3349         Use "-undefined dynamic_lookup" on darwin.
3350         * gcc/configure: Regenerate.
3351
3352 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
3353
3354         PR c/43893
3355         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
3356
3357 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3358
3359         * c-parser.c (struct c_token): Move location field up.
3360         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
3361         (struct c_declspecs): Convert typespec_word, storage_class, and
3362         default_int_p into bitfields.
3363         (struct c_declarator): Move loc field up.
3364
3365 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
3366
3367         * cfgloop.h (struct loop): Move can_be_parallel field up.
3368         * ipa-prop.h (struct ip_node_params): Move bitfields up.
3369         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
3370         down.
3371         (struct iv_cand): Convert pos field into a bitfield.
3372         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
3373         field up.
3374         (struct _stmt_vec_info): Shuffle fields for better packing.
3375
3376 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3377
3378         * varasm.c (IN_NAMED_SECTION): Remove guard.
3379         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
3380         (IN_NAMED_SECTION_P): ...this.
3381         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
3382         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3383
3384 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
3385
3386         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
3387         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
3388         of shadowing it.  Fix comments.
3389
3390 2010-04-26  Jan Hubicka  <jh@suse.cz>
3391
3392         * cgraph.c (cgraph_create_node): Set node frequency to normal.
3393         (cgraph_clone_node): Copy function frequency.
3394         * cgraph.h (node_frequency): New enum
3395         (struct cgraph_node): Add.
3396         * final.c (rest_of_clean_state): Update.
3397         * lto-cgraph.c (lto_output_node): Output node frequency.
3398         (input_overwrite_node): Input node frequency.
3399         * tre-ssa-loop-ivopts (computation_cost): Update.
3400         * lto-streamer-out.c (output_function): Do not output function
3401         frequency.
3402         * predict.c (maybe_hot_frequency_p): Update and handle functions
3403         executed once.
3404         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
3405         attribute lookup.
3406         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
3407         (compute_function_frequency): Set noreturn functions to be executed
3408         once.
3409         (choose_function_section): Update.
3410         * lto-streamer-in.c (input_function): Do not input function frequency.
3411         * function.c (allocate_struct_function): Do not initialize function
3412         frequency.
3413         * function.h (function_frequency): Remove.
3414         (struct function): Remove function frequency.
3415         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
3416         (try_update): Update.
3417         * tree-inline.c (initialize_cfun): Do not update function frequency.
3418         * passes.c (pass_init_dump_file): Update.
3419         * i386.c (ix86_compute_frame_layout): Update.
3420         (ix86_pad_returns): Update.
3421
3422 2010-04-26  Jie Zhang  <jie@codesourcery.com>
3423
3424         PR tree-optimization/43833
3425         * tree-vrp.c (range_int_cst_p): New.
3426         (range_int_cst_singleton_p): New.
3427         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
3428         when both operands are constants.  Use range_int_cst_p in
3429         BIT_IOR_EXPR case.
3430
3431 2010-04-26  Jan Hubicka  <jh@suse.cz>
3432
3433         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
3434
3435 2010-04-26  Richard Guenther  <rguenther@suse.de>
3436
3437         PR lto/43080
3438         * gimple.c (gimple_decl_printable_name): Deal gracefully
3439         with a NULL DECL_NAME.
3440
3441 2010-04-26  Richard Guenther  <rguenther@suse.de>
3442
3443         PR lto/42425
3444         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
3445         if emitting debug information and it is either a function
3446         or a namespace decl.
3447
3448 2010-04-26  Ira Rosen  <irar@il.ibm.com>
3449
3450         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
3451         determine if the statement is vectorizable, and a macro to access it.
3452         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3453         Skip statements that can't be vectorized. If the analysis fails,
3454         mark the statement as unvectorizable if vectorizing basic block.
3455         (vect_compute_data_refs_alignment): Likewise.
3456         (vect_verify_datarefs_alignment): Skip statements marked as
3457         unvectorizable. Add print.
3458         (vect_analyze_group_access): Skip statements that can't be
3459         vectorized. If the analysis fails, mark the statement as
3460         unvectorizable if vectorizing basic block.
3461         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
3462         * tree-vect-stmts.c (vectorizable_store): Fix the number of
3463         generated stmts for SLP.
3464         (new_stmt_vec_info): Initialize the new field.
3465         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
3466         statements marked as unvectorizable.
3467
3468 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
3469
3470         * c-common.c (flag_isoc1x): New.
3471         (flag_isoc99): Update comment.
3472         * c-common.h (flag_isoc1x): New.
3473         (flag_isoc99): Update comment.
3474         * c-cppbuiltin.c (builtin_define_float_constants): Also define
3475         __<type>_DECIMAL_DIG__.
3476         * c-opts.c (set_std_c1x): New.
3477         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
3478         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
3479         * c.opt (-std=c1x, -std=gnu1x): New options.
3480         * doc/cpp.texi: Mention -std=c1x.
3481         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
3482         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
3483         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
3484         * doc/standards.texi: Mention C1X.
3485         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
3486         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
3487         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
3488         Define for C1X.
3489
3490 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
3491
3492         * config/i386/gmon-sol2.c (_mcleanup): Change format string
3493         placeholder from 0x%x to %#x.
3494         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3495         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3496         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3497         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3498         * config/i386/i386.c (ix86_target_string): Ditto.
3499         (output_pic_addr_const): Ditto.
3500         (print_operand): Ditto.
3501
3502 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
3503
3504         * combine.c (find_split_point): Add third argument.  Use it
3505         to find nested multiply-accumulate instructions.  Adjust calls.
3506         (try_combine): Adjust call to find_split_point.
3507
3508 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
3509
3510         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
3511
3512 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
3513
3514         PR tree-optimization/41442
3515         * fold-const.c (merge_truthop_with_opposite_arm): New function.
3516         (fold_binary_loc): Call it.
3517
3518 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3519
3520         * toplev.c (general_init): Set default for fdiagnostics-show-option.
3521         * opts.c (common_handle_option): Allow disabling it.
3522         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
3523
3524 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3525
3526         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
3527         between modes if both types are integral.
3528
3529 2010-04-23  Richard Guenther  <rguenther@suse.de>
3530
3531         PR tree-optimization/43572
3532         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
3533
3534 2010-04-23  Richard Guenther  <rguenther@suse.de>
3535
3536         PR lto/43455
3537         * tree-inline.c (tree_can_inline_p): Also check compatibility
3538         of return types.
3539
3540 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3541
3542         PR tree-optimization/43846
3543         * tree-sra.c (struct access): New flag grp_assignment_read.
3544         (build_accesses_from_assign): Set grp_assignment_read.
3545         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
3546         (enum mark_read_status): New type.
3547         (analyze_access_subtree): Propagate grp_assignment_read, create
3548         accesses also if both direct_read and root->grp_assignment_read.
3549
3550 2010-04-23  Martin Jambor  <mjambor@suse.cz>
3551
3552         PR middle-end/43835
3553         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
3554         function does not have type attributes.
3555
3556 2010-04-23  Richard Guenther  <rguenther@suse.de>
3557
3558         PR lto/42653
3559         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
3560         of FUNCTION_DECLs.
3561
3562 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3563
3564         * sese.h (create_if_region_on_edge): Remove.
3565
3566         * sese.c (create_if_region_on_edge): Make static.
3567
3568         * tree-inline.c: Do not include ggc.h.
3569
3570         * expr.c: Do not include ggc.h.
3571
3572         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
3573         dependencies.
3574
3575 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
3576
3577         PR target/43744
3578         * config/sh/sh.c (find_barrier): Don't emit a constant pool
3579         in the middle of insns for casesi_worker_2.
3580
3581 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
3582
3583         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
3584
3585 2010-04-22  Ira Rosen  <irar@il.ibm.com>
3586
3587         PR tree-optimization/43842
3588         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
3589         loop unrolling in update of exit phis. Fix comment.
3590         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
3591         least two reduction statements in the loop before starting SLP
3592         analysis.
3593
3594 2010-04-22  Nick Clifton  <nickc@redhat.com>
3595
3596         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
3597
3598 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
3599
3600         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
3601         to simplify a + ~a.
3602
3603 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3604
3605         * tree-parloops.c (loop_parallel_p): New argument
3606         parloop_obstack.  Pass it down.
3607         (parallelize_loops): New variable parloop_obstack.  Initialize it,
3608         pass it down, free it.
3609
3610         * tree-loop-linear.c (linear_transform_loops): Pass down
3611         lambda_obstack.
3612
3613         * tree-data-ref.h (lambda_compute_access_matrices): New argument
3614         of type struct obstack *.
3615
3616         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
3617         scratch_obstack.  Initialize it, pass down, free it.
3618
3619         * lambda.h (lambda_loop_new): Remove.
3620         (lambda_matrix_new, lambda_matrix_inverse)
3621         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
3622         argument of type struct obstack *.
3623
3624         * lambda-trans.c (lambda_trans_matrix_new): New argument
3625         lambda_obstack.  Pass it down, use obstack allocation for ret.
3626         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
3627         it down.
3628
3629         * lambda-mat.c (lambda_matrix_get_column)
3630         (lambda_matrix_project_to_null): Remove.
3631         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
3632         allocation for mat.
3633         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
3634         lambda_obstack.
3635
3636         * lambda-code.c (lambda_loop_new): New function.
3637         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
3638         (lambda_compute_auxillary_space, lambda_compute_target_space)
3639         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
3640         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
3641         (build_access_matrix): New argument lambda_obstack.  Use obstack
3642         allocation for am.
3643         (lambda_compute_step_signs, lambda_compute_access_matrices): New
3644         argument lambda_obstack.  Pass it down.
3645
3646 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3647
3648         * optabs.h (expand_widening_mult): Declare.
3649
3650 2010-04-22  Richard Guenther  <rguenther@suse.de>
3651
3652         PR tree-optimization/43845
3653         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
3654         lookup the CALL_EXPR function and arguments.
3655
3656 2010-04-22  Nick Clifton  <nickc@redhat.com>
3657
3658         * config/stormy16/stormy16.c
3659         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
3660         * config/stormy16/stormy16.h: Tidy up formatting.
3661         (DONT_USE_BUILTIN_SETJMP): Remove definition.
3662         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
3663         (ineqbranchsi): Delete pattern.
3664         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
3665         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
3666         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3667         stormy16-lib2-ucmpsi2.c.
3668
3669 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3670
3671         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
3672         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
3673         extra set merge_set_noclobber, and use it to relax the final test
3674         slightly.
3675         * df.h (df_simulate_find_noclobber_defs): Declare.
3676         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
3677         conditional defs.
3678         (df_simulate_find_noclobber_defs): New function.
3679
3680 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
3681
3682         * config/i386/i386.md: Use {} around multi-line preparation statements.
3683
3684 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3685
3686         * c-tree.h (push_init_level, pop_init_level, set_init_index)
3687         (process_init_element): New argument of type struct obstack *.
3688
3689         * c-typeck.c (push_init_level, pop_init_level, set_designator)
3690         (set_init_index, set_init_label, set_nonincremental_init)
3691         (set_nonincremental_init_from_string, find_init_member)
3692         (output_init_element, output_pending_init_elements)
3693         (process_init_element): New argument braced_init_obstack.  Pass it
3694         down.
3695         (push_range_stack, add_pending_init): New argument
3696         braced_init_obstack.  Use obstack allocation.
3697
3698         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
3699         braced_init_obstack.  Pass it down.
3700         (c_parser_braced_init): New variables ret, braced_init_obstack.
3701         Initialize obstack, pass it down and finally free it.
3702
3703 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
3704
3705         PR middle-end/29274
3706         * tree-pass.h (pass_optimize_widening_mul): Declare.
3707         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
3708         gate_optimize_widening_mul): New static functions.
3709         (pass_optimize_widening_mul): New.
3710         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
3711         <case MULT_EXPR>: Remove support for widening multiplies.
3712         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
3713         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
3714         simplify_gen_unary rather than directly building extensions.
3715         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
3716         WIDEN_MULT_EXPR.
3717         * expmed.c (expand_widening_mult): New function.
3718         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
3719
3720 2010-04-21  Jan Hubicka  <jh@suse.cz>
3721
3722         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
3723         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
3724         * lto-wpa-fixup.c: Remove.
3725         * Makefile.in (lto-wpa-fixup.o): Remove.
3726         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
3727         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
3728         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
3729
3730 2010-04-21  Jan Hubicka  <jh@suse.cz>
3731
3732         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
3733         add write_optimization_summary, read_optimization_summary.
3734         (ipa_write_summaries_of_cgraph_node_set): Remove.
3735         (ipa_write_optimization_summaries): Declare.
3736         (ipa_read_optimization_summaries): Declare.
3737         * ipa-cp.c (pass_ipa_cp): Update.
3738         * ipa-reference.c (pass_ipa_reference): Update.
3739         * ipa-pure-const.c (pass_ipa_pure_const): Update.
3740         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
3741         Update.
3742         * ipa-inline.c (pass_ipa_inline): Update.
3743         * ipa.c (pass_ipa_whole_program): Update.
3744         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
3745         * passes.c (ipa_write_summaries_1): Do not test wpa.
3746         (ipa_write_optimization_summaries_1): New.
3747         (ipa_write_optimization_summaries): New.
3748         (ipa_read_summaries): Do not test ltrans.
3749         (ipa_read_optimization_summaries_1): New.
3750         (ipa_read_optimization_summaries): New.
3751
3752 2010-04-21  Jan Hubicka  <jh@suse.cz>
3753
3754         * lto-cgraph.c (lto_output_node): Do not output comdat groups
3755         for boundary nodes.
3756         (output_cgraph): Do not arrange comdat groups for boundary nodes.
3757
3758 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3759
3760         PR debug/40040
3761         * dwarf2out.c (add_name_and_src_coords_attributes): Add
3762         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
3763
3764 2010-04-21  Jan Hubicka  <jh@suse.cz>
3765
3766         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
3767
3768 2010-04-21  Jan Hubicka  <jh@suse.cz>
3769
3770         * varpool.c (decide_is_variable_needed): Variable is always needed
3771         during ltrans.
3772
3773 2010-04-21  Jan Hubicka  <jh@suse.cz>
3774
3775         * opts.c (decode_options): Enable pure-const pass for whopr.
3776
3777 2010-04-21  Jan Hubicka  <jh@suse.cz>
3778
3779         * cgraph.c (dump_cgraph_node): Dump also assembler name.
3780         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
3781         at WPA dumping.
3782         (cgraph_decide_inlining): Do not expect callee to be removed in all
3783         cases.
3784
3785 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
3786
3787         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
3788
3789 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
3790
3791         * config/i386/i386.md (x86_shrd): Add athlon_decode and
3792         amdfam10_decode attributes.
3793
3794 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3795
3796         PR middle-end/43570
3797         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
3798         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
3799         (lower_copyprivate_clauses): Use private var in outer
3800         context instead of original var.  Make sure the types
3801         are correct for VLAs.
3802
3803 2010-04-21  Richard Guenther  <rguenther@suse.de>
3804
3805         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
3806         to non-pointer objects.
3807
3808 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3809
3810         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
3811         last chain entry if it starts with the still current label.
3812         (add_location_or_const_value_attribute): Check that
3813         loc_list->first->next is NULL instead of comparing ->first with ->last.
3814         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
3815         to add_var_loc_to_decl.
3816
3817         * dwarf2out.c (output_call_frame_info): For dw_cie_version
3818         >= 4 add also address size and segment size fields into CIE header.
3819
3820         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
3821         long as address size is the same as sizeof (void *) and
3822         segment size is 0.
3823         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
3824         address size or segment size is unexpected, return DW_EH_PE_omit.
3825         (classify_object_over_fdes): If get_cie_encoding returned
3826         DW_EH_PE_omit, return -1.
3827         (init_object): If classify_object_over_fdes returned -1,
3828         pretend there were no FDEs at all.
3829
3830 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
3831
3832         * config/i386/i386.md (bswap<mode>2): Macroize expander from
3833         bswap{si,di}2 using SWI48 mode iterator.
3834         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
3835         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
3836         set modrm attribute of bswap insn to 0 and remove length attribute.
3837         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
3838         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
3839         set mode attribute to <MODE> and remove length attribute.
3840
3841 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
3842
3843         PR rtl-optimization/43520
3844         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
3845         zero available registers.
3846
3847 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3848
3849         * builtins.c (fold_builtin_cproj): Fold more cases.
3850
3851 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3852
3853         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
3854         (fold_builtin_1): Fold builtin cproj.
3855         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
3856         Use ATTR_CONST_NOTHROW_LIST.
3857
3858 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
3859
3860         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
3861         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
3862         ffsi2_no_cmove for !TARGET_CMOVE.
3863         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
3864         (ffssi2): Remove expander.
3865         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
3866         mode iterator.
3867         (ctz<mode>2): Ditto from ctz{si,di}2.
3868         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
3869         mode iterator.
3870         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
3871         mode iterator.
3872
3873 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3874
3875         * dwarf2out.c (AT_linkage_name): Define.
3876         (clone_as_declaration): Handle DW_AT_linkage_name.
3877         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
3878         of DW_AT_MIPS_linkage_name.
3879         (move_linkage_attr): Likewise.
3880         (dwarf2out_finish): Likewise.
3881
3882 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
3883
3884         PR middle-end/41952
3885         * fold-const.c (fold_comparison): New folding rule.
3886
3887 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
3888
3889         * double-int.h (double_int_setbit): Declare.
3890         * double-int.c (double_int_setbit): New function.
3891         * rtl.h (immed_double_int_const): Declare.
3892         * emit-rtl.c (immed_double_int_const): New function.
3893         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
3894         and immed_double_int_const functions.
3895         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
3896         expand_copysign_bit):  (Ditto.).
3897         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
3898         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
3899         * dojump.c (prefer_and_bit_test): (Ditto.).
3900         * expr.c (convert_modes, reduce_to_bit_field_precision,
3901         const_vector_from_tree): (Ditto.).
3902         * expmed.c (mask_rtx, lshift_value): (Ditto.).
3903
3904 2010-04-20  Jan Hubicka  <jh@suse.cz>
3905
3906         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
3907         (dump_cgraph_node): Dump new flags.
3908         * cgraph.h (struct cgraph_node): Add flags
3909         reachable_from_other_partition and in_other_partition.
3910         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
3911         other partition can not be removed.
3912         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
3913         the other partition must be output; silence sanity checking on
3914         leaking functions bodies from other paritition.
3915         * lto-cgraph.c (reachable_from_other_partition_p): New function.
3916         (lto_output_node): Output new flags; do not sanity check that inline
3917         clones are output; drop lto_forced_extern_inline_p code; do not mock
3918         visibility flags at partition boundaries.
3919         (add_node_to): New function.
3920         (output_cgraph): Use it to sort functions so masters appear before
3921         clones.
3922         (input_overwrite_node): Input new flags.
3923         * passes.c (ipa_write_summaries): Do not call
3924         lto_new_extern_inline_states.
3925         * lto-section-out.c (forced_extern_inline,
3926         lto_new_extern_inline_states lto_delete_extern_inline_states,
3927         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
3928         * lto-streamer.h (lto_new_extern_inline_states,
3929         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
3930         lto_forced_extern_inline_p): Kill.
3931
3932 2010-04-20  Richard Guenther  <rguenther@suse.de>
3933
3934         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
3935         from vars that can have pointers.
3936         (process_constraint): Dump useless constraints.
3937
3938 2010-04-20  Richard Guenther  <rguenther@suse.de>
3939
3940         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
3941         (dump_sa_points_to_info): Remove asserts.
3942         (init_base_vars): nothing_id isn't an escape point nor does it
3943         have pointers.
3944
3945 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3946
3947         * tree.h (TYPE_REF_IS_RVALUE): Define.
3948         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
3949         should_move_die_to_comdat, prune_unused_types_walk): Handle
3950         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
3951         (modified_type_die, gen_reference_type_die): Emit
3952         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
3953         if TYPE_REF_IS_RVALUE and -gdwarf-4.
3954
3955 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3956
3957         PR target/43635
3958         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
3959         calls for -fpic -m31 if they have been sibcall optimized.
3960
3961 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
3962
3963         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
3964         ar.lc fixed and call-used.
3965
3966         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
3967
3968 2010-04-19  Jan Hubicka  <jh@suse.cz>
3969
3970         * opts.c (decode_options): Disable whpr incompatible passes.
3971         * lto/lto.c (lto_1_to_1_map): Skip clones.
3972         (read_cgraph_and_symbols): Do not mark everything as needed.
3973         (do_whole_program_analysis): Do map only after optimizing;
3974         set proper cgraph_state; use passmanager.
3975
3976 2010-04-19  DJ Delorie  <dj@redhat.com>
3977
3978         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
3979         POINTER_PLUS_EXPR and fix them.
3980
3981 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
3982
3983         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
3984         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
3985         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
3986         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
3987         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
3988         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
3989         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
3990         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
3991         m3000. Remove support for devices atmega8m