OSDN Git Service

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