OSDN Git Service

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