OSDN Git Service

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