OSDN Git Service

* gcc.c (trad_capable_cpp, default_compilers): Don't handle
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2
3         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
4         -ftraditional.
5
6 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
7
8         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
9         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
10         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
11         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
12         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
13         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
14         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
15         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
16         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
17         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
18         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
19         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
20         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
21         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
22         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
23         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
24         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
25         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
26
27 2010-12-02  Paul Koning  <ni1d@arrl.net>
28
29         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
30         opcodes if CC_NO_OVERFLOW is set.
31         (notice_update_cc_on_set): Correct setting of CC0 as a side
32         effect; set CC_NO_OVERFLOW for cases where C flag is not
33         meaningful.
34
35 2010-12-02  Ian Lance Taylor  <iant@google.com>
36
37         * doc/install.texi (Configuration): Update default for
38         --with-boot-ldflags.
39
40 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
41
42         PR c/45062
43         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
44         !funcdef_flag.
45
46 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
47
48         PR tree-optimization/45199
49         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
50         (stores_zero_from_loop): Call
51         mem_write_stride_of_same_size_as_unit_type_p.
52         * tree-data-ref.h (stride_of_unit_type_p): New.
53         * tree-loop-distribution.c (generate_memset_zero): Simplified.
54         Call stride_of_unit_type_p.
55         (build_rdg_partition_for_component): Do not call
56         rdg_flag_similar_memory_accesses when
57         flag_tree_loop_distribute_patterns is set.
58
59 2010-12-02  Richard Guenther  <rguenther@suse.de>
60
61         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
62         sign-changing conversions for induction detection.
63
64 2010-12-02  Richard Guenther  <rguenther@suse.de>
65
66         PR tree-optimization/46723
67         * tree-vect-loop.c (get_initial_def_for_induction): Strip
68         conversions from the induction evolution and apply it to
69         the result instead.
70         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
71         assigns for induction defs.
72
73 2010-12-02  Richard Guenther  <rguenther@suse.de>
74
75         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
76         the case we need to split the edge and not the block.
77
78 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
79
80         DFA model for Core 2 and Core i7 scheduling.
81
82         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
83         * config/i386/i386.c (ix86_option_override_internal): Update entries
84         for Core 2 and Core i7.
85         (ix86_issue_rate): Set issue rate to 3 [be realistic].
86         * config/i386/i386.md: Include "core2.md".
87         (define_attr cpu): Add "corei7".
88
89 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
90
91         Define tuning for Core 2 and Core i7.
92
93         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
94         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
95         (m_CORE2): Replace with m_CORE2_{32,64}.
96         (m_CORE2I7{,_32,_64}): New macros.
97         (m_GENERIC32, m_GENERIC64): Update.
98         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
99         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
100         set m_CORE2I7_64 iff m_GENERIC64.
101         (processor_target_table): Use generic costs for Core 2 and Core i7.
102         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
103         (ix86_issue_rate): Remove entry for Core 2.
104         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
105         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
106         (TARGET_CORE2): Update.
107         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
108         (PROCESSOR_CORE2): Remove.
109
110 2010-12-02  Richard Guenther  <rguenther@suse.de>
111
112         * lto-streamer.h (LTO_major_version): Bump to 2.
113
114 2010-12-02  Richard Guenther  <rguenther@suse.de>
115
116         PR lto/44871
117         * gimple.c (canonical_type_hash_cache): New hashtable.
118         (gimple_type_hash): Make a wrapper around ...
119         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
120         (gimple_canonical_type_hash): Likewise.
121         (gtc_visit): Take a gtc_mode argument.
122         (gimple_types_compatible_p_1): Likewise. Do not compare struct
123         tag names or field names when computing canonical types.
124         (gimple_types_compatible_p): Adjust.
125         (visit): Take a gtc_mode argument.
126         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
127         names or field names when computing hashes of canonical types.
128         (gimple_register_canonical_type): Use gimple_canonical_type_hash
129         for the hash.
130         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
131         (free_gimple_type_tables): Free canonical_type_hash_cache.
132
133 2010-12-02  Richard Guenther  <rguenther@suse.de>
134             Ira Rosen  <irar@il.ibm.com>
135
136         PR tree-optimization/46663
137         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
138         FUNCTION_DECL exists and that it's a builtin.
139
140 2010-12-02  Jie Zhang  <jie@codesourcery.com>
141
142         PR middle-end/46674
143         * varasm.c (compute_visible_aliases): Handle user set
144         assembler name.
145
146 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
147
148         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
149         thinko regarding setting -mno-<xxx> debug switches.
150         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
151
152 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
153
154         * intl.c: Don't include tm.h.
155         * Makefile.in (intl.o): Don't depend on $(TM_H).
156
157 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
158
159         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
160         unused warning.
161         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
162
163 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
164
165         * graphite-sese-to-poly.c (analyze_drs): Removed.
166         (build_scop_drs): Do not call analyze_drs.
167         (analyze_drs_in_stmts): New.
168         (insert_stmts): New.
169         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
170         (insert_out_of_ssa_copy_on_edge): Same.
171         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
172         (rewrite_phi_out_of_ssa): Same.
173         (rewrite_cross_bb_scalar_dependence): Same.
174         (split_reduction_stmt): Move data references in the new basic blocks.
175         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
176
177 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
178
179         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
180
181 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
182
183         PR middle-end/45297
184         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
185         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
186         * graphite-poly.h (new_poly_bb): Update declaration.
187         (gbb_from_bb): Moved here...
188         (pbb_from_bb): New.
189         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
190         Removed.
191         (graphite_stmt_p): Removed.
192         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
193         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
194         new_poly_bb.
195         (build_scop_bbs_1): Do not pass in sbitmap reductions.
196         (build_scop_bbs): Same.
197         (gbb_from_bb): ... from here.
198         (add_conditions_to_constraints): Moved up.
199         (analyze_drs): New.
200         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
201         not contain data references.
202         (new_pbb_from_pbb): New.
203         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
204         block is split.
205         (rewrite_close_phi_out_of_ssa): Update call to
206         insert_out_of_ssa_copy_on_edge.
207         (rewrite_reductions_out_of_ssa): Now static.
208         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
209         (split_pbb): New.
210         (split_reduction_stmt): Call split_pbb.
211         (translate_scalar_reduction_to_array): Pass in the scop, do not
212         pass in the sbitmap reductions.
213         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
214         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
215         (rewrite_commutative_reductions_out_of_ssa): Same.
216         (build_poly_scop): Call build_scop_bbs,
217         rewrite_commutative_reductions_out_of_ssa,
218         rewrite_reductions_out_of_ssa, and
219         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
220         before scop_to_lst.
221         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
222         Removed declaration.
223         (rewrite_reductions_out_of_ssa): Same.
224         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
225         (build_scop_bbs): Same.
226         * graphite.c (graphite_transform_loops): Do not initialize reductions.
227         Do not call build_scop_bbs,
228         rewrite_commutative_reductions_out_of_ssa,
229         rewrite_reductions_out_of_ssa, and
230         rewrite_cross_bb_scalar_deps_out_of_ssa.
231         * sese.h (struct gimple_bb): Add field pbb.
232         (GBB_PBB): New.
233
234 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
235
236         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
237         New.
238         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
239         handle_scalar_deps_crossing_scop_limits.
240         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
241         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
242
243 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
244
245         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
246         when replacing a constant in an ADDR_EXPR.
247
248 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
249
250         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
251         for the stride.
252         (lst_do_strip_mine): Same.
253         (scop_do_strip_mine): Same.
254         * graphite-poly.c (apply_poly_transforms): Update call to
255         scop_do_strip_mine.
256         * graphite-poly.h (scop_do_strip_mine): Update declaration.
257
258 2010-12-01  Jan Hubicka  <jh@suse.cz>
259
260         * tree.c (build_common_builtin_nodes): Do not initialize
261         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
262         * builtins.c (expand_builtin_profile_func): Remove.
263         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
264         BUILT_IN_PROFILE_FUNC_EXIT.
265         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
266         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
267         * gimplify.c (gimplify_function_tree): Reorganize code calling
268         profiling functions.
269
270 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
271
272         * opts.c: Expand comment on tm.h include.
273
274 2010-12-01  Yao Qi  <yao@codesourcery.com>
275
276         * config/arm/predicates.md ("vfp_register_operand"): Return true for
277         VFP_D0_D7_REGS classes.
278
279 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
280
281         * common.opt (flag_stack_check): New Variable entry.
282         (fcompare-debug-second): Use Var.
283         * flags.h (flag_compare_debug, flag_stack_check): Remove.
284         * opts.c (flag_compare_debug): Remove.
285         (common_handle_option): Don't handle OPT_fcompare_debug_second.
286         Set opts->x_flag_stack_check for OPT_fstack_check_.
287         * toplev.c (flag_stack_check): Remove.
288
289 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
290
291         * common.opt (main_input_filename, main_input_basename,
292         main_input_baselength): New Variable entries.  From toplev.c.
293         * final.c (output_quoted_string): Move from toplev.c.
294         * output.h (output_quoted_string): Move from toplev.h.
295         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
296         access main_input_filename, main_input_baselength and
297         main_input_basename.
298         * targhooks.c: Include intl.h and opts.h.
299         (option_affects_pch_p, default_get_pch_validity): Move from
300         toplev.c.
301         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
302         Move from toplev.h.
303         * toplev.c (main_input_filename, main_input_basename,
304         main_input_baselength): Move to common.opt.
305         (output_quoted_string): Move to final.c.
306         (warn_deprecated_use): Move to tree.c.
307         (option_affects_pch_p, default_get_pch_validity,
308         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
309         * toplev.h (skip_leading_substring): Move to tree-dump.c.
310         (warn_deprecated_use): Move to tree.h.
311         (output_quoted_string): Move to output.h.
312         (main_input_filename, main_input_basename, main_input_baselength):
313         Move to common.opt.
314         (default_get_pch_validity, default_pch_valid_p): Move to
315         targhooks.c.
316         * tree-dump.c (skip_leading_substring): Move from toplev.h.
317         * tree.c (warn_deprecated_use): Move from toplev.c.
318         * tree.h (warn_deprecated_use): Move from toplev.h.
319         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
320         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
321         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
322         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
323         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
324         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
325         config/mcore/mcore.c, config/mep/mep.c,
326         config/microblaze/microblaze.c, config/mips/mips.c,
327         config/mmix/mmix.c, config/mn10300/mn10300.c,
328         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
329         config/picochip/picochip.c, config/s390/s390.c,
330         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
331         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
332         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
333         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
334         varasm.c, xcoffout.c: Don't include toplev.h.
335         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
336         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
337         varasm.o, xcoffout.o): Update dependencies.
338         * config/arm/t-arm (arm.o): Update dependencies.
339         * config/spu/t-spu-elf (spu.o): Update dependencies.
340
341 2010-12-01  Richard Guenther  <rguenther@suse.de>
342
343         PR tree-optimization/46730
344         * value-prof.c (gimple_ic): Always generate a separate merge BB.
345
346 2010-11-30  Ian Lance Taylor  <iant@google.com>
347
348         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
349         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
350         * config/i386/linux64.h (ASM_SPEC): Likewise.
351         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
352         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
353         * config/i386/vxworks.h (ASM_SPEC): Likewise.
354         * config/i386/x86-64.h (ASM_SPEC): Likewise.
355         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
356         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
357
358 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
359
360         * c-decl.c (finish_function): Call objc_finish_function in
361         Objective-C.
362         * c-typeck.c (convert_for_assignment): Do not call
363         objc_type_quals_match().
364
365 2010-11-30  Richard Guenther  <rguenther@suse.de>
366
367         PR tree-optimization/46722
368         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
369         operands as arguments.
370         (execute_optimize_widening_mul): Also handle power of two as
371         multiplication.
372
373 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
374
375         PR middle-end/46709
376         * cgraphunit.c (process_function_and_variable_attributes): Fix
377         cut'n'pasteo.
378
379 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
380
381         * hwint.c:  New.  Extracted from toplev.c.
382         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
383         Move from toplev.h.
384         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
385         Move to hwint.c.
386         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
387         Move to hwint.h.
388         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
389         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
390         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
391         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
392         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
393         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
394         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
395         tree-vrp.c: Don't include toplev.h.
396         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
397         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
398         toplev.h in generated output.
399         * Makefile.in (OBJS-common): Add hwint.o.
400         Dependencies for above files changed to remove toplev.h.
401         (hwint.o): New.
402         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
403         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
404         toplev.h.
405         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
406         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
407
408 2010-11-30  Richard Guenther  <rguenther@suse.de>
409
410         PR tree-optimization/46717
411         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
412         call.  Manually create EH edges for the direct call and update
413         target PHI nodes.
414
415 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
416
417         * diagnostic-core.h: Include bversion.h.
418         * toplev.h: Don't include input.h or bversion.h.
419         (parse_optimize_options): Don't declare here.
420         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
421         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
422         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
423         config/host-darwin.c, config/i386/host-cygwin.c,
424         config/i386/host-mingw32.c, config/i386/msformat-c.c,
425         config/i386/netware.c, config/i386/nwld.c,
426         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
427         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
428         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
429         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
430         config/score/score3.c, config/score/score7.c,
431         config/sh/symbian-base.c, config/sh/symbian-c.c,
432         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
433         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
434         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
435         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
436         graphite-blocking.c, graphite-clast-to-gimple.c,
437         graphite-dependences.c, graphite-flattening.c,
438         graphite-interchange.c, graphite-poly.c,
439         graphite-scop-detection.c, graphite.c, haifa-sched.c,
440         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
441         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
442         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
443         lto-opts.c, lto-section-in.c, lto-section-out.c,
444         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
445         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
446         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
447         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
448         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
449         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
450         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
451         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
452         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
453         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
454         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
455         include toplev.h.
456         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
457         toplev.h.  Dependencies for above files and c-family files changed
458         to remove $(TOPLEV_H) or toplev.h.
459         (C_TREE_H): Don't include $(TOPLEV_H).
460         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
461         bversion.h.
462         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
463         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
464         config/t-darwin, config/t-sol2,
465         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
466         Dependencies for above files changed to remove $(TOPLEV_H) or
467         toplev.h.
468
469 2010-11-30  Richard Guenther  <rguenther@suse.de>
470
471         PR lto/44986
472         * gcc.c (main): Use the first input with a compiler as infile
473         for link spec processing.
474
475 2010-11-30  Richard Guenther  <rguenther@suse.de>
476
477         PR lto/45949
478         * cgraphunit.c (ipa_passes): Stop after errors from
479         small IPA passes.
480
481 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
482
483         * gcc-plugin.h: Include coretypes.h.
484         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
485
486 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
487
488         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
489         * ggc-none.c (ggc_internal_alloc_zone_stat)
490         (ggc_internal_cleared_alloc_zone_stat): New.
491
492 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
493
494         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
495         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
496         (rs6000_emit_prologue): Don't set PIC register if
497         TARGET_SINGLE_PIC_BASE.
498         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
499         * doc/invoke.texi (msingle-pic-base): Document.
500
501 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
502
503         PR driver/46712
504         * exec-tool.in (id): New.
505         Check and export LT_RCU_$id instead of LT_RCU.
506
507 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
508
509         PR tree-optimization/46675
510         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
511         in offset calculation.
512
513 2010-11-29  Jan Hubicka  <jh@suse.cz>
514
515         * collect2.c (main): Do not imply verbose output with
516         LTO and linker plugin.
517
518 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
519
520         * dwarf2out.c (print_die): Print the address of the current DIE or
521         of any DIE referenced by the current one.
522
523 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
524
525         PR debug/46101
526         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
527         function.
528         (scope_die_for, gen_type_die_for_member): Replace uses of
529         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
530
531 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
532
533         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
534         (darwin_asm_declare_object_name): Correct spelling.
535         (darwin_output_aligned_bss): Likewise.
536
537 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
538             Mike Stump  <mrs@gcc.gnu.org>
539
540         PR target/26427
541         PR target/33120
542         PR testsuite/35710
543         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
544         (ASM_OUTPUT_LOCAL): Likewise.
545         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
546         (darwin_output_aligned_bss): Likewise.
547         (darwin_asm_output_aligned_decl_local): Likewise.
548         (darwin_asm_output_aligned_decl_common): Likewise.
549         (darwin_use_anchors_for_symbol_p): Likewise.
550         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
551         (TARGET_ASM_OUTPUT_ANCHOR): Define.
552         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
553         (DARWIN_SECTION_ANCHORS): Set to 1.
554         * config/darwin.c (emit_aligned_common): New var.
555         (darwin_init_sections): Check that the Darwin private zero-size section
556         marker is in range.
557         (darwin_text_section): Check for zero-sized objects.
558         (darwin_mergeable_string_section): Likewise.
559         (darwin_mergeable_constant_section): Likewise.
560         (machopic_select_section): Adjust to check for zero-sized objects.
561         Assert that OBJC meta data are non-zero sized.
562         (darwin_asm_declare_object_name): New.
563         (darwin_asm_declare_constant_name): Adjust for zero-sized
564         object sections.
565         (BYTES_ZFILL): Define.
566         (darwin_emit_weak_or_comdat): New.
567         (darwin_emit_local_bss): New.
568         (darwin_emit_common): New.
569         (darwin_output_aligned_bss): New.
570         (darwin_asm_output_aligned_decl_common): New.
571         (darwin_asm_output_aligned_decl_local): New.
572         (darwin_file_end): Disable subsections_via_symbols when section
573         anchoring is active.
574         (darwin_asm_output_anchor): Re-enable.
575         (darwin_use_anchors_for_symbol_p): New.
576         (darwin_override_options): Check for versions that can emit
577         aligned common.  Update usage of flags to current.
578         * config/darwin-sections.def: Update comments and flags for
579         non-anchor sections.  zobj_const_section, zobj_data_section,
580         zobj_bss_section, zobj_const_data_section: New.
581         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
582         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
583         (L2_MAX_OFILE_ALIGNMENT): Define.
584         (ASM_OUTPUT_ALIGNED_BSS): Define.
585         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
586         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
587         (SECTION_NO_ANCHOR): Define.
588         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
589         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
590
591 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
592
593         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
594         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
595         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
596         Conditionally define.
597         (GET_ENVIRONMENT): Poison.
598         * configure.ac: Don't test for mincore.
599         * configure: Regenerate.
600         * config.in: Regenerate.
601         * collect2-aix.c: Don't include <sys/mman.h>.
602         * collect2.c: Don't include <signal.h>.
603         (SIGCHLD): Don't define.
604         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
605         * config/alpha/alpha.c: Include "splay-tree.h" instead of
606         <splay-tree.h>.
607         * config/arm/arm.c (arm_target_help): Use getenv instead of
608         GET_ENVIRONMENT.
609         * config/avr/driver-avr.c: Don't include <stdlib.h>.
610         * config/frv/frv.c: Don't include <ctype.h>.
611         * config/host-darwin.c: Don't include <sys/mman.h>.
612         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
613         (MAP_FAILED): Don't define.
614         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
615         * config/host-solaris.c: Don't include <sys/mman.h>.
616         * config/i386/cygming.h: Don't include <stdio.h>.
617         * config/i386/driver-i386.c: Don't include <stdlib.h>.
618         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
619         * config/iq2000/iq2000.c: Don't include <signal.h>.
620         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
621         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
622         * config/mep/mep-pragma.c: Don't include <stdio.h>.
623         * config/microblaze/microblaze.c: Don't include <signal.h>.
624         * config/mips/mips.c: Don't include <signal.h>.
625         * config/rs6000/host-darwin.c: Don't include <signal.h>.
626         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
627         * defaults.h (GET_ENVIRONMENT): Don't define.
628         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
629         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
630         (SIGCHLD, MAP_FAILED, kill): Don't define.
631         (process_command): Use getenv instead of GET_ENVIRONMENT.
632         * genhooks.c: Don't include <string.h>.
633         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
634         <sys/types.h>.
635         (MAP_FAILED): Don't define.
636         * ggc-page.c Don't include <sys/mman.h>.
637         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
638         * ggc-zone.c: Don't include <sys/mman.h>.
639         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
640         * graph.c: Include "config.h" instead of <config.h>.
641         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
642         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
643         (SIGCHLD, kill): Don't define.
644         * mips-tfile.c: Don't include <signal.h>.
645         * opts.c: Don't include <signal.h> or <sys/resource.h>.
646         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
647         * passes.c: Don't include <signal.h>, <sys/resource.h> or
648         <sys/times.h>.
649         * sparseset.h: Don't include <assert.h>.
650         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
651         * tlink.c: Don't include "libiberty.h".
652         * toplev.c: Don't include <signal.h> or <sys/times.h>.
653         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
654         * tree-switch-conversion.c: Don't include <signal.h>.
655         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
656
657 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
658
659         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
660         c_parser_objc_try_catch_finally_statement for consistency with the
661         C++ parser.  Parse @catch(...) and pass NULL_TREE to
662         objc_begin_catch_clause() in that case.  Improved error recovery.
663         Reorganized code to be almost identical to
664         cp_parser_objc_try_catch_finally_statement.
665
666 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
667
668         PR tree-optimization/46621
669         * gimple.h: Don't include tm.h or hard-reg-set.h .
670         * Makefile.in (GIMPLE_H): Remove $(TM_H).
671
672         PR bootstrap/44756
673         * cppbuiltin.c: Include target.h .
674         (define_builtin_macros_for_type_sizes):
675         Use targetm.float_words_big_endian.
676
677 2010-11-27  Jan Hubicka  <jh@suse.cz>
678
679         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
680         and output cold_text_section_label.
681         (dwarf2out_init): Don't do that there.
682         (dwarf2out_finish): Handle cold section end label only if cold
683         section was used.
684
685 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
686
687         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
688         VLA variables.
689
690 2010-11-27  Richard Guenther  <rguenther@suse.de>
691
692         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
693         (gimple_assign_ssa_name_copy_p): Likewise.
694         (gimple_assign_unary_nop_p): Use is_gimple_assign.
695         (is_gimple_cast): Remove.
696         (gimple_assign_single_p): Move ...
697         * gimple.h (gimple_assign_single_p): ... here.
698         (is_gimple_cast): Remove.
699         (gimple_assign_rhs_code): Simplify.
700         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
701         instead of is_gimple_cast.
702         * ipa-type-escape.c (look_for_casts): Likewise.
703
704 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
705
706         * doc/options.texi (Enum, EnumValue): Document new record types.
707         (Enum): Document new option flag.
708         * opt-functions.awk
709         * optc-gen.awk: Handle enumerated option arguments.
710         * opth-gen.awk: Handle enumerated option arguments.
711         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
712         enum_value_to_arg): New.
713         (decode_cmdline_option): Handle enumerated arguments.
714         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
715         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
716         * opts.c (print_filtered_help, print_specific_help): Take
717         lang_mask arguments.
718         (print_filtered_help): Handle printing values of enumerated
719         options.  Print possible arguments for enumerated options.
720         (print_specific_help): Update call to print_filtered_help.
721         (common_handle_option): Update calls to print_specific_help.  Use
722         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
723         handle OPT_ffp_contract_, OPT_fexcess_precision_,
724         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
725         OPT_fira_region_ here.
726         * opts.h (enum cl_var_type): Add CLVC_ENUM.
727         (struct cl_option): Add var_enum.
728         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
729         struct cl_enum, cl_enums, cl_enums_count): New.
730         (CL_ERR_ENUM_ARG): Define.
731         (CL_ERR_NEGATIVE): Update value.
732         (enum_value_to_arg): Declare.
733         * common.opt (flag_ira_algorithm, flag_ira_region,
734         flag_fp_contract_mode, flag_excess_precision_cmdline,
735         default_visibility, flag_tls_default): Remove Variable entries.
736         (help_enum_printed): New Variable.
737         (fdiagnostics-show-location=): Use Enum.  Add associated
738         SourceInclude, Enum and EnumValue entries.
739         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
740         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
741         associated Enum and EnumValue entries.
742
743 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
744
745         PR target/46623
746         * config/microblaze/microblaze.c (microblaze_block_move_straight):
747         Use XALLOCAVEC.
748         (microblaze_option_override): Don't use C++ style comments.
749         (save_restore_insns): Remove unused variable base_offset.
750         (microblaze_expand_prologue): Remove unused variable insn.
751         (microblaze_secondary_reload): Adjust type to match target.h .
752         (microblaze_elf_in_small_data_p): Move declarations to start of block.
753         (microblaze_expand_move): Likewise.
754         * config/microblaze/microblaze.h (LARGE_INT):
755         Avoid signed / unsigned comparisons.
756         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
757         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
758         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
759
760 2010-11-26  Michael Matz  <matz@suse.de>
761
762         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
763
764         * passes.c (init_optimization_passes): Remove superfluous
765         copy-prop pass.
766
767 2010-11-26  Richard Guenther  <rguenther@suse.de>
768
769         PR lto/46648
770         * gimple.c (gtc_visit): Do not return true for members of an
771         SCC still being processed but the current lattice value of
772         the member.  Treat SCC members comparison state as lattice,
773         starting at equal, eventually dropping to unequal.
774         (gimple_types_compatible_p_1): Likewise.
775
776 2010-11-26  Richard Guenther  <rguenther@suse.de>
777
778         PR middle-end/46559
779         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
780         for location list processing.
781
782 2010-11-26  Richard Guenther  <rguenther@suse.de>
783
784         PR lto/46560
785         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
786         flags manually.
787
788 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
789
790         * config/s390/s390.c (print_operand_address): Replace assert with
791         error message.
792         (print_operand): Replace assertions, gcc_unreachable and
793         fatal_insn with error messages.
794
795 2010-11-26  Richard Guenther  <rguenther@suse.de>
796
797         PR tree-optimization/46665
798         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
799
800 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
801
802         * config/arm/arm.c (arm_option_override): enable loop array
803         prefetching at -O3 for suitable targets, and configure params.
804         * config/arm/arm-protos.h (struct tune_params): Add fields for
805         configuring loop array prefetching.
806
807 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
808
809         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
810
811 2010-11-26  Richard Guenther  <rguenther@suse.de>
812
813         PR tree-optimization/46664
814         * tree-affine.c (aff_combination_to_tree): Add rest last.
815
816 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
817
818         PR target/33637
819         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
820         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
821         * configure: Regenerated.
822         * exec-tool.in: Not quoting command, may have extra arguments.
823
824 2010-11-26  Richard Guenther  <rguenther@suse.de>
825
826         PR tree-optimization/46528
827         PR debug/46338
828         * profile.c (branch_prob): Do not split blocks based on locations
829         from debug statements.
830
831 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
832
833         PR middle-end/46647
834         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
835         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
836
837         PR bootstrap/45700
838         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
839         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
840         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
841         build6_loc): Define.
842         * fold-const.c (protected_set_expr_location_unshare): New inline.
843         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
844         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
845         pedantic_omit_one_operand_loc, omit_two_operands_loc,
846         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
847         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
848         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
849         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
850         instead of buildN followed by SET_EXPR_LOCATION or
851         protected_set_expr_location.
852         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
853         Use buildN_stat_loc instead of buildN_stat followed by
854         SET_EXPR_LOCATION.
855
856 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
857
858         * Makefile.in (s-tm-texi): Remove spurous tab.
859
860 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
861
862         PR debug/46258
863         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
864         debug stmts.
865
866 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
867
868         * toplev.c (finalize): Add no_backend parameter.  Don't finish
869         passes when preprocessing only.  Adjust...
870         (do_compile): ... caller.
871
872 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
873
874         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
875         flag_unsafe_math_optimizations.
876         (negsf2): Likewise.
877         Move fnegabs related patterns together.  Only use fmpynfadd instruction
878         to negate a multiply if !flag_signed_zeros is true.
879
880 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
881
882         * gengtype-state.c (read_state_structures): Initialize "previous".
883
884 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
885             Jeremie Salvucci  <jeremie.salvucci@free.fr>
886
887         * gengtype-state.c: Add new file.
888
889         * gengtype.c (type count): New variable.
890         (new_structure, find_param_structure, create_pointer)
891         (create_array): Use it to set state_number in types.
892         (dump_everything): Improve comment.
893         (main): Call read_state and write_state. Print type_count.
894
895         * gengtype.h (type_lineloc): New function.
896         (read_state, write_state): New declarations.
897
898         * Makefile.in (GENGTYPE_FLAGS): New variable.
899         (s-gtype): Run gengtype twice and generate gtype.state.
900         (build/gengtype-state.o): New rule.
901         (build/gengtype$(build_exeext)): Link gengtype-state.o.
902         (mostlyclean): Update comment.  Remove gtype.state.
903
904 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
905
906         PR middle-end/46637
907         * combine.c (try_combine): When substing i2dest for i2src, pass
908         1 as last argument even if
909         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
910
911 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
912
913         PR middle-end/46647
914         * builtins.c (target_char_cast): Check INTEGER_CST instead of
915         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
916
917 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
918
919         * target.def (supports_split_stack, except_unwind_info): Take
920         gcc_options parameters.
921         * targhooks.c (default_except_unwind_info,
922         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
923         gcc_options parameters.
924         * targhooks.h (default_except_unwind_info,
925         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
926         prototypes.
927         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
928         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
929         Document that hooks must not be modified.
930         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
931         * doc/tm.texi: Regenerate.
932         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
933         &global_options to targetm.except_unwind_info.
934         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
935         dwarf2out_begin_prologue, dwarf2out_frame_init,
936         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
937         &global_options to targetm.except_unwind_info.
938         * except.c (init_eh, finish_eh_generation,
939         gate_convert_to_eh_region_ranges,
940         output_one_function_exception_table): Pass &global_options to
941         targetm.except_unwind_info.
942         * expr.c (build_personality_function): Pass &global_options to
943         targetm.except_unwind_info.
944         * function.c (expand_function_end): Pass &global_options to
945         targetm.except_unwind_info.
946         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
947         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
948         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
949         and targetm.supports_split_stack.  Remove assertions about opts
950         and opts_set.
951         (common_handle_option): Remove assertions about opts, opts_set and dc.
952         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
953         &global_options to targetm.except_unwind_info.
954         * tree.c (build_common_builtin_nodes: Pass &global_options to
955         targetm.except_unwind_info.
956         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
957         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
958         thumb1_expand_prologue, thumb1_output_function_prologue,
959         arm_unwind_emit, arm_output_fn_unwind): Update calls to
960         arm_except_unwind_info.
961         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
962         parameter.
963         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
964         parameter.
965         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
966         ia64_reorg, ia64_asm_unwind_emit): Update calls to
967         ia64_except_unwind_info.
968         * config/pa/pa.c (pa_option_override): Pass &global_options to
969         targetm.except_unwind_info.
970         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
971         Remove prototype.
972
973 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
974
975         * cgraphunit.c (process_function_and_variable_attributes):
976         Mark dllexport-ed function/variables as needed.
977         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
978         as externally visible.
979
980 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
981
982         PR rtl-optimization/46585
983         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
984         (vinsn_init): Skip computation of dependencies for local NOPs.
985         (vinsn_delete): Don't try to free regsets for local NOPs.
986         (setup_nop_and_exit_insns): Change definition of nop_pattern.
987
988 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
989
990         PR rtl-optimization/46602
991         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
992         (tidy_control_flow): Here.
993
994 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
995             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
996
997         PR bootstrap/45888
998         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
999         Fix target.def pathname in timestamp comparison.
1000
1001 2010-11-24  Richard Henderson  <rth@redhat.com>
1002
1003         * config/ia64/predicates.md (pmpyshr_operand): New.
1004         * config/ia64/ia64.c (ia64_expand_unpack): New.
1005         (ia64_expand_widen_mul_v4hi): New.
1006         (ia64_expand_widen_sum): Update for pattern renames.
1007         (ia64_expand_dot_prod_v8qi): Likewise.
1008         * config/ia64/ia64-protos.h: Update.
1009         * config/ia64/vect.md (vecwider): New mode attribute.
1010         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
1011         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
1012         (pmpyshr2, pmpyshr2_u): New.
1013         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
1014         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
1015         (mulv2si3): New.
1016         (vec_pack_ssat_v4hi): Rename from pack2_sss.
1017         (vec_pack_usat_v4hi): Rename from *pack2_uss.
1018         (vec_pack_ssat_v2si): Rename from pack4_sss.
1019         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
1020         vec_select operation.
1021         (vec_interleave_highv8qi): Similarly.
1022         (mux1_alt): Rename from *mux1_alt.
1023         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
1024         (vec_interleave_lowv4hi): Rename from unpack2_l.
1025         (vec_interleave_highv4hi): Rename from unpack2_h.
1026         (mix2_r): Rename from *mix2_r.
1027         (mix2_l): Similarly.
1028         (vec_extract_evenodd_helper): New.
1029         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
1030         (vec_interleave_lowv2si): Rename from *unpack4_l.
1031         (vec_interleave_highv2si): Rename from *unpack4_h.
1032         (vec_extract_evenv2si, vec_extract_oddv2si): New.
1033         (vec_interleave_lowv2sf): Rename from fmix_r.
1034         (vec_interleave_highv2sf): Rename from *fmix_l.
1035         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
1036         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
1037         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
1038         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
1039
1040 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1041
1042         * targhooks.c (default_except_unwind_info): Remove
1043         MUST_USE_SJLJ_EXCEPTIONS case.
1044         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1045         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1046         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1047         * doc/tm.texi: Regenerate.
1048         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1049
1050 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1051
1052         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1053         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1054         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1055         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1056         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1057
1058 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1059
1060         PR target/46519
1061         * config/i386/i386.c (ix86_expand_call): Don't check
1062         TREE_THIS_VOLATILE.
1063
1064 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1065
1066         PR target/46519
1067         * config/i386/i386.c (upper_128bits_state): New.
1068         (block_info_def): Remove upper_128bits_set and done.  Add state,
1069         referenced, count, processed and rescanned.
1070         (check_avx256_stores): Updated.
1071         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1072         Call note_stores only if needed.  Set referenced and count.
1073         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1074         (rescan_move_or_delete_vzeroupper): New.
1075         (move_or_delete_vzeroupper):  Process and rescan all all basic
1076         blocks instead of predecessor blocks of all exit points.
1077         (ix86_option_override_internal): Enable vzeroupper optimization
1078         only for -fexpensive-optimizations and not optimizing for size.
1079         (use_avx256_p): Removed.
1080         (init_cumulative_args): Don't set use_avx256_p.
1081         (ix86_function_arg): Likewise.
1082         (ix86_expand_move): Likewise.
1083         (ix86_expand_vector_move_misalign): Likewise.
1084         (ix86_local_alignment): Likewise.
1085         (ix86_minimum_alignment): Likewise.
1086         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1087         vzeroupper.
1088         (ix86_expand_call): Likewise.
1089
1090         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1091         and use_avx256_p.  Add rescan_vzeroupper_p.
1092
1093 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1094
1095         * toplev.c: Include <signal.h>.
1096
1097 2010-11-24  Richard Guenther  <rguenther@suse.de>
1098
1099         PR lto/43218
1100         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1101         conflicting function signatures as non-inlineable.
1102
1103 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1104
1105         PR rtl-optimization/46614
1106         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1107          (deps_analyze_insn): Mark JUMP_INSNs in
1108         last_pending_memory_flush that weren't added through
1109         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1110         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1111         on INSN_LIST instead of JUMP_P check on its operand.
1112         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1113
1114 2010-11-24  Richard Guenther  <rguenther@suse.de>
1115
1116         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1117
1118 2010-11-24  Richard Guenther  <rguenther@suse.de>
1119
1120         PR lto/46606
1121         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1122         a FIELD_DECL that is type correct issue a warning and fixup
1123         with a VIEW_CONVERT_EXPR.
1124
1125 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1126
1127         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1128         Explain static numbering of dump files.
1129
1130 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1131
1132         * common.opt (user_vect_verbosity_level): New Variable entry.
1133         (ftree-vectorizer-verbose=): Mark as UInteger.
1134         * flag-types.h (enum vect_verbosity_levels): Move from enum
1135         verbosity_levels in tree-vectorizer.h.
1136         * opts.c: Don't include tree.h.
1137         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1138         gcc_options parameter; take integer option argument.
1139         (common_handle_option): Update call to vect_set_verbosity_level.
1140         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1141         (vect_set_verbosity_level): Move to opts.c.
1142         (vect_verbosity_level, vect_print_dump_info): Update for change of
1143         enum name.
1144         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1145         (vect_print_dump_info): Update for change of enum name.
1146         * tree.h (vect_set_verbosity_level): Remove.
1147         * Makefile.in (opts.o): Update dependencies.
1148
1149 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1150
1151         PR middle-end/46629
1152         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1153         instead of insn with any_condjump_p.
1154
1155 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1156
1157         * config/mips/loongson.md: Change the description comment of the file
1158         and update the copyright years.
1159         (define_insn "<u>div<mode>3): Add loongson3a support.
1160         (define_insn "<u>mod<mode>3"): Likewise.
1161         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1162         mul<mode>3_mul3_loongson.
1163         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1164         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1165
1166 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1167
1168         * common.opt (initial_max_fld_align, flag_debug_asm,
1169         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1170         flag_print_asm_name, graph_dump_format, help_printed,
1171         help_columns, flag_opts_finished): New Variable entries.
1172         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1173         frandom-seed=): Mark deferred.
1174         (fsched-verbose=): Use UInteger and Var.
1175         * flags.h (set_struct_debug_option, flag_print_asm_name,
1176         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1177         graph_dump_format): Don't declare here.
1178         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1179         * opts-global.c: Include dbgcnt.h and debug.h.
1180         (decode_options): Pass location to finish_options.
1181         (handle_common_deferred_options): Check flag_dump_all_passed.
1182         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1183         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1184         OPT_fstack_limit.
1185         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1186         (set_struct_debug_option): Add location_t parameter.  Update
1187         recursive call.  Use error_at.
1188         (default_options_optimization): Use error_at.
1189         (finish_options): Add location_t parameter.  Use
1190         opts->x_flag_opts_finished instead of first_time_p.  Use
1191         opts->x_optimize instead of optimize.  Use error_at.  Pass
1192         location to inform.
1193         (print_filtered_help): Use opts->x_help_printed to track what
1194         options have been printed.
1195         (print_specific_help): Use opts->x_help_columns to track number of
1196         columns.
1197         (common_handle_option): Pass locations and gcc_options pointers to
1198         more functions.  Use warning_at instead of fnotice and warning.
1199         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1200         OPT_fdebug_prefix_map_.  Use error_at.  Set
1201         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1202         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1203         OPT_fsched_verbose_.
1204         (handle_param): Add location_r parameter.  Use error_at.
1205         (set_debug_level): Add location_r parameter.  Use error_at and
1206         warning_at.
1207         (setup_core_dumping): Add diagnostic_context parameter.
1208         (decode_d_option): Add gcc_options, location_t and
1209         diagnostic_context parameters and use them instead of global
1210         state.  Use warning_at.
1211         (enable_warning_as_error): Use error_at.
1212         * opts.h (finish_options): Update prototype.
1213         (set_struct_debug_option): Declare here.
1214         * rtl.h (fix_sched_param): Remove.
1215         * stor-layout.c (initial_max_fld_align): Remove.
1216         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1217         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1218         (process_options): Set maximum_field_alignment.
1219         * tree.h (initial_max_fld_align) Don't declare here.
1220         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1221
1222 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1223
1224         * flag-types.h (struct visibility_flags): Don't declare here.
1225         * flags.h (strip_off_ending, fast_math_flags_set_p,
1226         fast_math_flags_struct_set_p): Declare here.
1227         (visibility_options): Don't declare here.
1228         * opts-common.c (option_enabled, get_option_state): Move from
1229         opts.c.
1230         * opts-global.c: Include diagnostic.h instead of
1231         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1232         and toplev.h.
1233         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1234         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1235         print_ignored_options, unknown_option_callback,
1236         post_handling_callback, lang_handle_option, add_input_filename,
1237         read_cmdline_options, initial_lang_mask, init_options_once,
1238         decode_cmdline_options_to_array_default_mask,
1239         set_default_handlers, decode_options): Move from opts.c.
1240         (print_ignored_options): Use warning_at instead of saving and
1241         restoring input_location.
1242         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1243         instead of expr.h.  Don't include langhooks.h, except.h or
1244         lto-streamer.h.  Add more comments on includes.
1245         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1246         toplev.c.
1247         (visibility_options): Move to c-family/c-common.c.
1248         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1249         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1250         print_ignored_options, unknown_option_callback,
1251         post_handling_callback, lang_handle_option, add_input_filename,
1252         read_cmdline_options, initial_lang_mask, init_options_once,
1253         decode_cmdline_options_to_array_default_mask,
1254         set_default_handlers, decode_options): Move to opts-global.c.
1255         (target_handle_option, default_options_optimization,
1256         finish_options, common_handle_option): Remove static.
1257         (option_enabled, get_option_state): Move to opts-common.c.
1258         * opts.h (common_handle_option, target_handle_option,
1259         finish_options, default_options_optimization): Declare.
1260         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1261         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1262         opts.c.
1263         * toplev.h (strip_off_ending, decode_d_option,
1264         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1265         declare here.
1266         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1267
1268 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1269
1270         PR driver/42690
1271         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1272         options, replace by call of pass-through-libs spec function to process
1273         link_gcc_c_sequence spec.
1274         (lto_libgcc_spec): Delete variable.
1275         (static_specs[]): Remove related entry.
1276         (static_spec_functions[]): Add new entry for pass-through-libs.
1277         (main): Don't generate deleted lto_libgcc_spec.
1278         (pass_through_libs_spec_func): New function to implement the new
1279         pass-through-libs spec function.
1280         * doc/invoke.texi (pass-through-libs): Document new spec function.
1281
1282 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1283
1284         * doc/options.texi (Warning, Optimization): Document.
1285
1286 2010-11-23  Jan Hubicka  <jh@suse.cz>
1287
1288         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1289         (tree_decl_with_vis): Add implicit_section_name_p.
1290         * targhooks.h (default_function_section): Declare.
1291         * target.def (function_section): New hook.
1292         * defaults.h (HOT_TEXT_SECTION_NAME,
1293         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1294         * predict.c (choose_function_section): Remove.
1295         (estimate_bb_frequencies): Do not use choose_function_section.
1296         * coretypes.h (enum node_frequency): Move here from cgraph.h
1297         * cgraph.h (enum node_frequency): Remove.
1298         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1299         unlikely_text_section_p): Remove.
1300         (named_subsection_entry): New structure.
1301         (get_text_section): New function.
1302         (default_function_section): New function.
1303         (function_section_1): Break out from ...; handle profile info.
1304         (function_section): ... here.
1305         (unlikely_text_section): Remove.
1306         (unlikely_text_section_p): Use function_section_1.
1307         (assemble_start_function): Do not initialize cold section.
1308         (default_section_type_flags): Do not special case cold subsection.
1309         (switch_to_section): Likewise.
1310         * output.h (get_text_section): Define.
1311         * config/i386/winnt.c: Do not special case cold section.
1312         * config/darwin-protos.h (darwin_function_section): Declare.
1313         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1314         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1315         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1316         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1317         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1318         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1319         * config/darwin.c (machopic_select_section): Use
1320         darwin_function_section.
1321         (darwin_function_section): New function.
1322         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1323         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1324         (TARGET_ASM_FUNCTION_SECTION): Define.
1325         * system.h (HOT_TEXT_SECTION_NAME,
1326         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1327
1328 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1329
1330         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1331         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1332
1333 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1334
1335         PR middle-end/46499
1336         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1337         following unconditional jumps.
1338
1339 2010-11-23  Richard Guenther  <rguenther@suse.de>
1340
1341         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1342
1343 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1344             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1345
1346         * gengtype.c (enum typekind, struct options)
1347         (struct nested_ptr_data, struct pair, NUM_PARAM)
1348         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1349         Move to gengtype.h.
1350         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1351         Remove static, add zero state_number.
1352         (typedefs, structures, param_structs, variables): Remove static.
1353         (create_option): Remove.
1354         (create_string_option, create_type_option, create_nested_option):
1355         New functions.
1356         (create_nested_ptr_option): Use create_nested_option.
1357         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1358         new create*option functions.
1359         (process_gc_options): Adjust for discriminated option.
1360         (output_mangled_typename): Handle TYPE_NONE.
1361         (walk_type): Test option kinds.
1362         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1363         (write_func_for_structure, write_type, write_local, write_root)
1364         (write_roots, note_def_vec, dump_options): Adjust for
1365         discriminated option.
1366
1367         * gengtype.h (typedefs, structures, param_structs, variables
1368         enum typekind): Move from gengtype.c
1369         (enum option_kind): New discriminating enumeration.
1370         (struct options): Becomes discriminated.
1371         (struct nested_ptr_data): Nove from gengtype.c
1372         (create_string_option, create_type_option, create_nested_option)
1373         (create_nested_ptr_option): New functions
1374         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1375         (UNION_OR_STRUCT_P): Move from gengtype.c
1376
1377         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1378         discriminated options.
1379
1380 2010-11-23  Richard Guenther  <rguenther@suse.de>
1381
1382         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1383         twice.  Avoid re-allocating the ops vector all the time.
1384
1385 2010-11-23  Richard Guenther  <rguenther@suse.de>
1386
1387         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1388         is_gimple_min_invariant, group tree code checks to allow
1389         combining them.
1390         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1391         of is_gimple_reg.
1392
1393 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1394
1395         * config.gcc (sparc*-*-*): Reorder.
1396
1397 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1398
1399         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1400         Remove ENABLE_CHECKING around DBGPRINTF.
1401
1402 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1403
1404         * common.opt (exit_after_options, write_symbols, debug_info_level,
1405         use_gnu_debug_info_extensions): New Variable entries.
1406         (fprofile-dir=): Use Var.
1407         * flag-types.h (enum debug_info_level): Rename to enum
1408         debug_info_levels.
1409         * flags.h (write_symbols, debug_info_level,
1410         use_gnu_debug_info_extensions): Remove declarations.
1411         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1412         (set_struct_debug_option): Make static variables const.
1413         (use_gnu_debug_info_extensions): Remove.
1414         (set_debug_level, print_filtered_help, print_specific_help,
1415         fast_math_flags_set_p): Take gcc_options parameters and use them
1416         in place of global variables.
1417         (print_filtered_help): Make new_help non-static.
1418         (print_specific_help): Update call to print_filtered_help.
1419         (common_handle_option): Update calls to print_specific_help.  Use
1420         gcc_options structure for more settings.  Make --help table
1421         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1422         set_debug_level.
1423         * toplev.c (profile_data_prefix): Remove.
1424         * toplev.h (profile_data_prefix, exit_after_options): Remove
1425         declarations.
1426         (fast_math_flags_set_p): Update prototype.
1427         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1428         Update call to fast_math_flags_set_p.
1429
1430 2010-11-22  Richard Henderson  <rth@redhat.com>
1431
1432         PR target/46434
1433         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1434         return the address register extracted.
1435         (crx_decompose_address): Update the extracted address register.
1436
1437 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1438
1439         PR driver/43335
1440         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1441
1442 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1443
1444         PR target/46608
1445         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1446         * config/picochip/picochip-protos.h: Don't include "target.h" .
1447         (picochip_secondary_reload): Don't declare.
1448
1449         PR target/46613
1450         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1451         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1452         static.
1453
1454 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1455
1456         PR bootstrap/46609
1457         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1458         (source_dot_c_frul): Likewise.
1459
1460 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1461
1462         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1463
1464 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1465
1466         PR bootstrap/44970
1467         * Makefile.in (fwprop.o) Add sparseset.h.
1468         * fwprop.c: Include sparseset.h
1469         (struct find_occurrence_data, find_occurrence_callback,
1470         find_occurrence): Remove.
1471         (active_defs, active_defs_check, register_active_defs,
1472         update_df_init, update_uses): New.
1473         (update_df): Rewrite.
1474         (try_fwprop_subst, forward_propagate_asm): Add calls to
1475         update_df_init and update_df.
1476         (fwprop_init): Allocate active_defs and active_defs_check.
1477         (fwprop_done): Free them.
1478         (fwprop, fwprop_addr): Adjust comments.
1479         * df.h (df_uses_create): Declare.
1480         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1481         (df_ref_create): Return result of df_ref_create_structure directly.
1482         (df_ref_create_structure): Call df_install_ref_incremental when
1483         no collection_rec is passed.
1484         (df_ref_record): Do not create multiword hard reg info when no
1485         collection_rec is passed.
1486         (df_uses_create): New.
1487
1488 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1489
1490         PR middle-end/43057
1491         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1492         setting location.
1493
1494 2010-11-22  Richard Guenther  <rguenther@suse.de>
1495
1496         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1497         MEM_REFs, preserve volatileness.
1498         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1499         addresses.
1500
1501 2010-11-22  Richard Guenther  <rguenther@suse.de>
1502
1503         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1504
1505 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1506
1507         PR rtl-optimization/45652
1508         * alias.c (get_reg_base_value): New.
1509         * rtl.h (get_reg_base_value): Add prototype.
1510         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1511         non-null REG_BASE_VALUE for renaming.
1512
1513 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1514             Basile Starynkevitch  <basile@starynkevitch.net>
1515
1516         * gengtype.c: Include xregex.h and obstack.h
1517         Added comments about role of get_output_file_with_visibility and
1518         our regexpr machinery.
1519         (frul_actionrout_t, struct file_rule_st): New.
1520         (hader_dot_h_frul, source_dot_c_frul): New functions.
1521         (NULL_REGEX,  NULL_FRULACT): New.
1522         (files_rules): New.
1523         (matching_file_name_substitute): New function.
1524         (get_output_file_with_visibility): Updated comments and rewritten
1525         to use the new files_rules machinery.
1526
1527         * Makefile.in (XREGEX_H): Added variable.
1528         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1529
1530 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1531
1532         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1533
1534 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1535
1536         * target.def (conditional_register_usage): Define.
1537         * reginfo.c (init_reg_sets_1): Call
1538         targetm.conditional_register_usage.
1539         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1540         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1541         for making it a hook.
1542         * doc/tm.texi: Regenerate.
1543         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1544         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1545         New function.
1546         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1547         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1548         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1549         New function.
1550         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1551         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1552         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1553         New function.
1554         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1555         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1556         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1557         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1558         (bfin_conditional_register_usage): ...here.  New function.
1559         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1560         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1561         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1562         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1563         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1564         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1565         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1566         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1567         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1568         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1569         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1570         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1571         New function.
1572         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1573         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1574         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1575         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1576         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1577         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1578         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1579         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1580         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1581         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1582         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1583         New function.
1584         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1585         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1586         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1587         Delete.
1588         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1589         static.
1590         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1591         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1592         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1593         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1594         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1595         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1596         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1597         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1598         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1599         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1600         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1601         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1602         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1603         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1604         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1605         ...here.  New function.
1606         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1607         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1608         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1609         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1610         New function.
1611         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1612         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1613         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1614         New function.
1615         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1616         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1617         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1618         Delete.
1619         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1620         static.
1621         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1622         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1623         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1624         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1625         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1626         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1627         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1628         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1629         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1630         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1631         * config/score/score.c (score_conditional_register_usage): ...here.
1632         New function.
1633         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1634         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1635         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1636         New function.
1637         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1638         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1639         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1640         New function.
1641         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1642         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1643         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1644         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1645         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1646         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1647         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1648         New function.
1649         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1650
1651 2010-11-21  Jan Hubicka  <jh@suse.cz>
1652             Dominique d'Humieres <dominiq@lps.ens.ft>
1653
1654         PR target/46510
1655         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1656         finalize external decls.
1657
1658 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1659
1660         * system.h (strerror): Poison.
1661
1662 2010-11-21  Richard Henderson  <rth@redhat.com>
1663
1664         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1665         for infq/huge_valq.
1666
1667 2010-11-21  Richard Henderson  <rth@redhat.com>
1668
1669         PR rtl-optimization/46571
1670         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1671         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1672
1673 2010-11-21  Paul Koning  <ni1d@arrl.net>
1674
1675         * config/mips/pdp11.md (negsi2): Fix wrong code.
1676
1677 2010-11-21  Paul Koning  <ni1d@arrl.net>
1678
1679         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1680         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1681
1682 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1683
1684         * config/mips/mips.c (machine_function): Rename load_label_length to
1685         load_label_num_insns.
1686         (mips_load_label_length): Rename to...
1687         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1688         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1689
1690 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1691
1692         PR target/46533
1693         * config/alpha/predicates.md (direct_call_operand): Return false
1694         for !TARGET_SMALL_TEXT targets.
1695
1696 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1697
1698         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1699         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1700         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1701         * doc/tm.texi: Regenerate.
1702         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1703         HANDLE_PRAGMA_WEAK): Poison.
1704         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1705         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1706         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1707         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1708         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1709         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1710         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1711         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1712         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1713         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1714         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1715         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1716         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1717         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1718         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1719         (HANDLE_PRAGMA_WEAK): Don't undefine.
1720         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1721         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1722         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1723         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1724         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1725         (HANDLE_PRAGMA_WEAK): Don't undefine.
1726         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1727         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1728         (HANDLE_PRAGMA_PACK): Don't undefine.
1729         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1730         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1731         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1732         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1733         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1734         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1735         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1736         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1737         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1738         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1739         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1740         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1741         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1742         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1743         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1744         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1745         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1746
1747 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1748
1749         PR target/31100
1750         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1751         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1752         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1753
1754 2010-11-20  Jan Hubicka  <jh@suse.cz>
1755
1756         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1757         (dump_cgraph_node): Dump resolution.
1758         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1759         (cgraph_comdat_can_be_unshared_p): Dclare.
1760         * lto-streamer-out.c (produce_symtab): Use
1761         cgraph_comdat_can_be_unshared_p.
1762         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1763         (cgraph_comdat_can_be_unshared_p): New function based on logic
1764         in cgraph_externally_visible_p.
1765         (cgraph_externally_visible_p): Use it.
1766         (varpool_externally_visible_p): Virtual tables can be unshared.
1767         * varpool.c (dump_varpool_node): Dump resolution.
1768
1769 2010-11-20  Jan Hubicka  <jh@suse.cz>
1770
1771         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1772
1773 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1774
1775         PR other/46202
1776         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1777         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1778         shell quoting.
1779         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1780         (install-strip): New target.
1781         (STRIPPROG): New variable, exported if STRIP is set.
1782         * doc/install.texi (Final install): Minor markup and code style
1783         fixes.  Document install-strip target.
1784
1785 2010-11-20  Paul Koning  <ni1d@arrl.net>
1786
1787         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1788         pdp11_regno_reg_class): New functions.
1789         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1790         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1791         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1792         functions.
1793         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1794         frame pointer and argument pointer pseudo-registers.
1795         (ARG_POINTER_REGNUM): Define.
1796         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1797         argument pointer.
1798         (FIRST_PARM_OFFSET): Update for argument pointer.
1799         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1800         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1801         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1802         frame pointer and argument pointer.
1803
1804 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1805
1806         PR debug/46561
1807         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1808         when looking for immediate uses.
1809
1810         PR tree-optimization/45830
1811         * stmt.c (expand_switch_using_bit_tests_p): New function.
1812         (expand_case): Use it.
1813         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1814         * tree-switch-conversion.c (struct switch_conv_info): Add
1815         bit_test_uniq, bit_test_count and bit_test_bb fields.
1816         (check_range): Fix a comment.
1817         (check_process_case): Compute bit_test_uniq and bit_test_count.
1818         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1819         allocation.
1820         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1821         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1822         (array_value_type): New function.
1823         (build_one_array): Use it, if it returned different type,
1824         fold_convert all constructor fields and convert back to the
1825         wider type in the generated code.
1826         (process_switch): Initialize bit_test_uniq, bit_test_count and
1827         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1828         returned true.
1829
1830 2010-11-19  Michael Matz  <matz@suse.de>
1831
1832         PR tree-optimization/46077
1833         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1834
1835 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1836
1837         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1838         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1839         function.
1840         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1841
1842 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1843
1844         * mode-switching.c (optimize_mode_switching): Use
1845         FOR_BB_INSNS instead of open-coded loop.
1846         * cfgrtl.c (redirect_branch_edge): Ditto.
1847
1848 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1849
1850         PR target/46436
1851         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1852         to accomodate 32 bit HOST_WIDE_INT.
1853         (m68hc11_emit_logical): Remove unused variable insn.
1854         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1855         this_insn_uses_iy before use.
1856
1857         PR target/46434
1858         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1859
1860 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1861
1862         PR c/46547
1863         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1864         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1865
1866 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1867
1868         * doc/extend.texi (Function attributes): Document PowerPC target
1869         attributes that are supported.
1870         (Pragmas): Document that PowerPC now supports target pragmas.
1871
1872         * doc/options.texi (TargetVariable): Document TargetVariable,
1873         HeaderInclude, and SourceInclude.
1874
1875         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1876         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1877         -ffp-contract=off.
1878
1879         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1880         SourceInclude directives.  Fix a cut+paste error with target save
1881         enum variables.  Sort enums in the structures after ints and
1882         before shorts.
1883         * opth-gen.awk: Ditto.
1884
1885         * configure.ac: Add support for HeaderInclude and SourceInclude option
1886         directives to add the appropriate files to the dependency lists.
1887         * configure: Regenerate.
1888         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1889         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1890         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1891         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1892         (gcc-options.o): Ditto.
1893         * opt-include.awk: New awk script to handle HeaderInclude and
1894         TargetInclude.
1895
1896         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1897         gets saved in the target options.
1898         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1899         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1900         (-mprototype): Ditto.
1901         (-mbit-word): ditto.
1902         (-mregnames): Ditto.
1903         (-msecure-plt): Ditto.
1904         (-mbss-plt): Ditto.
1905         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1906         (-mpowerpc-gfxopt): Ditto.
1907         (-mmfcrf): Ditto.
1908         (-mpopcntb): Ditto.
1909         (-mfprnd): Ditto.
1910         (-mcmpb): Ditto.
1911         (-mmmfpgpr): Ditto.
1912         (-maltivec): Ditto.
1913         (-mhard-dfp): Ditto.
1914         (-mmulhw): Ditto.
1915         (-mdlmzb): Ditto.
1916         (-mmultiple): Ditto.
1917         (-mstring): Ditto.
1918         (-mpopcntd): Ditto.
1919         (-mfriz): Ditto.
1920         (-mvsx): Ditto.
1921         (-mno-update): Ditto.
1922         (-mavoid-indexed-addresses): Ditto.
1923         (-mtls-markers): Ditto.
1924         (-msched-epilog): Ditto.
1925         (-msched-prolog): Ditto.
1926         (-maix-struct-return): Ditto.
1927         (-msvr4-struct-return): Ditto.
1928         (-mxl-compat): Ditto.
1929         (-mrecip-precision): Ditto.
1930         (-mfp-in-toc): Ditto.
1931         (-msum-in-toc): Ditto.
1932         (-mvrsave): Ditto.
1933         (-mblock-move-inline-limit=): Ditto.
1934         (-misel): Ditto.
1935         (-mpaired): Ditto.
1936         (-mlongcall): Ditto.
1937         (-mgen-cell-microcode): Ditto.
1938         (-mwarn-cell-microcode): Ditto.
1939         (-mwarn-altivec-long): Ditto.
1940         (-mprioritize-restricted-insns=): Ditto.
1941         (-msingle-float): Ditto.
1942         (-mdouble-float): Ditto.
1943         (-msimple-fpu): Ditto.
1944         (-mxilinx-fpu): Ditto.
1945         * config/rs6000/aix64.opt (-mpe): Ditto.
1946
1947         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1948         (rs6000_cpu): Move variable to be a target variable.  Rename
1949         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1950         -mdebug=<xxx> variables into a single int.
1951         (rs6000_always_hint): Ditto.
1952         (rs6000_sched_groups): Ditto.
1953         (rs6000_align_branch_targets): Ditto.
1954         (rs6000_sched_costly_dep): Ditto.
1955         (rs6000_sched_insert_nops): Ditto.
1956         (rs6000_long_double_type_size): Ditto.
1957         (rs6000_ieeequad): Ditto.
1958         (rs6000_altivec_abi): Ditto.
1959         (rs6000_spe): Ditto.
1960         (rs6000_spe_abi): Ditto.
1961         (rs6000_float_gprs): Ditto.
1962         (rs6000_darwin64_abi): Ditto.
1963         (can_override_loop_align): Ditto.
1964         (rs6000_sdata): Ditto.
1965         (rs6000_tls_size): Ditto.
1966         (rs6000_current_abi): Ditto.
1967         (rs6000_traceback): Ditto.
1968         (rs6000_alignment_flags): Ditto.
1969         (rs6000_current_cmodel): Ditto.
1970         (rs6000_recip_control): Ditto.
1971         (rs6000_cpu_index): Ditto.
1972         (rs6000_tune_index): Ditto.
1973         (rs6000_debug): Ditto.
1974         (rs6000_target_flags_explict): Ditto.
1975
1976         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1977         declaration.
1978
1979         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1980         cmodel.  Change all uses.
1981
1982         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1983         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1984         Rename cmodel to rs6000_current_cmodel.
1985         (rs6000_sched_groups): Ditto.
1986         (rs6000_align_branch_targets): Ditto.
1987         (rs6000_sched_costly_dep): Ditto.
1988         (rs6000_sched_insert_nops): Ditto.
1989         (rs6000_long_double_type_size): Ditto.
1990         (rs6000_ieeequad): Ditto.
1991         (rs6000_altivec_abi): Ditto.
1992         (rs6000_spe): Ditto.
1993         (rs6000_spe_abi): Ditto.
1994         (rs6000_float_gprs): Ditto.
1995         (rs6000_darwin64_abi): Ditto.
1996         (can_override_loop_align): Ditto.
1997         (rs6000_sdata): Ditto.
1998         (rs6000_tls_size): Ditto.
1999         (rs6000_current_abi): Ditto.
2000         (rs6000_traceback): Ditto.
2001         (rs6000_alignment_flags): Ditto.
2002         (rs6000_current_cmodel): Ditto.
2003         (rs6000_recip_control): Ditto.
2004         (rs6000_cpu_index): Ditto.
2005         (rs6000_tune_index): Ditto.
2006         (rs6000_debug): Ditto.
2007         (rs6000_target_flags_explict): Ditto.
2008         (rs6000_sched_insert_nops_str): Make static.
2009         (rs6000_sched_costly_dep_str): Ditto.
2010         (rs6000_recip_name): Ditto.
2011         (rs6000_abi_name): Ditto.
2012         (rs6000_sdata_name): Ditto.
2013         (enum rs6000_traceback_name): Move to rs6000-opts.h.
2014         (rs6000_parse_tls_size_option): Delete.
2015         (rs6000_valid_attribute_p): New function for target attributes and
2016         pragmas.
2017         (rs6000_function_specific_save): Ditto.
2018         (rs6000_function_specific_restore): Ditto.
2019         (rs6000_function_specific_print): Ditto.
2020         (rs6000_can_inline_p): Ditto.
2021         (rs6000_set_current_function): Ditto.
2022         (rs6000_inner_target_options): Ditto.
2023         (rs6000_debug_target_options): Ditto.
2024         (rs6000_pragma_target_parse): Ditto.
2025         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
2026         attributes and pragmas.
2027         (TARGET_OPTION_SAVE): Ditto.
2028         (TARGET_OPTION_RESTORE): Ditto.
2029         (TARGET_OPTION_PRINT): Ditto.
2030         (TARGET_CAN_INLINE_P): Ditto.
2031         (TARGET_SET_CURRENT_FUNCTION): Ditto.
2032         (POWER_MASKS): Move to file level scope from the
2033         rs6000_option_override_internal function.
2034         (POWERPC_MASKS): Ditto.
2035         (ISA_*_MASKS): Ditto.
2036         (struct rs6000_ptt): Ditto.
2037         (processor_target_table): Ditto.
2038         (rs6000_cpu_name_lookup): Map cpu name to an index in
2039         processor_target_table.
2040         (rs6000_debug_reg_global): Print more information on processor
2041         options for -mdebug=reg.
2042         (rs6000_init_hard_regno_mode_ok): Add support for target
2043         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
2044         Allow -mdebug=val1,val2.  Rename cmodel variable.
2045         (rs6000_option_override_internal): Ditto.
2046         (rs6000_option_override): Ditto.
2047         (rs6000_handle_option): Ditto.
2048         (rs6000_conditional_register_usage): Add debug trace message.
2049         (struct rs6000_opt_mask): New for target attribute/pragma support.
2050         (rs6000_opt_masks): Ditto.
2051         (struct rs6000_opt_var): Ditto.
2052         (rs6000_opt_vars): Ditto.
2053         (rs6000_previous_function): Ditto.
2054
2055         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2056         wasn't already included.
2057         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2058         (enum processor_type): Ditto.
2059         (rs6000_cpu): Ditto.
2060         (enum fpu_type_t): Ditto.
2061         (fpu_type): Ditto.
2062         (enum rs6000_dependence_cost): Ditto.
2063         (enum rs6000_nop_insertion): Ditto.
2064         (enum group_termination): Ditto.
2065         (rs6000_long_double_type_size): Ditto.
2066         (rs6000_ieeequad): Ditto.
2067         (rs6000_altivec_abi): Ditto.
2068         (rs6000_spe_abi): Ditto.
2069         (rs6000_spe): Ditto.
2070         (rs6000_float_gprs): Ditto.
2071         (rs6000_alignment_flags): Ditto.
2072         (rs6000_sched_insert_nops): Ditto.
2073         (enum rs6000_vector): Ditto.
2074         (enum rs6000_abi): Ditto.
2075         (rs6000_current_opt): Ditto.
2076         (rs6000_debug_*): Delete.
2077         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2078         (TARGET_DEBUG*): Ditto.
2079
2080         * config/rs6000/rs6000-opts.h: New header file to define the enums
2081         that are used in target variables that are now defined in rs6000.opt.
2082
2083         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2084         rs6000-opts.h.
2085         (rs6000_sdata): Ditto.
2086         (rs6000_abi_name): Delete.
2087         (rs6000_sdata_name): Ditto.
2088         (rs6000_tls_size_string): Ditto.
2089
2090 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2091
2092         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2093         Variable entries.
2094         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2095         should_emit_struct_debug): Move from opts.c.
2096         * flag-types.h (enum debug_struct_file): Move from opts.c.
2097         * flags.h (should_emit_struct_debug): Remove.
2098         (base_of_path): Declare.
2099         (set_struct_debug_option): Add gcc_options parameter.
2100         * optc-gen.awk, opth-gen.awk: Handle array variables.
2101         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2102         debug_struct_generic): Remove.
2103         (set_struct_debug_option): Add gcc_options parameter.
2104         (base_of_path): Remove static.
2105         (main_input_basename, main_input_baselength, matches_main_base,
2106         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2107         Remove.
2108         * toplev.c (main_input_basename, main_input_baselength): Define
2109         here.
2110         * toplev.h (main_input_basename, main_input_baselength): Declare
2111         here.
2112
2113 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2114
2115         * common.opt (flag_instrument_functions_exclude_functions,
2116         flag_instrument_functions_exclude_files): New Variable definitions.
2117         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2118         * gimplify.c (char_p): Declare type and vectors.
2119         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2120         * opts.c (flag_instrument_functions_exclude_functions,
2121         flag_instrument_functions_exclude_files): Remove.
2122         (add_comma_separated_to_vector): Take void **.
2123         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2124         (common_handle_option): Use options structure for
2125         -finstrument-functions-exclude- options.
2126
2127 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2128
2129         * doc/options.texi (Var): Document effects of Defer.
2130         (Defer): Document.
2131         * opt-functions.awk (var_type, var_set): Handle deferred options.
2132         * opts-common.c (set_option): Handle CLVC_DEFER.
2133         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2134         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2135         fstack-limit-symbol=): Mark as deferred.
2136         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2137         plugin.h.
2138         (print_filtered_help): Don't report state of CLVC_DEFER options.
2139         (common_handle_option): Move code for OPT_fcall_used_,
2140         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2141         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2142         OPT_fstack_limit_symbol_ to opts-global.c.
2143         (option_enabled, get_option_state): Handle CLVC_DEFER.
2144         * opts.h: Include vec.h.
2145         (enum cl_var_type): Add CLVC_DEFER.
2146         (cl_deferred_option): Define type and vectors.
2147         (handle_common_deferred_options): Declare.
2148         * opts-global.c: New.
2149         * toplev.c (toplev_main): Call handle_common_deferred_options
2150         * Makefile.in (OPTS_H): Include $(VEC_H).
2151         (OBJS-common): Include opts-global.o.
2152         (opts.o): Update dependencies.
2153         (opts-global.o): Add dependencies.
2154
2155 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2156
2157         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2158         to objc_declare_protocols.
2159
2160 2010-11-19  Richard Guenther  <rguenther@suse.de>
2161
2162         PR lto/45789
2163         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2164         IDENTIFIERs do not stream TREE_TYPE.
2165         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2166
2167 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2168
2169         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2170
2171 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2172
2173         PR target/45870
2174         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2175         non-delegitimized TLS UNSPECs.
2176
2177 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2178             Ian Lance Taylor  <iant@google.com>
2179
2180         * config/darwin-c.c (darwin_additional_format_types): Export.
2181
2182 2010-11-18  Paul Koning  <ni1d@arrl.net>
2183
2184         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2185         pointer.
2186
2187 2010-11-18  Paul Koning  <ni1d@arrl.net>
2188
2189         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2190         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2191         * config/pdp11/pdp11.opt (-mabshi): Delete.
2192
2193 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2194
2195         * resource.h (struct resources): Fix typo in the comment.
2196
2197 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2198
2199         PR target/46546
2200         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2201
2202 2010-11-18  Richard Henderson  <rth@redhat.com>
2203
2204         PR middle-end/46515
2205         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2206         maybe_copy_epilogue_insn; handle prologue insns as well.
2207         * rtl.h, cfglayout.c: Update for rename.
2208         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2209         RTX_FRAME_RELATED_P insns.
2210
2211 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2212
2213         PR middle-end/46534
2214         * builtins.c (fold_builtin_printf): Don't copy and modify string
2215         before build_string_literal, instead modify what
2216         build_string_literal returned.
2217
2218 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2219
2220         PR c/33193
2221         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2222         REALPART_EXPR and IMAGPART_EXPR.
2223
2224 2010-11-18  Richard Guenther  <rguenther@suse.de>
2225
2226         PR tree-optimization/46172
2227         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2228         function.
2229         (slpeel_tree_peel_loop_to_edge): Call it.
2230
2231 2010-11-18  Jeff Law  <law@redhat.com>
2232
2233         PR middle-end-optimization/46297
2234         * postreload.c (reload_combine_note_store): Deal with embedded
2235         side effects in MEM expressions.
2236
2237 2010-11-18  Richard Guenther  <rguenther@suse.de>
2238
2239         PR lto/45089
2240         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2241         when checking is not enabled.
2242
2243 2010-11-18  Richard Guenther  <rguenther@suse.de>
2244
2245         PR lto/46525
2246         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2247         type leaders.
2248         (gimple_register_canonical_type): Also cache the canoncial type
2249         for non type leaders.
2250
2251 2010-11-18  Richard Guenther  <rguenther@suse.de>
2252
2253         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2254
2255 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2256
2257         PR middle-end/46518
2258         * sel-sched-ir.c (init_expr): Use the correct type for
2259         target_available.
2260         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2261
2262 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2263
2264         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2265         as well as -mrelocatable at the same time.
2266
2267 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2268
2269         PR target/46422
2270         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2271         Call the clz builtin.
2272
2273 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2274             Steve Ellcey  <sje@cup.hp.com>
2275
2276         PR middle-end/31490
2277         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2278         if section attribute used.
2279
2280 2010-11-17  Jan Hubicka  <jh@suse.cz>
2281
2282         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2283         expand errno setting variant when optimizing for size.
2284
2285 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2286
2287         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2288         Reverse backward loop.  Fix formatting issues.
2289
2290 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2291
2292         * c-parser.c (c_token_is_qualifier,
2293         c_parser_next_token_is_qualifier): New.
2294         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2295         Improve error message on specs->tagdef_seen_p.
2296         (c_parser_struct_or_union_specifier): Improve error recovery.
2297         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2298         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2299         using c_parser_next_token_is_qualifier; extend it to cover
2300         a ctsk_tagdef typespec and !typespec_ok in general.
2301
2302 2010-11-17  Richard Guenther  <rguenther@suse.de>
2303
2304         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2305         (gimple_mod_pow2_value_transform): Likewise.
2306         (gimple_mod_subtract_transform): Likewise.
2307
2308 2010-11-17  Richard Guenther  <rguenther@suse.de>
2309
2310         PR lto/46504
2311         * gimple.c (gimple_register_canonical_type): Make sure to only
2312         make type leaders canonical types.
2313
2314 2010-11-17  Michael Matz  <matz@suse.de>
2315
2316         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2317         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2318         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2319         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2320         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2321         (pass_build_ssa): ... but here.
2322         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2323         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2324         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2325         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2326         * predict.c (rebuild_frequencies): Ditto.
2327         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2328         * emit-rtl.c (verify_rtl_sharing): Ditto.
2329         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2330         * tree-ssa-live.c (remove_unused_locals): Ditto.
2331         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2332         * tree-ssa.c (pass_early_warn_uninitialized,
2333         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2334         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2335         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2336         * passes.c (pass_postreload, execute_todo): Ditto.
2337         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2338
2339 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2340
2341         * doc/invoke.texi (-dy): Remove.
2342         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2343         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2344         * langhooks.c (lhd_do_nothing_i): Remove.
2345         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2346         * toplev.c (set_yydebug): Remove.
2347         (compile_file): Update call to lang_hooks.parse_file.
2348         (decode_d_option): Don't handle -dy.
2349
2350 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2351
2352         PR rtl-optimization/46440
2353         * combine.c (update_cfg_for_uncondjump): When changing
2354         an indirect jump into unconditional jump, remove BARRIERs
2355         from bb's footer.
2356
2357 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2358
2359         * opts.c (target_handle_option): Do not assert that loc ==
2360         UNKNOWN_LOCATION.
2361
2362 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2363             Richard Guenther  <rguenther@suse.de>
2364
2365         PR middle-end/45838
2366         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2367         call_may_clobber_ref_p_1): Return true for __sync_* and some
2368         OpenMP builtins that act as threading barriers.
2369
2370 2010-11-17  Richard Guenther  <rguenther@suse.de>
2371
2372         PR tree-optimization/46498
2373         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2374
2375 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2376
2377         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2378         (xtensa_function_arg_boundary): ...this.
2379         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2380         thinko in declaration.
2381         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2382         number of parameters to picochip_function_arg_boundary.
2383         (picochip_arg_advance): Likewise.
2384
2385 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2386
2387         PR target/46512
2388         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2389         under check for type.
2390
2391 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2392
2393         * ifcvt.c (dead_or_predicable): Fix typo.
2394
2395 2010-11-16  Richard Henderson  <rth@redhat.com>
2396
2397         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2398         * config/s390/s390.opt (mfused-madd): Remove.
2399         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2400         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2401         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2402         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2403
2404 2010-11-16  Richard Henderson  <rth@redhat.com>
2405
2406         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2407         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2408         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2409         (*altivec_vmaddfp_1): Remove.
2410         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2411         (altivec_mulv4sf3): Expand to FMA directly.
2412         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2413         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2414         * config/rs6000/paired.md (paired_madds0): Use FMA.
2415         (paired_madds1): Likewise.
2416         (*paired_madd): Rename from paired_madd; use FMA.
2417         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2418         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2419         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2420         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2421         (rs6000_emit_madd): Use fma_optab.
2422         (rs6000_emit_msub): Use fms_optab.
2423         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2424         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2425         (*fmasf4_fpr): Rename from fmasf4_fpr.
2426         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2427         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2428         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2429         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2430         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2431         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2432         (*fmadf4_fpr): Rename from fmadf4_fpr.
2433         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2434         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2435         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2436         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2437         (fmasf4, fmadf4): Macroize into...
2438         (fma<FMA_F>4): ... here.
2439         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2440         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2441         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2442         TARGET_FUSED_MADD.
2443         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2444         (*vsx_fmadd<mode>4_1): Remove.
2445         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2446         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2447         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2448         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2449         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2450         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2451         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2452
2453 2010-11-16  Richard Henderson  <rth@redhat.com>
2454
2455         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2456         (fmasf4, fnmadf4, fnmasf4): Likewise.
2457         (unnamed plus+mult insns and splitters): Delete.
2458
2459 2010-11-16  Richard Henderson  <rth@redhat.com>
2460
2461         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2462         (fnma<VSF>4): Rename from fnms_<VSF>.
2463         (fms<VSF>4): Rename from fms_<VSF>.
2464         (fma<VDF>4): Rename from fma_<VDF>.
2465         (fms<VDF>4): Rename from fms_<VDF>.
2466         (nfma<VDF>4): Rename from fnma_<VDF>.
2467         (nfms<VDF>4): Rename from fnms_<VDF>.
2468         (fnma<VDF>4, fnms<VDF>4): New expanders.
2469         (floatunsdisf2): Update for the renames.
2470         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2471         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2472
2473 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2474
2475         PR rtl-optimization/46490
2476         * combine.c (expand_compound_operation): Fix thinko.
2477
2478 2010-11-16  Richard Henderson  <rth@redhat.com>
2479
2480         PR target/46470
2481         * recog.c (peep2_attempt): Convert frame-related info when possible.
2482         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2483         (peephole2_optimize): Allow peep2_attempt to fail.
2484
2485 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2486
2487         PR rtl-optimization/46315
2488         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2489         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2490         extracted from...
2491         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2492         (remove_reg_equal_equiv_notes_for_defs): ...this.
2493         (delete_unmarked_insns): Adjust to above renaming.
2494         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2495         referring to registers set in the insns being moved, if any.
2496
2497         * df-core.c (df_ref_dump): New function extracted from...
2498         (df_refs_chain_dump): ...here.  Call it.
2499         (df_regs_chain_dump): Likewise.
2500         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2501         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2502
2503 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2504
2505         PR rtl-optimization/46395
2506         * postreload.c (reload_combine): Invalidate register use
2507         information on all control flow insns.
2508
2509         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2510         LABEL_REF in UNSPEC operand.
2511
2512 2010-11-16  Jan Hubicka  <jh@suse.cz>
2513
2514         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2515         when !flag_toplevel_reorder do not remove unless variable is
2516         COMDAT or ARTIFICIAL.
2517         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2518         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2519         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2520         * varpool.c (decide_is_variable_needed): Do not handle visibility
2521         issues.
2522         (varpool_finalize_decl): Likewise.
2523         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2524         update outdated comment on DECL_RTL_SET_P check.
2525
2526 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2527
2528         * config/sol2.h (NM_FLAGS): Define.
2529         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2530         * doc/tm.texi: Update.
2531
2532 2010-11-16  Nick Clifton  <nickc@redhat.com>
2533
2534         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2535         (msubsf4): Rename to fmssf4, and use fma.
2536         (nmaddsf4): Rename to fnmasf4 and use fma.
2537         (nmsubsf4): Rename to fnmssf4 and use fma.
2538
2539 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2540
2541         PR target/44762
2542         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2543         (score3_in_small_data_p, score3_function_value): Likewise.
2544         (score3_trampoline_init): Use LCT_NORMAL.
2545         (score3_print_operand): Initialize code as UNKNOWN.
2546         * config/score/predicates.md (score_load_multiple_operation):
2547         Remove unused variable.
2548         (score_store_multiple_operation): Likewise.
2549         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2550         (score7_in_small_data_p, score7_function_value): Likewise.
2551         (score7_trampoline_init): Use LCT_NORMAL.
2552         (score7_print_operand): Initialize code as UNKNOWN.
2553         * config/score/score3.h (score3_return_in_memory): Update prototype.
2554         (score3_in_small_data_p, score3_function_value): Likewise.
2555         * config/score/score-protos.h (score_function_value): Likewise.
2556         * config/score/score7.h (score7_return_in_memory): Update prototype.
2557         (score7_in_small_data_p, score7_function_value): Likewise.
2558         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2559         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2560         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2561         (score_function_epilogue, score_in_small_data_p): Likewise.
2562         (score_option_override, score_asm_trampoline_template): Likewise.
2563         (score_trampoline_init, score_print_operand): Likewise.
2564         (score_print_operand_address, score_prologue): Likewise.
2565         (score_epilogue, score_call, score_call_value): Likewise.
2566         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2567         (score_function_arg_advance): Likewise. Make static.
2568         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2569         (score_function_arg, score_legitimate_address_p): Make static.
2570         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2571         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2572         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2573         Allow (W) == HOST_BITS_PER_WIDE_INT.
2574
2575         PR java/46386
2576         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2577         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2578
2579 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2580
2581         * config/arc/arc.c: Delete pasto.
2582         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2583
2584 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2585
2586         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2587         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2588         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2589         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2590         (mn10300_preferred_reload_class,
2591         mn10300_preferred_output_reload_class): New functions.
2592
2593 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2594
2595         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2596         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2597         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2598         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2599
2600 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2601
2602         * builtins.c (std_gimplify_va_arg_expr): Use
2603         targetm.calls.function_arg_boundary.
2604         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2605         * calls.c (struct arg_data): Update comment.
2606         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2607         * target.def (function_arg_boundary): Define.
2608         * targhooks.h (default_function_arg_boundary): Declare.
2609         * targhooks.c (default_function_arg_boundary): Define.
2610         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2611         TARGET_FUNCTION_ARG_BOUNDARY.
2612         (FUNCTION_ARG_BOUNDARY): Delete.
2613         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2614         * doc/tm.texi: Regenerate.
2615         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2616         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2617         * config/arc/arc.c (arc_function_arg_boundary): Define.
2618         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2619         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2620         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2621         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2622         (arm_function_arg_boundary): Define.
2623         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2624         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2625         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2626         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2627         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2628         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2629         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2630         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2631         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2632         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2633         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2634         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2635         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2636         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2637         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2638         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2639         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2640         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2641         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2642         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2643         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2644         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2645         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2646         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2647         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2648         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2649         * config/pa/pa.c (pa_function_arg_boundary): Define.
2650         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2651         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2652         * config/picochip/picochip-protos.h
2653         (picochip_get_function_arg_boundary): Delete.
2654         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2655         Rename to...
2656         (picochip_function_arg_boundary): ...this.  Make static.
2657         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2658         (picochip_arg_advance): Adjust.
2659         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2660         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2661         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2662         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2663         (rs6000_function_arg_boundary): ...this.  Make static.
2664         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2665         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2666         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2667         * config/rx/rx.c (rx_function_arg_boundary): Define.
2668         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2669         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2670         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2671         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2672         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2673         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2674         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2675         (xtensa_function_arg_boundary): ...this.  Make static.
2676         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2677
2678 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2679
2680         * expr.c (alignment_for_piecewise_move): New function.
2681         (widest_int_mode_for_size): New function.
2682         (move_by_pieces, move_by_pieces_ninsns): Call them.
2683         (can_store_by_pieces, store_by_pieces_1): Likewise.
2684
2685 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2686
2687         * gcc.c (char_p): Define.  Define a VEC of it.
2688         (n_linker_options, n_assembler_options, n_preprocessor_options):
2689         Delete.
2690         (linker_options, assembler_options, preprocessor_options): Convert
2691         to a VEC.
2692         (add_preprocessor_option): Adjust.
2693         (add_assembler_option): Adjust.
2694         (add_linker_option): Adjust.
2695         (do_specs_vec): New function.
2696         (do_spec_1): Call it.  Adjust for new types.
2697
2698 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2699
2700         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2701         (sreal.o, statistics.o, stringpool.o): Likewise.
2702
2703 2010-11-16  Richard Guenther  <rguenther@suse.de>
2704
2705         PR tree-optimization/44545
2706         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2707         statements are not reassociatable.
2708         (reassociate_bb): Likewise.
2709
2710 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2711
2712         * bitmap.c: Delete unnecessary includes.
2713         * ebitmap.c: Likewise.
2714         * et-forest.c: Likewise.
2715         * sreal.c: Likewise.
2716         * statistics.c: Likewise.
2717         * stringpool.c: Likewise.
2718         * double-int.c: Add comment for inclusion of tm.h.
2719
2720 2010-11-16  Richard Guenther  <rguenther@suse.de>
2721
2722         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2723         (visit_nary_op): ... this.
2724         (visit_binary_op): Remove.
2725         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2726
2727 2010-11-16  Richard Guenther  <rguenther@suse.de>
2728
2729         PR middle-end/45172
2730         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2731
2732 2010-11-16  Nick Clifton  <nickc@redhat.com>
2733
2734         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2735         record is packed.
2736
2737 2010-11-15  Richard Henderson  <rth@redhat.com>
2738
2739         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2740         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2741         DOT_PROD_EXPR.
2742
2743 2010-11-15  Richard Henderson  <rth@redhat.com>
2744
2745         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2746         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2747         fma rtx_code.
2748
2749 2010-11-15  Richard Henderson  <rth@redhat.com>
2750
2751         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2752         and *mulsubsf4 respectively.  Use fma rtx_code.
2753
2754 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2755
2756         * gcc.c: Include "vec.h".
2757         (argbuf): Make into a VEC.
2758         (argbuf_length, argbuf_index): Remove.
2759         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2760         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2761         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2762         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2763         (gcc.o): Depend on $(VEC_H).
2764
2765 2010-11-15  Richard Henderson  <rth@redhat.com>
2766
2767         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2768         via FMA if unsafe math.
2769         (insert_var_expansion_initialization): Handle FMA.
2770         (combine_var_copies_in_loop_exit): Likewise.
2771
2772 2010-11-15  Richard Henderson  <rth@redhat.com>
2773
2774         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2775         * config/ia64/ia64.opt: Remove mfused-madd.
2776         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2777         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2778         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2779         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2780         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2781         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2782         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2783         (fmav2sf4): Rename from fpma; use FMA code.
2784         (fmsv2sf4): Rename from fpms; use FMA code.
2785         (fnmav2sf4): Rename from *fpnma; use FMA code.
2786         * config/ia64/ia64.md (MODE_SDF): New iterator.
2787         (suffix): New mode attribute.
2788         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2789         (fmssf4): Rename from *fmssf4.
2790         (fnmasf4): Rename from *nfmasf4.
2791         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2792         (*nmadddf4, *nmadddf4_truncsf): Remove.
2793         (fmsdf4): Rename from *fmsdf4.
2794         (fnmadf4): Rename from *nfmadf4.
2795         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2796         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2797         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2798         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2799         (fmsxf4): Rename from *fmsxf4.
2800         (fnmaxf4): Rename from *nfmaxf4.
2801         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2802         (*fnmaxf_trunc_<MODE_SDF>): New.
2803
2804 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2805
2806         PR tree-optimization/46461
2807         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2808         a gimple val.
2809
2810 2010-11-15  Ian Lance Taylor  <iant@google.com>
2811
2812         * godump.c: New file.
2813         * common.opt (fdump-go-spec=): New option.
2814         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2815         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2816         (TYPE_SYMTAB_IS_DIE): Define.
2817         (struct tree_type): Change GTY for symtab field to use
2818         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2819         to pick the union field.
2820         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2821         (dump_go_spec_init): Declare.
2822         * toplev.c (process_options): Handle flag_dump_go_spec.
2823         * debug.c: Include "tree.h".
2824         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2825         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2826         * dbxout.c (dbx_debug_hooks): Likewise.
2827         (xcoff_debug_hooks): Likewise.
2828         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2829         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2830         SDB_DEBUGGING_INFO is not defined.
2831         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2832         (Overall Options): Document -fdump-go-spec.
2833         * Makefile.in (OBJS-common): Add godump.o.
2834         (debug.o): Add dependency on $(TREE_H).
2835         (godump.o): New target.
2836         (GTFILES): Add $(srcdir)/godump.c.
2837
2838 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2839
2840         PR debug/46095
2841         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2842         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2843         style < 0, add REG_FRAME_RELATED_EXPR.
2844
2845         PR debug/46387
2846         * rtl.h (vt_equate_reg_base_value): New prototype.
2847         * alias.c (vt_equate_reg_base_value): New function.
2848         * var-tracking.c (vt_init_cfa_base): Use it.
2849
2850 2010-11-15  Jan Hubicka  <jh@suse.cz>
2851             Diego Novillo  <dnovillo@google.com>
2852
2853         PR lto/41528
2854         * doc/lto.texi: Add.
2855         * doc/gccint.texi: Add reference to lto.texi.
2856         * doc/invoke.texi: Update user documentation for LTO.
2857         Move internal flags to lto.texi
2858
2859 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2860
2861         * c-typeck.c (build_unary_op): Use
2862         objc_build_incr_expr_for_property_ref to build the pre/post
2863         increment/decrement of an Objective-C property ref, and skip the
2864         lvalue_or_else check in that case.
2865
2866 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2867
2868         PR tree-optimization/46349
2869         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2870         (contains_vce_or_bfcref_p): Likewise.
2871         (sra_modify_assign): Use them.
2872
2873 2010-11-15  Richard Guenther  <rguenther@suse.de>
2874
2875         PR tree-optimization/46467
2876         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2877         variables without subvars.
2878
2879 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2880
2881         * config/picochip/picochip.c (file header): Picochip name change.
2882         * config/picochip/picochip.md (file header): Likewise.
2883         * config/picochip/predicates.md (file header): Likewise.
2884         * config/picochip/dfa_space.md (file header): Likewise.
2885         * config/picochip/dfa_speed.md (file header): Likewise.
2886         * config/picochip/picochip.h(file header): Likewise.
2887         * config/picochip/constraints.md (file header): Likewise.
2888         * config/picochip/picochip-protos.h (file header): Likewise.
2889         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2890         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2891         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2892         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2893         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2894         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2895         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2896         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2897         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2898         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2899         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2900         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2901         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2902         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2903
2904 2010-11-15  Richard Guenther  <rguenther@suse.de>
2905
2906         PR bootstrap/46474
2907         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2908
2909 2010-11-15  Nick Clifton  <nickc@redhat.com>
2910
2911         * config/stormy16/stormy16.c (direct_return): Do not generate a
2912         direct return for interrupt handlers.
2913
2914 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2915
2916         * Makefile.in (tm.texi): Replace with rule for:
2917         ($(srcdir)/doc/tm.texi).
2918         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2919         $(srcdir)/doc/tm.texi .
2920         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2921         tm.texi .
2922
2923         PR target/46427
2924         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2925
2926         PR bootstrap/45444
2927         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2928         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2929
2930         PR target/46432
2931         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2932
2933 2010-11-15  Richard Guenther  <rguenther@suse.de>
2934
2935         PR lto/44150
2936         * lto-opts.c (lto_write_options): Write -fexceptions even if
2937         not set by the user.
2938
2939 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2940
2941         PR c/46462
2942         * c-decl.c (declspecs_add_type): Make variables with error types
2943         integers.
2944         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2945         do not start a declaration before an Objective-C foreach.
2946         (c_parser_declaration_or_fndef): Improve recovery after unknown
2947         type name.
2948         (c_parser_for_statement): Hoist entrance of "foreach context"
2949         before ifs, add corresponding reset where it was missing.  Do
2950         not set objc_could_be_foreach_context for C.
2951
2952 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2953
2954         PR tree-optimization/45722
2955         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2956         this is a reference to a component.
2957         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2958         (ipa_note_param_call): Adjust comment.
2959
2960 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2961
2962         * config/mips/mips.c (machine_function): Remove
2963         initialized_mips16_gp_pseudo_p.
2964         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2965         detect whether a pseudo has already been created.  Unconditionally
2966         create a new one if not.
2967         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2968         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2969
2970 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2971
2972         PR target/43440
2973         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2974         * tm.texi: Regenerated.
2975         * output.h (decode_reg_name_and_count): Declare.
2976         * varasm.c (decode_reg_name_and_count): New function.
2977         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2978         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2979         iterate over all regs used.
2980         * stmt.c (expand_asm_operands): Likewise.
2981         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2982         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2983         multiple machine registers.
2984
2985 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2986
2987         * stor-layout.c (place_union_field): Do not put location information
2988         on offset expressions.
2989         (place_field): Likewise.
2990         (finalize_record_size): Likewise on size expressions.
2991         (finalize_type_size): Likewise.
2992         (layout_type): Likewise.
2993
2994 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2995
2996         PR debug/42889
2997         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2998         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2999         * df.h (df_set_bb_dirty_nonlr): Likewise.
3000
3001 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
3002
3003         * config/mips/mips.md (call_internal): Pass curr_insn to
3004         mips_split_call.
3005         (call_internal_direct): Ditto.
3006         (call_value_internal): Ditto.
3007         (call_value_internal_direct): Ditto.
3008         (call_value_multiple_internal): Ditto.
3009         * config/mips/mips.c (mips_split_call): Do not copy
3010         CALL_INSN_FUNCTION_USAGE here.
3011
3012 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
3013
3014         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
3015         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
3016         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
3017         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
3018         (TUNE_LOONGSON_3A): Define.
3019         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
3020         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
3021         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
3022         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
3023         (mips_rtx_cost_data): Add Loongson-3A.
3024
3025 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3026
3027         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
3028         switches.
3029
3030 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
3031
3032         * dwarf2out.c (macinfo_entry): New struct.
3033         (output_comp_unit): Emit the section start label here and flag that we
3034         will emit an info section.
3035         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
3036         emitting directly.
3037         (dwarf2out_end_source_file): Likewise.
3038         (dwarf2out_define): Likewise.
3039         (dwarf2out_undef): Likewise.
3040         (output_macinfo): New.
3041         (dwarf2out_init): Do not emit debug section switches here, allocate a
3042         vec for macinfo, when required.
3043         (dwarf2out_finish): First switch to debug_abbrev_section here.
3044         debug_line_section,  debug_macinfo_section, Likewise.
3045         Check that the pubtypes table has at least one unpruned entry before
3046         trying to emit it.
3047
3048 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3049
3050         PR c/20385
3051         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3052         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3053         token lookahead.
3054         (c_parser_compound_statement_nostart, c_parser_label,
3055         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3056         (c_parser_declaration_or_fndef): Detect the case now matched by
3057         c_parser_next_tokens_start_declaration, give error and correct it.
3058
3059 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3060
3061         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3062         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3063         with typespec_kind.
3064         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3065         (shadow_tag_warned, check_compound_literal_type): Adjust
3066         uses of tag_defined_p.
3067         (declspecs_add_type): Set typespec_kind.
3068         * c-parser.c (c_parser_declaration_or_fndef,
3069         c_parser_declspecs, c_parser_struct_declaration,
3070         c_parser_parameter_declaration, c_parser_type_name,
3071         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3072         of type_seen_p.
3073         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3074         tag_defined_p, pass ctsk_firstref through.
3075
3076 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3077
3078         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3079         (struct format_wanted_type): Replace field "name" with "kind", add
3080         "format_start" and "format_length".
3081         (check_format_info_main): Fill in new fields.  Fill in
3082         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3083         after the final NUL outside the while loop.  Do not include
3084         width and precision modifiers in the format_start/format_length
3085         of the main format.
3086         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3087         arguments.  Compute WANTED_TYPE first so that format_type_warning
3088         can be called for missing arguments.  Adjust calls to
3089         format_type_warning.
3090         (format_type_warning): Fetch as much information as possible
3091         from format_wanted_type.  Adjust printing now that every
3092         warning has a "descr", as well as for missing argument warnings
3093         and to include % sign for format specifiers.
3094
3095 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3096
3097         PR rtl-optimization/46204
3098         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3099         Update all callers.  Do not recompute topological order.  Adjust
3100         fallthrough edges following a degenerate conditional jump.
3101
3102 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3103
3104         * opts-common.c (control_warning_option): New.
3105         * opts.c (set_default_handlers): New.
3106         (decode_options): Use set_default_handlers and
3107         control_warning_option.
3108         (common_handle_option): Update call to enable_warning_as_error.
3109         (enable_warning_as_error): Take gcc_options parameters.  Use
3110         control_warning_option.
3111         * opts.h (set_default_handlers, control_warning_option): Declare.
3112
3113 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3114
3115         * Makefile.in (OPTS_H): Define.
3116         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3117         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3118         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3119         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3120         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3121         * gcc.c (driver_handle_option): Take location_t parameter.
3122         (process_command, do_self_spec): Update calls to
3123         read_cmdline_option.
3124         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3125         * langhooks.c (lhd_handle_option): Take location_t parameter.
3126         * langhooks.h (handle_option): Take location_t parameter.
3127         * lto-opts.c (lto_reissue_options): Update call to set_option.
3128         * opts-common.c (handle_option): Make static.  Take location_t
3129         parameter and pass it to other functions.
3130         (handle_generated_option): Take location_t parameter and pass it
3131         to other functions.
3132         (read_cmdline_option): Take location_t parameter and pass it to
3133         other functions.  Use warning_at and error_at.
3134         (set_option): Take location_t parameter and pass it to other
3135         functions.
3136         * opts.c (common_handle_option): Take location_t parameter and
3137         pass it to other functions.
3138         (enable_warning_as_error): Make static.  Take location_t parameter
3139         and pass it to other functions.
3140         (lang_handle_option): Take location_t parameter and pass it to
3141         other functions.
3142         (target_handle_option): Take location_t parameter.
3143         (read_cmdline_options, maybe_default_option,
3144         maybe_default_options, default_options_optimization,
3145         decode_options): Take location_t parameter and pass it to other
3146         functions.
3147         * opts.h: Include input.h.
3148         (struct cl_option_handler_func, decode_options, set_option,
3149         handle_generated_option, read_cmdline_option): Take location_t
3150         parameters.
3151         (handle_option, enable_warning_as_error): Remove.
3152         * toplev.c (toplev_main): Update call to decode_options.
3153
3154 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3155
3156         * graphite-cloog-util.c (oppose_constraint,
3157         cloog_matrix_to_ppl_constraint,
3158         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3159         CLooG isl uses unsigned integers.  This triggered a warning.
3160
3161 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3162
3163         PR target/46438
3164         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3165         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3166         (xtensa_function_arg_1): De-constify cum.
3167         (xtensa_expand_prologue): Use add_reg_note.
3168
3169         PR target/46435
3170         * config/cris/cris.c (saved_regs_mentioned): Delete.
3171         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3172         Remove unused variable op0p.
3173         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3174         (cris_emit_movem_store): Use add_reg_note.
3175
3176         PR bootstrap/46456
3177         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3178
3179 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3180
3181         * function.c (expand_function_end): Set the locator of the prologue on
3182         the stack checking insns.
3183
3184 2010-11-12  Richard Henderson  <rth@redhat.com>
3185
3186         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3187         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3188         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3189         MASK_FUSED_MADD.
3190         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3191         (fnmasf4): Rename from mulsubsf3; use fma.
3192
3193 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3194             Richard Henderson  <rth@redhat.com>
3195
3196         PR target/46428
3197         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3198         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3199         comparison.
3200
3201 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3202
3203         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3204
3205 2010-11-12  Jan Hubicka  <jh@suse.cz>
3206
3207         * doc/invoke.texi (early-inlining-insns): Update default.
3208         * params.def (early-inlining-insns): Default to 10.
3209
3210 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3211
3212         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3213
3214 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3215
3216         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3217         (SUPPORTS_INIT_PRIORITY): Define.
3218
3219 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3220
3221         PR target/46430
3222         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3223         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3224         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3225         (avr_device_to_devicelib): Likewise.
3226         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3227         into block.
3228         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3229         (zero_extendhidi2, zero_extendsidi2): Likewise.
3230         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3231         (avr_return_addr_rtx): De-constify tem.
3232         (avr_rotate_bytes): Move declarations to start of block.
3233         Don't use variable length array.  Put nested if/else into block.
3234
3235         PR rtl-optimization/46433
3236         * var-tracking.c: Include tm_p.h .
3237
3238         PR bootstrap/44756
3239         PR build/44767
3240         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3241         should be unsigned.
3242         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3243         * doc/tm.texi: Regenerate.
3244
3245         PR target/46412
3246         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3247         * config/bfin/bfin.c: Include sel-sched.h .
3248         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3249         (expand_interrupt_handler_prologue): Remove unused variable insn.
3250         (bfin_load_pic_reg): Likewise.
3251         (bfin_rtx_costs): Make code / outer_code variables of type
3252         enum rtx_code, copied from re-named parameters.
3253         (bfin_local_alignment): Change align argument and return type
3254         to unsigned.
3255         (bfin_adjust_cost): Remove unused variable insn_type.
3256         Declare variables at start of block.
3257         (struct loop_info): Rename to...
3258         (struct loop_info_d).
3259         (workaround_rts_anomaly): Change type of icode to int.
3260         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3261         with int-typed variable.
3262         (note_np_check_stores): Likewise.
3263         (trapping_loads_p): Remove unused variable pat.
3264         (bfin_expand_binop_builtin): Use expand_normal.
3265         (bfin_expand_unop_builtin): Likewise.
3266         (bfin_expand_builtin): Likewise.  Set tmode before use.
3267
3268         PR middle-end/44769
3269         * final.c (split_double): Don't use BITS_PER_WORD directly in
3270         shift count.
3271
3272         PR target/46431
3273         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3274         assignment.
3275
3276         PR target/46450
3277         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3278         Use add_reg_note.
3279         (xstormy16_function_arg): Dereference cum.
3280         (xstormy16_expand_builtin): Use expand_normal.
3281         Change type of omode to enum machine_mode.
3282         (combine_bnp): Rename and to and_insn.
3283
3284         PR target/46437
3285         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3286         localreg.
3287
3288 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3289
3290         PR debug/46375
3291         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3292
3293 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3294
3295         PR lto/46376
3296         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3297
3298 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3299
3300         PR c/44782
3301         * common.opt (fmax-errors=): New option.
3302         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3303         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3304         * diagnostic.c (diagnostic_initialize): Initialize it.
3305         (diagnostic_action_after_output): Exit if more than max_errors
3306         have been output.
3307         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3308         (-fmax-errors): Document.
3309
3310 2010-11-11  Richard Henderson  <rth@redhat.com>
3311
3312         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3313
3314 2010-11-11  Richard Henderson  <rth@redhat.com>
3315
3316         * config/fused-madd.opt: New file.
3317         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3318         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3319         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3320         * config/i386/i386.opt (mfused-madd): Remove.
3321         * config/i386/sse.md (split_fma): Remove.
3322         (split_fms, split_fnma, split_fnms): Remove.
3323
3324 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3325
3326         PR target/46088
3327         * config/i386/i386.md (*ashl<mode>3_cconly,
3328         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3329         change nonimmediate_operand predicate to register_operand.
3330
3331 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3332
3333         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3334
3335 2010-11-11  Jan Hubicka  <jh@suse.cz>
3336
3337         * opts.c (finish_options): Do not error on -flto-partition alone.
3338
3339         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3340         (-flto-partition): Document none.
3341         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3342         * lto-wrapper.c: Update comment.
3343         (run_gcc): Update LTO option parsing.
3344         * opts.c (finish_options): add support -flto-partition=none
3345         (common_handle_option): Remove fwhopr.
3346         * common.opt: Turn fwhopr into flto.
3347         * collect2.c (main): Update option handling.
3348         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3349         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3350         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3351         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3352         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3353
3354 2010-11-11  Jan Hubicka  <jh@suse.cz>
3355
3356         PR tree-optimize/40436
3357         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3358         (eliminated_by_inlining_prob): ... this one; return 50% probability
3359         for SRA.
3360         (estimate_function_body_sizes): Update use of
3361         eliminated_by_inlining_prob; estimate static function size
3362         for 2 instructions.
3363
3364 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3365
3366         PR target/44749
3367         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3368         declare.  Change type of argument four to type int.
3369         (mep_secondary_input_reload_class): Returns enum reg_class.
3370         (mep_secondary_output_reload_class): Likewise.
3371         (mep_function_value): Change types of arguments to cont_tree.
3372         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3373         argument four to type int.
3374         (mep_secondary_input_reload_class): Returns enum reg_class.
3375         (mep_secondary_output_reload_class): Likewise.
3376         (mep_function_value): Change types of arguments to cont_tree.
3377         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3378         mep_regno_reg_class to enum reg_class.
3379
3380 2010-11-11  Richard Henderson  <rth@redhat.com>
3381
3382         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3383         that the target has the exact fma operation that we matched.
3384
3385 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3386
3387         * reginfo.c (fix_register): Avoid inserting English word in
3388         diagnostic sentence.  Use %qs for quoting and %'.
3389