tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard sign-changing conversions...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-12-02  Richard Guenther  <rguenther@suse.de>
2
3         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
4         sign-changing conversions for induction detection.
5
6 2010-12-02  Richard Guenther  <rguenther@suse.de>
7
8         PR tree-optimization/46723
9         * tree-vect-loop.c (get_initial_def_for_induction): Strip
10         conversions from the induction evolution and apply it to
11         the result instead.
12         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
13         assigns for induction defs.
14
15 2010-12-02  Richard Guenther  <rguenther@suse.de>
16
17         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
18         the case we need to split the edge and not the block.
19
20 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
21
22         DFA model for Core 2 and Core i7 scheduling.
23
24         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
25         * config/i386/i386.c (ix86_option_override_internal): Update entries
26         for Core 2 and Core i7.
27         (ix86_issue_rate): Set issue rate to 3 [be realistic].
28         * config/i386/i386.md: Include "core2.md".
29         (define_attr cpu): Add "corei7".
30
31 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
32
33         Define tuning for Core 2 and Core i7.
34
35         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
36         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
37         (m_CORE2): Replace with m_CORE2_{32,64}.
38         (m_CORE2I7{,_32,_64}): New macros.
39         (m_GENERIC32, m_GENERIC64): Update.
40         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
41         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
42         set m_CORE2I7_64 iff m_GENERIC64.
43         (processor_target_table): Use generic costs for Core 2 and Core i7.
44         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
45         (ix86_issue_rate): Remove entry for Core 2.
46         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
47         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
48         (TARGET_CORE2): Update.
49         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
50         (PROCESSOR_CORE2): Remove.
51
52 2010-12-02  Richard Guenther  <rguenther@suse.de>
53
54         * lto-streamer.h (LTO_major_version): Bump to 2.
55
56 2010-12-02  Richard Guenther  <rguenther@suse.de>
57
58         PR lto/44871
59         * gimple.c (canonical_type_hash_cache): New hashtable.
60         (gimple_type_hash): Make a wrapper around ...
61         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
62         (gimple_canonical_type_hash): Likewise.
63         (gtc_visit): Take a gtc_mode argument.
64         (gimple_types_compatible_p_1): Likewise. Do not compare struct
65         tag names or field names when computing canonical types.
66         (gimple_types_compatible_p): Adjust.
67         (visit): Take a gtc_mode argument.
68         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
69         names or field names when computing hashes of canonical types.
70         (gimple_register_canonical_type): Use gimple_canonical_type_hash
71         for the hash.
72         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
73         (free_gimple_type_tables): Free canonical_type_hash_cache.
74
75 2010-12-02  Richard Guenther  <rguenther@suse.de>
76             Ira Rosen  <irar@il.ibm.com>
77
78         PR tree-optimization/46663
79         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
80         FUNCTION_DECL exists and that it's a builtin.
81
82 2010-12-02  Jie Zhang  <jie@codesourcery.com>
83
84         PR middle-end/46674
85         * varasm.c (compute_visible_aliases): Handle user set
86         assembler name.
87
88 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
89
90         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
91         thinko regarding setting -mno-<xxx> debug switches.
92         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
93
94 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
95
96         * intl.c: Don't include tm.h.
97         * Makefile.in (intl.o): Don't depend on $(TM_H).
98
99 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
100
101         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
102         unused warning.
103         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
104
105 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
106
107         * graphite-sese-to-poly.c (analyze_drs): Removed.
108         (build_scop_drs): Do not call analyze_drs.
109         (analyze_drs_in_stmts): New.
110         (insert_stmts): New.
111         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
112         (insert_out_of_ssa_copy_on_edge): Same.
113         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
114         (rewrite_phi_out_of_ssa): Same.
115         (rewrite_cross_bb_scalar_dependence): Same.
116         (split_reduction_stmt): Move data references in the new basic blocks.
117         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
118
119 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
120
121         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
122
123 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
124
125         PR middle-end/45297
126         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
127         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
128         * graphite-poly.h (new_poly_bb): Update declaration.
129         (gbb_from_bb): Moved here...
130         (pbb_from_bb): New.
131         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
132         Removed.
133         (graphite_stmt_p): Removed.
134         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
135         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
136         new_poly_bb.
137         (build_scop_bbs_1): Do not pass in sbitmap reductions.
138         (build_scop_bbs): Same.
139         (gbb_from_bb): ... from here.
140         (add_conditions_to_constraints): Moved up.
141         (analyze_drs): New.
142         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
143         not contain data references.
144         (new_pbb_from_pbb): New.
145         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
146         block is split.
147         (rewrite_close_phi_out_of_ssa): Update call to
148         insert_out_of_ssa_copy_on_edge.
149         (rewrite_reductions_out_of_ssa): Now static.
150         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
151         (split_pbb): New.
152         (split_reduction_stmt): Call split_pbb.
153         (translate_scalar_reduction_to_array): Pass in the scop, do not
154         pass in the sbitmap reductions.
155         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
156         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
157         (rewrite_commutative_reductions_out_of_ssa): Same.
158         (build_poly_scop): Call build_scop_bbs,
159         rewrite_commutative_reductions_out_of_ssa,
160         rewrite_reductions_out_of_ssa, and
161         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
162         before scop_to_lst.
163         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
164         Removed declaration.
165         (rewrite_reductions_out_of_ssa): Same.
166         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
167         (build_scop_bbs): Same.
168         * graphite.c (graphite_transform_loops): Do not initialize reductions.
169         Do not call build_scop_bbs,
170         rewrite_commutative_reductions_out_of_ssa,
171         rewrite_reductions_out_of_ssa, and
172         rewrite_cross_bb_scalar_deps_out_of_ssa.
173         * sese.h (struct gimple_bb): Add field pbb.
174         (GBB_PBB): New.
175
176 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
177
178         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
179         New.
180         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
181         handle_scalar_deps_crossing_scop_limits.
182         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
183         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
184
185 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
186
187         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
188         when replacing a constant in an ADDR_EXPR.
189
190 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
191
192         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
193         for the stride.
194         (lst_do_strip_mine): Same.
195         (scop_do_strip_mine): Same.
196         * graphite-poly.c (apply_poly_transforms): Update call to
197         scop_do_strip_mine.
198         * graphite-poly.h (scop_do_strip_mine): Update declaration.
199
200 2010-12-01  Jan Hubicka  <jh@suse.cz>
201
202         * tree.c (build_common_builtin_nodes): Do not initialize
203         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
204         * builtins.c (expand_builtin_profile_func): Remove.
205         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
206         BUILT_IN_PROFILE_FUNC_EXIT.
207         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
208         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
209         * gimplify.c (gimplify_function_tree): Reorganize code calling
210         profiling functions.
211
212 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
213
214         * opts.c: Expand comment on tm.h include.
215
216 2010-12-01  Yao Qi  <yao@codesourcery.com>
217
218         * config/arm/predicates.md ("vfp_register_operand"): Return true for
219         VFP_D0_D7_REGS classes.
220
221 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
222
223         * common.opt (flag_stack_check): New Variable entry.
224         (fcompare-debug-second): Use Var.
225         * flags.h (flag_compare_debug, flag_stack_check): Remove.
226         * opts.c (flag_compare_debug): Remove.
227         (common_handle_option): Don't handle OPT_fcompare_debug_second.
228         Set opts->x_flag_stack_check for OPT_fstack_check_.
229         * toplev.c (flag_stack_check): Remove.
230
231 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
232
233         * common.opt (main_input_filename, main_input_basename,
234         main_input_baselength): New Variable entries.  From toplev.c.
235         * final.c (output_quoted_string): Move from toplev.c.
236         * output.h (output_quoted_string): Move from toplev.h.
237         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
238         access main_input_filename, main_input_baselength and
239         main_input_basename.
240         * targhooks.c: Include intl.h and opts.h.
241         (option_affects_pch_p, default_get_pch_validity): Move from
242         toplev.c.
243         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
244         Move from toplev.h.
245         * toplev.c (main_input_filename, main_input_basename,
246         main_input_baselength): Move to common.opt.
247         (output_quoted_string): Move to final.c.
248         (warn_deprecated_use): Move to tree.c.
249         (option_affects_pch_p, default_get_pch_validity,
250         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
251         * toplev.h (skip_leading_substring): Move to tree-dump.c.
252         (warn_deprecated_use): Move to tree.h.
253         (output_quoted_string): Move to output.h.
254         (main_input_filename, main_input_basename, main_input_baselength):
255         Move to common.opt.
256         (default_get_pch_validity, default_pch_valid_p): Move to
257         targhooks.c.
258         * tree-dump.c (skip_leading_substring): Move from toplev.h.
259         * tree.c (warn_deprecated_use): Move from toplev.c.
260         * tree.h (warn_deprecated_use): Move from toplev.h.
261         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
262         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
263         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
264         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
265         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
266         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
267         config/mcore/mcore.c, config/mep/mep.c,
268         config/microblaze/microblaze.c, config/mips/mips.c,
269         config/mmix/mmix.c, config/mn10300/mn10300.c,
270         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
271         config/picochip/picochip.c, config/s390/s390.c,
272         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
273         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
274         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
275         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
276         varasm.c, xcoffout.c: Don't include toplev.h.
277         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
278         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
279         varasm.o, xcoffout.o): Update dependencies.
280         * config/arm/t-arm (arm.o): Update dependencies.
281         * config/spu/t-spu-elf (spu.o): Update dependencies.
282
283 2010-12-01  Richard Guenther  <rguenther@suse.de>
284
285         PR tree-optimization/46730
286         * value-prof.c (gimple_ic): Always generate a separate merge BB.
287
288 2010-11-30  Ian Lance Taylor  <iant@google.com>
289
290         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
291         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
292         * config/i386/linux64.h (ASM_SPEC): Likewise.
293         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
294         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
295         * config/i386/vxworks.h (ASM_SPEC): Likewise.
296         * config/i386/x86-64.h (ASM_SPEC): Likewise.
297         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
298         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
299
300 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
301
302         * c-decl.c (finish_function): Call objc_finish_function in
303         Objective-C.
304         * c-typeck.c (convert_for_assignment): Do not call
305         objc_type_quals_match().
306
307 2010-11-30  Richard Guenther  <rguenther@suse.de>
308
309         PR tree-optimization/46722
310         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
311         operands as arguments.
312         (execute_optimize_widening_mul): Also handle power of two as
313         multiplication.
314
315 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
316
317         PR middle-end/46709
318         * cgraphunit.c (process_function_and_variable_attributes): Fix
319         cut'n'pasteo.
320
321 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
322
323         * hwint.c:  New.  Extracted from toplev.c.
324         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
325         Move from toplev.h.
326         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
327         Move to hwint.c.
328         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
329         Move to hwint.h.
330         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
331         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
332         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
333         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
334         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
335         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
336         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
337         tree-vrp.c: Don't include toplev.h.
338         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
339         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
340         toplev.h in generated output.
341         * Makefile.in (OBJS-common): Add hwint.o.
342         Dependencies for above files changed to remove toplev.h.
343         (hwint.o): New.
344         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
345         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
346         toplev.h.
347         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
348         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
349
350 2010-11-30  Richard Guenther  <rguenther@suse.de>
351
352         PR tree-optimization/46717
353         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
354         call.  Manually create EH edges for the direct call and update
355         target PHI nodes.
356
357 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
358
359         * diagnostic-core.h: Include bversion.h.
360         * toplev.h: Don't include input.h or bversion.h.
361         (parse_optimize_options): Don't declare here.
362         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
363         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
364         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
365         config/host-darwin.c, config/i386/host-cygwin.c,
366         config/i386/host-mingw32.c, config/i386/msformat-c.c,
367         config/i386/netware.c, config/i386/nwld.c,
368         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
369         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
370         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
371         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
372         config/score/score3.c, config/score/score7.c,
373         config/sh/symbian-base.c, config/sh/symbian-c.c,
374         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
375         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
376         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
377         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
378         graphite-blocking.c, graphite-clast-to-gimple.c,
379         graphite-dependences.c, graphite-flattening.c,
380         graphite-interchange.c, graphite-poly.c,
381         graphite-scop-detection.c, graphite.c, haifa-sched.c,
382         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
383         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
384         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
385         lto-opts.c, lto-section-in.c, lto-section-out.c,
386         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
387         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
388         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
389         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
390         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
391         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
392         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
393         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
394         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
395         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
396         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
397         include toplev.h.
398         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
399         toplev.h.  Dependencies for above files and c-family files changed
400         to remove $(TOPLEV_H) or toplev.h.
401         (C_TREE_H): Don't include $(TOPLEV_H).
402         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
403         bversion.h.
404         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
405         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
406         config/t-darwin, config/t-sol2,
407         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
408         Dependencies for above files changed to remove $(TOPLEV_H) or
409         toplev.h.
410
411 2010-11-30  Richard Guenther  <rguenther@suse.de>
412
413         PR lto/44986
414         * gcc.c (main): Use the first input with a compiler as infile
415         for link spec processing.
416
417 2010-11-30  Richard Guenther  <rguenther@suse.de>
418
419         PR lto/45949
420         * cgraphunit.c (ipa_passes): Stop after errors from
421         small IPA passes.
422
423 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
424
425         * gcc-plugin.h: Include coretypes.h.
426         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
427
428 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
429
430         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
431         * ggc-none.c (ggc_internal_alloc_zone_stat)
432         (ggc_internal_cleared_alloc_zone_stat): New.
433
434 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
435
436         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
437         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
438         (rs6000_emit_prologue): Don't set PIC register if
439         TARGET_SINGLE_PIC_BASE.
440         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
441         * doc/invoke.texi (msingle-pic-base): Document.
442
443 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
444
445         PR driver/46712
446         * exec-tool.in (id): New.
447         Check and export LT_RCU_$id instead of LT_RCU.
448
449 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
450
451         PR tree-optimization/46675
452         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
453         in offset calculation.
454
455 2010-11-29  Jan Hubicka  <jh@suse.cz>
456
457         * collect2.c (main): Do not imply verbose output with
458         LTO and linker plugin.
459
460 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
461
462         * dwarf2out.c (print_die): Print the address of the current DIE or
463         of any DIE referenced by the current one.
464
465 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
466
467         PR debug/46101
468         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
469         function.
470         (scope_die_for, gen_type_die_for_member): Replace uses of
471         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
472
473 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
474
475         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
476         (darwin_asm_declare_object_name): Correct spelling.
477         (darwin_output_aligned_bss): Likewise.
478
479 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
480             Mike Stump  <mrs@gcc.gnu.org>
481
482         PR target/26427
483         PR target/33120
484         PR testsuite/35710
485         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
486         (ASM_OUTPUT_LOCAL): Likewise.
487         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
488         (darwin_output_aligned_bss): Likewise.
489         (darwin_asm_output_aligned_decl_local): Likewise.
490         (darwin_asm_output_aligned_decl_common): Likewise.
491         (darwin_use_anchors_for_symbol_p): Likewise.
492         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
493         (TARGET_ASM_OUTPUT_ANCHOR): Define.
494         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
495         (DARWIN_SECTION_ANCHORS): Set to 1.
496         * config/darwin.c (emit_aligned_common): New var.
497         (darwin_init_sections): Check that the Darwin private zero-size section
498         marker is in range.
499         (darwin_text_section): Check for zero-sized objects.
500         (darwin_mergeable_string_section): Likewise.
501         (darwin_mergeable_constant_section): Likewise.
502         (machopic_select_section): Adjust to check for zero-sized objects.
503         Assert that OBJC meta data are non-zero sized.
504         (darwin_asm_declare_object_name): New.
505         (darwin_asm_declare_constant_name): Adjust for zero-sized
506         object sections.
507         (BYTES_ZFILL): Define.
508         (darwin_emit_weak_or_comdat): New.
509         (darwin_emit_local_bss): New.
510         (darwin_emit_common): New.
511         (darwin_output_aligned_bss): New.
512         (darwin_asm_output_aligned_decl_common): New.
513         (darwin_asm_output_aligned_decl_local): New.
514         (darwin_file_end): Disable subsections_via_symbols when section
515         anchoring is active.
516         (darwin_asm_output_anchor): Re-enable.
517         (darwin_use_anchors_for_symbol_p): New.
518         (darwin_override_options): Check for versions that can emit
519         aligned common.  Update usage of flags to current.
520         * config/darwin-sections.def: Update comments and flags for
521         non-anchor sections.  zobj_const_section, zobj_data_section,
522         zobj_bss_section, zobj_const_data_section: New.
523         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
524         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
525         (L2_MAX_OFILE_ALIGNMENT): Define.
526         (ASM_OUTPUT_ALIGNED_BSS): Define.
527         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
528         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
529         (SECTION_NO_ANCHOR): Define.
530         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
531         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
532
533 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
534
535         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
536         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
537         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
538         Conditionally define.
539         (GET_ENVIRONMENT): Poison.
540         * configure.ac: Don't test for mincore.
541         * configure: Regenerate.
542         * config.in: Regenerate.
543         * collect2-aix.c: Don't include <sys/mman.h>.
544         * collect2.c: Don't include <signal.h>.
545         (SIGCHLD): Don't define.
546         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
547         * config/alpha/alpha.c: Include "splay-tree.h" instead of
548         <splay-tree.h>.
549         * config/arm/arm.c (arm_target_help): Use getenv instead of
550         GET_ENVIRONMENT.
551         * config/avr/driver-avr.c: Don't include <stdlib.h>.
552         * config/frv/frv.c: Don't include <ctype.h>.
553         * config/host-darwin.c: Don't include <sys/mman.h>.
554         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
555         (MAP_FAILED): Don't define.
556         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
557         * config/host-solaris.c: Don't include <sys/mman.h>.
558         * config/i386/cygming.h: Don't include <stdio.h>.
559         * config/i386/driver-i386.c: Don't include <stdlib.h>.
560         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
561         * config/iq2000/iq2000.c: Don't include <signal.h>.
562         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
563         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
564         * config/mep/mep-pragma.c: Don't include <stdio.h>.
565         * config/microblaze/microblaze.c: Don't include <signal.h>.
566         * config/mips/mips.c: Don't include <signal.h>.
567         * config/rs6000/host-darwin.c: Don't include <signal.h>.
568         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
569         * defaults.h (GET_ENVIRONMENT): Don't define.
570         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
571         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
572         (SIGCHLD, MAP_FAILED, kill): Don't define.
573         (process_command): Use getenv instead of GET_ENVIRONMENT.
574         * genhooks.c: Don't include <string.h>.
575         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
576         <sys/types.h>.
577         (MAP_FAILED): Don't define.
578         * ggc-page.c Don't include <sys/mman.h>.
579         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
580         * ggc-zone.c: Don't include <sys/mman.h>.
581         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
582         * graph.c: Include "config.h" instead of <config.h>.
583         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
584         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
585         (SIGCHLD, kill): Don't define.
586         * mips-tfile.c: Don't include <signal.h>.
587         * opts.c: Don't include <signal.h> or <sys/resource.h>.
588         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
589         * passes.c: Don't include <signal.h>, <sys/resource.h> or
590         <sys/times.h>.
591         * sparseset.h: Don't include <assert.h>.
592         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
593         * tlink.c: Don't include "libiberty.h".
594         * toplev.c: Don't include <signal.h> or <sys/times.h>.
595         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
596         * tree-switch-conversion.c: Don't include <signal.h>.
597         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
598
599 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
600
601         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
602         c_parser_objc_try_catch_finally_statement for consistency with the
603         C++ parser.  Parse @catch(...) and pass NULL_TREE to
604         objc_begin_catch_clause() in that case.  Improved error recovery.
605         Reorganized code to be almost identical to
606         cp_parser_objc_try_catch_finally_statement.
607
608 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
609
610         PR tree-optimization/46621
611         * gimple.h: Don't include tm.h or hard-reg-set.h .
612         * Makefile.in (GIMPLE_H): Remove $(TM_H).
613
614         PR bootstrap/44756
615         * cppbuiltin.c: Include target.h .
616         (define_builtin_macros_for_type_sizes):
617         Use targetm.float_words_big_endian.
618
619 2010-11-27  Jan Hubicka  <jh@suse.cz>
620
621         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
622         and output cold_text_section_label.
623         (dwarf2out_init): Don't do that there.
624         (dwarf2out_finish): Handle cold section end label only if cold
625         section was used.
626
627 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
628
629         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
630         VLA variables.
631
632 2010-11-27  Richard Guenther  <rguenther@suse.de>
633
634         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
635         (gimple_assign_ssa_name_copy_p): Likewise.
636         (gimple_assign_unary_nop_p): Use is_gimple_assign.
637         (is_gimple_cast): Remove.
638         (gimple_assign_single_p): Move ...
639         * gimple.h (gimple_assign_single_p): ... here.
640         (is_gimple_cast): Remove.
641         (gimple_assign_rhs_code): Simplify.
642         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
643         instead of is_gimple_cast.
644         * ipa-type-escape.c (look_for_casts): Likewise.
645
646 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
647
648         * doc/options.texi (Enum, EnumValue): Document new record types.
649         (Enum): Document new option flag.
650         * opt-functions.awk
651         * optc-gen.awk: Handle enumerated option arguments.
652         * opth-gen.awk: Handle enumerated option arguments.
653         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
654         enum_value_to_arg): New.
655         (decode_cmdline_option): Handle enumerated arguments.
656         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
657         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
658         * opts.c (print_filtered_help, print_specific_help): Take
659         lang_mask arguments.
660         (print_filtered_help): Handle printing values of enumerated
661         options.  Print possible arguments for enumerated options.
662         (print_specific_help): Update call to print_filtered_help.
663         (common_handle_option): Update calls to print_specific_help.  Use
664         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
665         handle OPT_ffp_contract_, OPT_fexcess_precision_,
666         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
667         OPT_fira_region_ here.
668         * opts.h (enum cl_var_type): Add CLVC_ENUM.
669         (struct cl_option): Add var_enum.
670         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
671         struct cl_enum, cl_enums, cl_enums_count): New.
672         (CL_ERR_ENUM_ARG): Define.
673         (CL_ERR_NEGATIVE): Update value.
674         (enum_value_to_arg): Declare.
675         * common.opt (flag_ira_algorithm, flag_ira_region,
676         flag_fp_contract_mode, flag_excess_precision_cmdline,
677         default_visibility, flag_tls_default): Remove Variable entries.
678         (help_enum_printed): New Variable.
679         (fdiagnostics-show-location=): Use Enum.  Add associated
680         SourceInclude, Enum and EnumValue entries.
681         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
682         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
683         associated Enum and EnumValue entries.
684
685 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
686
687         PR target/46623
688         * config/microblaze/microblaze.c (microblaze_block_move_straight):
689         Use XALLOCAVEC.
690         (microblaze_option_override): Don't use C++ style comments.
691         (save_restore_insns): Remove unused variable base_offset.
692         (microblaze_expand_prologue): Remove unused variable insn.
693         (microblaze_secondary_reload): Adjust type to match target.h .
694         (microblaze_elf_in_small_data_p): Move declarations to start of block.
695         (microblaze_expand_move): Likewise.
696         * config/microblaze/microblaze.h (LARGE_INT):
697         Avoid signed / unsigned comparisons.
698         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
699         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
700         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
701
702 2010-11-26  Michael Matz  <matz@suse.de>
703
704         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
705
706         * passes.c (init_optimization_passes): Remove superfluous
707         copy-prop pass.
708
709 2010-11-26  Richard Guenther  <rguenther@suse.de>
710
711         PR lto/46648
712         * gimple.c (gtc_visit): Do not return true for members of an
713         SCC still being processed but the current lattice value of
714         the member.  Treat SCC members comparison state as lattice,
715         starting at equal, eventually dropping to unequal.
716         (gimple_types_compatible_p_1): Likewise.
717
718 2010-11-26  Richard Guenther  <rguenther@suse.de>
719
720         PR middle-end/46559
721         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
722         for location list processing.
723
724 2010-11-26  Richard Guenther  <rguenther@suse.de>
725
726         PR lto/46560
727         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
728         flags manually.
729
730 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
731
732         * config/s390/s390.c (print_operand_address): Replace assert with
733         error message.
734         (print_operand): Replace assertions, gcc_unreachable and
735         fatal_insn with error messages.
736
737 2010-11-26  Richard Guenther  <rguenther@suse.de>
738
739         PR tree-optimization/46665
740         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
741
742 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
743
744         * config/arm/arm.c (arm_option_override): enable loop array
745         prefetching at -O3 for suitable targets, and configure params.
746         * config/arm/arm-protos.h (struct tune_params): Add fields for
747         configuring loop array prefetching.
748
749 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
750
751         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
752
753 2010-11-26  Richard Guenther  <rguenther@suse.de>
754
755         PR tree-optimization/46664
756         * tree-affine.c (aff_combination_to_tree): Add rest last.
757
758 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
759
760         PR target/33637
761         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
762         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
763         * configure: Regenerated.
764         * exec-tool.in: Not quoting command, may have extra arguments.
765
766 2010-11-26  Richard Guenther  <rguenther@suse.de>
767
768         PR tree-optimization/46528
769         PR debug/46338
770         * profile.c (branch_prob): Do not split blocks based on locations
771         from debug statements.
772
773 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
774
775         PR middle-end/46647
776         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
777         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
778
779         PR bootstrap/45700
780         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
781         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
782         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
783         build6_loc): Define.
784         * fold-const.c (protected_set_expr_location_unshare): New inline.
785         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
786         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
787         pedantic_omit_one_operand_loc, omit_two_operands_loc,
788         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
789         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
790         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
791         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
792         instead of buildN followed by SET_EXPR_LOCATION or
793         protected_set_expr_location.
794         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
795         Use buildN_stat_loc instead of buildN_stat followed by
796         SET_EXPR_LOCATION.
797
798 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
799
800         * Makefile.in (s-tm-texi): Remove spurous tab.
801
802 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
803
804         PR debug/46258
805         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
806         debug stmts.
807
808 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
809
810         * toplev.c (finalize): Add no_backend parameter.  Don't finish
811         passes when preprocessing only.  Adjust...
812         (do_compile): ... caller.
813
814 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
815
816         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
817         flag_unsafe_math_optimizations.
818         (negsf2): Likewise.
819         Move fnegabs related patterns together.  Only use fmpynfadd instruction
820         to negate a multiply if !flag_signed_zeros is true.
821
822 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
823
824         * gengtype-state.c (read_state_structures): Initialize "previous".
825
826 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
827             Jeremie Salvucci  <jeremie.salvucci@free.fr>
828
829         * gengtype-state.c: Add new file.
830
831         * gengtype.c (type count): New variable.
832         (new_structure, find_param_structure, create_pointer)
833         (create_array): Use it to set state_number in types.
834         (dump_everything): Improve comment.
835         (main): Call read_state and write_state. Print type_count.
836
837         * gengtype.h (type_lineloc): New function.
838         (read_state, write_state): New declarations.
839
840         * Makefile.in (GENGTYPE_FLAGS): New variable.
841         (s-gtype): Run gengtype twice and generate gtype.state.
842         (build/gengtype-state.o): New rule.
843         (build/gengtype$(build_exeext)): Link gengtype-state.o.
844         (mostlyclean): Update comment.  Remove gtype.state.
845
846 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
847
848         PR middle-end/46637
849         * combine.c (try_combine): When substing i2dest for i2src, pass
850         1 as last argument even if
851         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
852
853 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
854
855         PR middle-end/46647
856         * builtins.c (target_char_cast): Check INTEGER_CST instead of
857         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
858
859 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
860
861         * target.def (supports_split_stack, except_unwind_info): Take
862         gcc_options parameters.
863         * targhooks.c (default_except_unwind_info,
864         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
865         gcc_options parameters.
866         * targhooks.h (default_except_unwind_info,
867         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
868         prototypes.
869         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
870         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
871         Document that hooks must not be modified.
872         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
873         * doc/tm.texi: Regenerate.
874         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
875         &global_options to targetm.except_unwind_info.
876         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
877         dwarf2out_begin_prologue, dwarf2out_frame_init,
878         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
879         &global_options to targetm.except_unwind_info.
880         * except.c (init_eh, finish_eh_generation,
881         gate_convert_to_eh_region_ranges,
882         output_one_function_exception_table): Pass &global_options to
883         targetm.except_unwind_info.
884         * expr.c (build_personality_function): Pass &global_options to
885         targetm.except_unwind_info.
886         * function.c (expand_function_end): Pass &global_options to
887         targetm.except_unwind_info.
888         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
889         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
890         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
891         and targetm.supports_split_stack.  Remove assertions about opts
892         and opts_set.
893         (common_handle_option): Remove assertions about opts, opts_set and dc.
894         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
895         &global_options to targetm.except_unwind_info.
896         * tree.c (build_common_builtin_nodes: Pass &global_options to
897         targetm.except_unwind_info.
898         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
899         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
900         thumb1_expand_prologue, thumb1_output_function_prologue,
901         arm_unwind_emit, arm_output_fn_unwind): Update calls to
902         arm_except_unwind_info.
903         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
904         parameter.
905         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
906         parameter.
907         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
908         ia64_reorg, ia64_asm_unwind_emit): Update calls to
909         ia64_except_unwind_info.
910         * config/pa/pa.c (pa_option_override): Pass &global_options to
911         targetm.except_unwind_info.
912         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
913         Remove prototype.
914
915 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
916
917         * cgraphunit.c (process_function_and_variable_attributes):
918         Mark dllexport-ed function/variables as needed.
919         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
920         as externally visible.
921
922 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
923
924         PR rtl-optimization/46585
925         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
926         (vinsn_init): Skip computation of dependencies for local NOPs.
927         (vinsn_delete): Don't try to free regsets for local NOPs.
928         (setup_nop_and_exit_insns): Change definition of nop_pattern.
929
930 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
931
932         PR rtl-optimization/46602
933         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
934         (tidy_control_flow): Here.
935
936 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
937             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
938
939         PR bootstrap/45888
940         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
941         Fix target.def pathname in timestamp comparison.
942
943 2010-11-24  Richard Henderson  <rth@redhat.com>
944
945         * config/ia64/predicates.md (pmpyshr_operand): New.
946         * config/ia64/ia64.c (ia64_expand_unpack): New.
947         (ia64_expand_widen_mul_v4hi): New.
948         (ia64_expand_widen_sum): Update for pattern renames.
949         (ia64_expand_dot_prod_v8qi): Likewise.
950         * config/ia64/ia64-protos.h: Update.
951         * config/ia64/vect.md (vecwider): New mode attribute.
952         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
953         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
954         (pmpyshr2, pmpyshr2_u): New.
955         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
956         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
957         (mulv2si3): New.
958         (vec_pack_ssat_v4hi): Rename from pack2_sss.
959         (vec_pack_usat_v4hi): Rename from *pack2_uss.
960         (vec_pack_ssat_v2si): Rename from pack4_sss.
961         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
962         vec_select operation.
963         (vec_interleave_highv8qi): Similarly.
964         (mux1_alt): Rename from *mux1_alt.
965         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
966         (vec_interleave_lowv4hi): Rename from unpack2_l.
967         (vec_interleave_highv4hi): Rename from unpack2_h.
968         (mix2_r): Rename from *mix2_r.
969         (mix2_l): Similarly.
970         (vec_extract_evenodd_helper): New.
971         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
972         (vec_interleave_lowv2si): Rename from *unpack4_l.
973         (vec_interleave_highv2si): Rename from *unpack4_h.
974         (vec_extract_evenv2si, vec_extract_oddv2si): New.
975         (vec_interleave_lowv2sf): Rename from fmix_r.
976         (vec_interleave_highv2sf): Rename from *fmix_l.
977         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
978         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
979         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
980         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
981
982 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
983
984         * targhooks.c (default_except_unwind_info): Remove
985         MUST_USE_SJLJ_EXCEPTIONS case.
986         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
987         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
988         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
989         * doc/tm.texi: Regenerate.
990         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
991
992 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
993
994         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
995         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
996         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
997         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
998         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
999
1000 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1001
1002         PR target/46519
1003         * config/i386/i386.c (ix86_expand_call): Don't check
1004         TREE_THIS_VOLATILE.
1005
1006 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1007
1008         PR target/46519
1009         * config/i386/i386.c (upper_128bits_state): New.
1010         (block_info_def): Remove upper_128bits_set and done.  Add state,
1011         referenced, count, processed and rescanned.
1012         (check_avx256_stores): Updated.
1013         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1014         Call note_stores only if needed.  Set referenced and count.
1015         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1016         (rescan_move_or_delete_vzeroupper): New.
1017         (move_or_delete_vzeroupper):  Process and rescan all all basic
1018         blocks instead of predecessor blocks of all exit points.
1019         (ix86_option_override_internal): Enable vzeroupper optimization
1020         only for -fexpensive-optimizations and not optimizing for size.
1021         (use_avx256_p): Removed.
1022         (init_cumulative_args): Don't set use_avx256_p.
1023         (ix86_function_arg): Likewise.
1024         (ix86_expand_move): Likewise.
1025         (ix86_expand_vector_move_misalign): Likewise.
1026         (ix86_local_alignment): Likewise.
1027         (ix86_minimum_alignment): Likewise.
1028         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1029         vzeroupper.
1030         (ix86_expand_call): Likewise.
1031
1032         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1033         and use_avx256_p.  Add rescan_vzeroupper_p.
1034
1035 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1036
1037         * toplev.c: Include <signal.h>.
1038
1039 2010-11-24  Richard Guenther  <rguenther@suse.de>
1040
1041         PR lto/43218
1042         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1043         conflicting function signatures as non-inlineable.
1044
1045 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1046
1047         PR rtl-optimization/46614
1048         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1049          (deps_analyze_insn): Mark JUMP_INSNs in
1050         last_pending_memory_flush that weren't added through
1051         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1052         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1053         on INSN_LIST instead of JUMP_P check on its operand.
1054         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1055
1056 2010-11-24  Richard Guenther  <rguenther@suse.de>
1057
1058         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1059
1060 2010-11-24  Richard Guenther  <rguenther@suse.de>
1061
1062         PR lto/46606
1063         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1064         a FIELD_DECL that is type correct issue a warning and fixup
1065         with a VIEW_CONVERT_EXPR.
1066
1067 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1068
1069         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1070         Explain static numbering of dump files.
1071
1072 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1073
1074         * common.opt (user_vect_verbosity_level): New Variable entry.
1075         (ftree-vectorizer-verbose=): Mark as UInteger.
1076         * flag-types.h (enum vect_verbosity_levels): Move from enum
1077         verbosity_levels in tree-vectorizer.h.
1078         * opts.c: Don't include tree.h.
1079         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1080         gcc_options parameter; take integer option argument.
1081         (common_handle_option): Update call to vect_set_verbosity_level.
1082         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1083         (vect_set_verbosity_level): Move to opts.c.
1084         (vect_verbosity_level, vect_print_dump_info): Update for change of
1085         enum name.
1086         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1087         (vect_print_dump_info): Update for change of enum name.
1088         * tree.h (vect_set_verbosity_level): Remove.
1089         * Makefile.in (opts.o): Update dependencies.
1090
1091 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1092
1093         PR middle-end/46629
1094         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1095         instead of insn with any_condjump_p.
1096
1097 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1098
1099         * config/mips/loongson.md: Change the description comment of the file
1100         and update the copyright years.
1101         (define_insn "<u>div<mode>3): Add loongson3a support.
1102         (define_insn "<u>mod<mode>3"): Likewise.
1103         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1104         mul<mode>3_mul3_loongson.
1105         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1106         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1107
1108 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1109
1110         * common.opt (initial_max_fld_align, flag_debug_asm,
1111         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1112         flag_print_asm_name, graph_dump_format, help_printed,
1113         help_columns, flag_opts_finished): New Variable entries.
1114         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1115         frandom-seed=): Mark deferred.
1116         (fsched-verbose=): Use UInteger and Var.
1117         * flags.h (set_struct_debug_option, flag_print_asm_name,
1118         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1119         graph_dump_format): Don't declare here.
1120         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1121         * opts-global.c: Include dbgcnt.h and debug.h.
1122         (decode_options): Pass location to finish_options.
1123         (handle_common_deferred_options): Check flag_dump_all_passed.
1124         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1125         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1126         OPT_fstack_limit.
1127         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1128         (set_struct_debug_option): Add location_t parameter.  Update
1129         recursive call.  Use error_at.
1130         (default_options_optimization): Use error_at.
1131         (finish_options): Add location_t parameter.  Use
1132         opts->x_flag_opts_finished instead of first_time_p.  Use
1133         opts->x_optimize instead of optimize.  Use error_at.  Pass
1134         location to inform.
1135         (print_filtered_help): Use opts->x_help_printed to track what
1136         options have been printed.
1137         (print_specific_help): Use opts->x_help_columns to track number of
1138         columns.
1139         (common_handle_option): Pass locations and gcc_options pointers to
1140         more functions.  Use warning_at instead of fnotice and warning.
1141         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1142         OPT_fdebug_prefix_map_.  Use error_at.  Set
1143         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1144         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1145         OPT_fsched_verbose_.
1146         (handle_param): Add location_r parameter.  Use error_at.
1147         (set_debug_level): Add location_r parameter.  Use error_at and
1148         warning_at.
1149         (setup_core_dumping): Add diagnostic_context parameter.
1150         (decode_d_option): Add gcc_options, location_t and
1151         diagnostic_context parameters and use them instead of global
1152         state.  Use warning_at.
1153         (enable_warning_as_error): Use error_at.
1154         * opts.h (finish_options): Update prototype.
1155         (set_struct_debug_option): Declare here.
1156         * rtl.h (fix_sched_param): Remove.
1157         * stor-layout.c (initial_max_fld_align): Remove.
1158         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1159         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1160         (process_options): Set maximum_field_alignment.
1161         * tree.h (initial_max_fld_align) Don't declare here.
1162         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1163
1164 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1165
1166         * flag-types.h (struct visibility_flags): Don't declare here.
1167         * flags.h (strip_off_ending, fast_math_flags_set_p,
1168         fast_math_flags_struct_set_p): Declare here.
1169         (visibility_options): Don't declare here.
1170         * opts-common.c (option_enabled, get_option_state): Move from
1171         opts.c.
1172         * opts-global.c: Include diagnostic.h instead of
1173         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1174         and toplev.h.
1175         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1176         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1177         print_ignored_options, unknown_option_callback,
1178         post_handling_callback, lang_handle_option, add_input_filename,
1179         read_cmdline_options, initial_lang_mask, init_options_once,
1180         decode_cmdline_options_to_array_default_mask,
1181         set_default_handlers, decode_options): Move from opts.c.
1182         (print_ignored_options): Use warning_at instead of saving and
1183         restoring input_location.
1184         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1185         instead of expr.h.  Don't include langhooks.h, except.h or
1186         lto-streamer.h.  Add more comments on includes.
1187         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1188         toplev.c.
1189         (visibility_options): Move to c-family/c-common.c.
1190         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1191         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1192         print_ignored_options, unknown_option_callback,
1193         post_handling_callback, lang_handle_option, add_input_filename,
1194         read_cmdline_options, initial_lang_mask, init_options_once,
1195         decode_cmdline_options_to_array_default_mask,
1196         set_default_handlers, decode_options): Move to opts-global.c.
1197         (target_handle_option, default_options_optimization,
1198         finish_options, common_handle_option): Remove static.
1199         (option_enabled, get_option_state): Move to opts-common.c.
1200         * opts.h (common_handle_option, target_handle_option,
1201         finish_options, default_options_optimization): Declare.
1202         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1203         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1204         opts.c.
1205         * toplev.h (strip_off_ending, decode_d_option,
1206         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1207         declare here.
1208         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1209
1210 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1211
1212         PR driver/42690
1213         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1214         options, replace by call of pass-through-libs spec function to process
1215         link_gcc_c_sequence spec.
1216         (lto_libgcc_spec): Delete variable.
1217         (static_specs[]): Remove related entry.
1218         (static_spec_functions[]): Add new entry for pass-through-libs.
1219         (main): Don't generate deleted lto_libgcc_spec.
1220         (pass_through_libs_spec_func): New function to implement the new
1221         pass-through-libs spec function.
1222         * doc/invoke.texi (pass-through-libs): Document new spec function.
1223
1224 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1225
1226         * doc/options.texi (Warning, Optimization): Document.
1227
1228 2010-11-23  Jan Hubicka  <jh@suse.cz>
1229
1230         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1231         (tree_decl_with_vis): Add implicit_section_name_p.
1232         * targhooks.h (default_function_section): Declare.
1233         * target.def (function_section): New hook.
1234         * defaults.h (HOT_TEXT_SECTION_NAME,
1235         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1236         * predict.c (choose_function_section): Remove.
1237         (estimate_bb_frequencies): Do not use choose_function_section.
1238         * coretypes.h (enum node_frequency): Move here from cgraph.h
1239         * cgraph.h (enum node_frequency): Remove.
1240         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1241         unlikely_text_section_p): Remove.
1242         (named_subsection_entry): New structure.
1243         (get_text_section): New function.
1244         (default_function_section): New function.
1245         (function_section_1): Break out from ...; handle profile info.
1246         (function_section): ... here.
1247         (unlikely_text_section): Remove.
1248         (unlikely_text_section_p): Use function_section_1.
1249         (assemble_start_function): Do not initialize cold section.
1250         (default_section_type_flags): Do not special case cold subsection.
1251         (switch_to_section): Likewise.
1252         * output.h (get_text_section): Define.
1253         * config/i386/winnt.c: Do not special case cold section.
1254         * config/darwin-protos.h (darwin_function_section): Declare.
1255         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1256         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1257         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1258         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1259         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1260         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1261         * config/darwin.c (machopic_select_section): Use
1262         darwin_function_section.
1263         (darwin_function_section): New function.
1264         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1265         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1266         (TARGET_ASM_FUNCTION_SECTION): Define.
1267         * system.h (HOT_TEXT_SECTION_NAME,
1268         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1269
1270 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1271
1272         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1273         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1274
1275 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1276
1277         PR middle-end/46499
1278         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1279         following unconditional jumps.
1280
1281 2010-11-23  Richard Guenther  <rguenther@suse.de>
1282
1283         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1284
1285 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1286             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1287
1288         * gengtype.c (enum typekind, struct options)
1289         (struct nested_ptr_data, struct pair, NUM_PARAM)
1290         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1291         Move to gengtype.h.
1292         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1293         Remove static, add zero state_number.
1294         (typedefs, structures, param_structs, variables): Remove static.
1295         (create_option): Remove.
1296         (create_string_option, create_type_option, create_nested_option):
1297         New functions.
1298         (create_nested_ptr_option): Use create_nested_option.
1299         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1300         new create*option functions.
1301         (process_gc_options): Adjust for discriminated option.
1302         (output_mangled_typename): Handle TYPE_NONE.
1303         (walk_type): Test option kinds.
1304         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1305         (write_func_for_structure, write_type, write_local, write_root)
1306         (write_roots, note_def_vec, dump_options): Adjust for
1307         discriminated option.
1308
1309         * gengtype.h (typedefs, structures, param_structs, variables
1310         enum typekind): Move from gengtype.c
1311         (enum option_kind): New discriminating enumeration.
1312         (struct options): Becomes discriminated.
1313         (struct nested_ptr_data): Nove from gengtype.c
1314         (create_string_option, create_type_option, create_nested_option)
1315         (create_nested_ptr_option): New functions
1316         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1317         (UNION_OR_STRUCT_P): Move from gengtype.c
1318
1319         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1320         discriminated options.
1321
1322 2010-11-23  Richard Guenther  <rguenther@suse.de>
1323
1324         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1325         twice.  Avoid re-allocating the ops vector all the time.
1326
1327 2010-11-23  Richard Guenther  <rguenther@suse.de>
1328
1329         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1330         is_gimple_min_invariant, group tree code checks to allow
1331         combining them.
1332         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1333         of is_gimple_reg.
1334
1335 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1336
1337         * config.gcc (sparc*-*-*): Reorder.
1338
1339 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1340
1341         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1342         Remove ENABLE_CHECKING around DBGPRINTF.
1343
1344 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1345
1346         * common.opt (exit_after_options, write_symbols, debug_info_level,
1347         use_gnu_debug_info_extensions): New Variable entries.
1348         (fprofile-dir=): Use Var.
1349         * flag-types.h (enum debug_info_level): Rename to enum
1350         debug_info_levels.
1351         * flags.h (write_symbols, debug_info_level,
1352         use_gnu_debug_info_extensions): Remove declarations.
1353         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1354         (set_struct_debug_option): Make static variables const.
1355         (use_gnu_debug_info_extensions): Remove.
1356         (set_debug_level, print_filtered_help, print_specific_help,
1357         fast_math_flags_set_p): Take gcc_options parameters and use them
1358         in place of global variables.
1359         (print_filtered_help): Make new_help non-static.
1360         (print_specific_help): Update call to print_filtered_help.
1361         (common_handle_option): Update calls to print_specific_help.  Use
1362         gcc_options structure for more settings.  Make --help table
1363         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1364         set_debug_level.
1365         * toplev.c (profile_data_prefix): Remove.
1366         * toplev.h (profile_data_prefix, exit_after_options): Remove
1367         declarations.
1368         (fast_math_flags_set_p): Update prototype.
1369         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1370         Update call to fast_math_flags_set_p.
1371
1372 2010-11-22  Richard Henderson  <rth@redhat.com>
1373
1374         PR target/46434
1375         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1376         return the address register extracted.
1377         (crx_decompose_address): Update the extracted address register.
1378
1379 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1380
1381         PR driver/43335
1382         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1383
1384 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1385
1386         PR target/46608
1387         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1388         * config/picochip/picochip-protos.h: Don't include "target.h" .
1389         (picochip_secondary_reload): Don't declare.
1390
1391         PR target/46613
1392         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1393         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1394         static.
1395
1396 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1397
1398         PR bootstrap/46609
1399         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1400         (source_dot_c_frul): Likewise.
1401
1402 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1403
1404         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1405
1406 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1407
1408         PR bootstrap/44970
1409         * Makefile.in (fwprop.o) Add sparseset.h.
1410         * fwprop.c: Include sparseset.h
1411         (struct find_occurrence_data, find_occurrence_callback,
1412         find_occurrence): Remove.
1413         (active_defs, active_defs_check, register_active_defs,
1414         update_df_init, update_uses): New.
1415         (update_df): Rewrite.
1416         (try_fwprop_subst, forward_propagate_asm): Add calls to
1417         update_df_init and update_df.
1418         (fwprop_init): Allocate active_defs and active_defs_check.
1419         (fwprop_done): Free them.
1420         (fwprop, fwprop_addr): Adjust comments.
1421         * df.h (df_uses_create): Declare.
1422         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1423         (df_ref_create): Return result of df_ref_create_structure directly.
1424         (df_ref_create_structure): Call df_install_ref_incremental when
1425         no collection_rec is passed.
1426         (df_ref_record): Do not create multiword hard reg info when no
1427         collection_rec is passed.
1428         (df_uses_create): New.
1429
1430 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1431
1432         PR middle-end/43057
1433         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1434         setting location.
1435
1436 2010-11-22  Richard Guenther  <rguenther@suse.de>
1437
1438         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1439         MEM_REFs, preserve volatileness.
1440         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1441         addresses.
1442
1443 2010-11-22  Richard Guenther  <rguenther@suse.de>
1444
1445         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1446
1447 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1448
1449         PR rtl-optimization/45652
1450         * alias.c (get_reg_base_value): New.
1451         * rtl.h (get_reg_base_value): Add prototype.
1452         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1453         non-null REG_BASE_VALUE for renaming.
1454
1455 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1456             Basile Starynkevitch  <basile@starynkevitch.net>
1457
1458         * gengtype.c: Include xregex.h and obstack.h
1459         Added comments about role of get_output_file_with_visibility and
1460         our regexpr machinery.
1461         (frul_actionrout_t, struct file_rule_st): New.
1462         (hader_dot_h_frul, source_dot_c_frul): New functions.
1463         (NULL_REGEX,  NULL_FRULACT): New.
1464         (files_rules): New.
1465         (matching_file_name_substitute): New function.
1466         (get_output_file_with_visibility): Updated comments and rewritten
1467         to use the new files_rules machinery.
1468
1469         * Makefile.in (XREGEX_H): Added variable.
1470         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1471
1472 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1473
1474         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1475
1476 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1477
1478         * target.def (conditional_register_usage): Define.
1479         * reginfo.c (init_reg_sets_1): Call
1480         targetm.conditional_register_usage.
1481         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1482         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1483         for making it a hook.
1484         * doc/tm.texi: Regenerate.
1485         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1486         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1487         New function.
1488         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1489         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1490         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1491         New function.
1492         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1493         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1494         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1495         New function.
1496         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1497         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1498         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1499         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1500         (bfin_conditional_register_usage): ...here.  New function.
1501         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1502         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1503         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1504         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1505         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1506         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1507         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1508         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1509         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1510         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1511         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1512         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1513         New function.
1514         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1515         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1516         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1517         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1518         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1519         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1520         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1521         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1522         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1523         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1524         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1525         New function.
1526         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1527         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1528         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1529         Delete.
1530         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1531         static.
1532         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1533         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1534         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1535         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1536         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1537         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1538         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1539         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1540         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1541         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1542         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1543         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1544         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1545         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1546         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1547         ...here.  New function.
1548         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1549         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1550         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1551         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1552         New function.
1553         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1554         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1555         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1556         New function.
1557         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1558         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1559         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1560         Delete.
1561         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1562         static.
1563         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1564         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1565         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1566         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1567         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1568         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1569         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1570         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1571         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1572         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1573         * config/score/score.c (score_conditional_register_usage): ...here.
1574         New function.
1575         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1576         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1577         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1578         New function.
1579         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1580         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1581         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1582         New function.
1583         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1584         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1585         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1586         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1587         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1588         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1589         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1590         New function.
1591         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1592
1593 2010-11-21  Jan Hubicka  <jh@suse.cz>
1594             Dominique d'Humieres <dominiq@lps.ens.ft>
1595
1596         PR target/46510
1597         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1598         finalize external decls.
1599
1600 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1601
1602         * system.h (strerror): Poison.
1603
1604 2010-11-21  Richard Henderson  <rth@redhat.com>
1605
1606         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1607         for infq/huge_valq.
1608
1609 2010-11-21  Richard Henderson  <rth@redhat.com>
1610
1611         PR rtl-optimization/46571
1612         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1613         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1614
1615 2010-11-21  Paul Koning  <ni1d@arrl.net>
1616
1617         * config/mips/pdp11.md (negsi2): Fix wrong code.
1618
1619 2010-11-21  Paul Koning  <ni1d@arrl.net>
1620
1621         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1622         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1623
1624 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1625
1626         * config/mips/mips.c (machine_function): Rename load_label_length to
1627         load_label_num_insns.
1628         (mips_load_label_length): Rename to...
1629         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1630         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1631
1632 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1633
1634         PR target/46533
1635         * config/alpha/predicates.md (direct_call_operand): Return false
1636         for !TARGET_SMALL_TEXT targets.
1637
1638 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1639
1640         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1641         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1642         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1643         * doc/tm.texi: Regenerate.
1644         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1645         HANDLE_PRAGMA_WEAK): Poison.
1646         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1647         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1648         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1649         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1650         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1651         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1652         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1653         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1654         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1655         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1656         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1657         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1658         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1659         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1660         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1661         (HANDLE_PRAGMA_WEAK): Don't undefine.
1662         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1663         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1664         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1665         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1666         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1667         (HANDLE_PRAGMA_WEAK): Don't undefine.
1668         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1669         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1670         (HANDLE_PRAGMA_PACK): Don't undefine.
1671         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1672         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1673         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1674         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1675         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1676         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1677         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1678         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1679         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1680         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1681         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1682         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1683         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1684         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1685         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1686         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1687         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1688
1689 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1690
1691         PR target/31100
1692         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1693         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1694         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1695
1696 2010-11-20  Jan Hubicka  <jh@suse.cz>
1697
1698         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1699         (dump_cgraph_node): Dump resolution.
1700         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1701         (cgraph_comdat_can_be_unshared_p): Dclare.
1702         * lto-streamer-out.c (produce_symtab): Use
1703         cgraph_comdat_can_be_unshared_p.
1704         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1705         (cgraph_comdat_can_be_unshared_p): New function based on logic
1706         in cgraph_externally_visible_p.
1707         (cgraph_externally_visible_p): Use it.
1708         (varpool_externally_visible_p): Virtual tables can be unshared.
1709         * varpool.c (dump_varpool_node): Dump resolution.
1710
1711 2010-11-20  Jan Hubicka  <jh@suse.cz>
1712
1713         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1714
1715 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1716
1717         PR other/46202
1718         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1719         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1720         shell quoting.
1721         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1722         (install-strip): New target.
1723         (STRIPPROG): New variable, exported if STRIP is set.
1724         * doc/install.texi (Final install): Minor markup and code style
1725         fixes.  Document install-strip target.
1726
1727 2010-11-20  Paul Koning  <ni1d@arrl.net>
1728
1729         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1730         pdp11_regno_reg_class): New functions.
1731         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1732         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1733         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1734         functions.
1735         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1736         frame pointer and argument pointer pseudo-registers.
1737         (ARG_POINTER_REGNUM): Define.
1738         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1739         argument pointer.
1740         (FIRST_PARM_OFFSET): Update for argument pointer.
1741         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1742         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1743         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1744         frame pointer and argument pointer.
1745
1746 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1747
1748         PR debug/46561
1749         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1750         when looking for immediate uses.
1751
1752         PR tree-optimization/45830
1753         * stmt.c (expand_switch_using_bit_tests_p): New function.
1754         (expand_case): Use it.
1755         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1756         * tree-switch-conversion.c (struct switch_conv_info): Add
1757         bit_test_uniq, bit_test_count and bit_test_bb fields.
1758         (check_range): Fix a comment.
1759         (check_process_case): Compute bit_test_uniq and bit_test_count.
1760         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1761         allocation.
1762         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1763         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1764         (array_value_type): New function.
1765         (build_one_array): Use it, if it returned different type,
1766         fold_convert all constructor fields and convert back to the
1767         wider type in the generated code.
1768         (process_switch): Initialize bit_test_uniq, bit_test_count and
1769         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1770         returned true.
1771
1772 2010-11-19  Michael Matz  <matz@suse.de>
1773
1774         PR tree-optimization/46077
1775         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1776
1777 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1778
1779         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1780         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1781         function.
1782         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1783
1784 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1785
1786         * mode-switching.c (optimize_mode_switching): Use
1787         FOR_BB_INSNS instead of open-coded loop.
1788         * cfgrtl.c (redirect_branch_edge): Ditto.
1789
1790 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1791
1792         PR target/46436
1793         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1794         to accomodate 32 bit HOST_WIDE_INT.
1795         (m68hc11_emit_logical): Remove unused variable insn.
1796         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1797         this_insn_uses_iy before use.
1798
1799         PR target/46434
1800         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1801
1802 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1803
1804         PR c/46547
1805         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1806         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1807
1808 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1809
1810         * doc/extend.texi (Function attributes): Document PowerPC target
1811         attributes that are supported.
1812         (Pragmas): Document that PowerPC now supports target pragmas.
1813
1814         * doc/options.texi (TargetVariable): Document TargetVariable,
1815         HeaderInclude, and SourceInclude.
1816
1817         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1818         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1819         -ffp-contract=off.
1820
1821         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1822         SourceInclude directives.  Fix a cut+paste error with target save
1823         enum variables.  Sort enums in the structures after ints and
1824         before shorts.
1825         * opth-gen.awk: Ditto.
1826
1827         * configure.ac: Add support for HeaderInclude and SourceInclude option
1828         directives to add the appropriate files to the dependency lists.
1829         * configure: Regenerate.
1830         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1831         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1832         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1833         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1834         (gcc-options.o): Ditto.
1835         * opt-include.awk: New awk script to handle HeaderInclude and
1836         TargetInclude.
1837
1838         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1839         gets saved in the target options.
1840         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1841         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1842         (-mprototype): Ditto.
1843         (-mbit-word): ditto.
1844         (-mregnames): Ditto.
1845         (-msecure-plt): Ditto.
1846         (-mbss-plt): Ditto.
1847         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1848         (-mpowerpc-gfxopt): Ditto.
1849         (-mmfcrf): Ditto.
1850         (-mpopcntb): Ditto.
1851         (-mfprnd): Ditto.
1852         (-mcmpb): Ditto.
1853         (-mmmfpgpr): Ditto.
1854         (-maltivec): Ditto.
1855         (-mhard-dfp): Ditto.
1856         (-mmulhw): Ditto.
1857         (-mdlmzb): Ditto.
1858         (-mmultiple): Ditto.
1859         (-mstring): Ditto.
1860         (-mpopcntd): Ditto.
1861         (-mfriz): Ditto.
1862         (-mvsx): Ditto.
1863         (-mno-update): Ditto.
1864         (-mavoid-indexed-addresses): Ditto.
1865         (-mtls-markers): Ditto.
1866         (-msched-epilog): Ditto.
1867         (-msched-prolog): Ditto.
1868         (-maix-struct-return): Ditto.
1869         (-msvr4-struct-return): Ditto.
1870         (-mxl-compat): Ditto.
1871         (-mrecip-precision): Ditto.
1872         (-mfp-in-toc): Ditto.
1873         (-msum-in-toc): Ditto.
1874         (-mvrsave): Ditto.
1875         (-mblock-move-inline-limit=): Ditto.
1876         (-misel): Ditto.
1877         (-mpaired): Ditto.
1878         (-mlongcall): Ditto.
1879         (-mgen-cell-microcode): Ditto.
1880         (-mwarn-cell-microcode): Ditto.
1881         (-mwarn-altivec-long): Ditto.
1882         (-mprioritize-restricted-insns=): Ditto.
1883         (-msingle-float): Ditto.
1884         (-mdouble-float): Ditto.
1885         (-msimple-fpu): Ditto.
1886         (-mxilinx-fpu): Ditto.
1887         * config/rs6000/aix64.opt (-mpe): Ditto.
1888
1889         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1890         (rs6000_cpu): Move variable to be a target variable.  Rename
1891         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1892         -mdebug=<xxx> variables into a single int.
1893         (rs6000_always_hint): Ditto.
1894         (rs6000_sched_groups): Ditto.
1895         (rs6000_align_branch_targets): Ditto.
1896         (rs6000_sched_costly_dep): Ditto.
1897         (rs6000_sched_insert_nops): Ditto.
1898         (rs6000_long_double_type_size): Ditto.
1899         (rs6000_ieeequad): Ditto.
1900         (rs6000_altivec_abi): Ditto.
1901         (rs6000_spe): Ditto.
1902         (rs6000_spe_abi): Ditto.
1903         (rs6000_float_gprs): Ditto.
1904         (rs6000_darwin64_abi): Ditto.
1905         (can_override_loop_align): Ditto.
1906         (rs6000_sdata): Ditto.
1907         (rs6000_tls_size): Ditto.
1908         (rs6000_current_abi): Ditto.
1909         (rs6000_traceback): Ditto.
1910         (rs6000_alignment_flags): Ditto.
1911         (rs6000_current_cmodel): Ditto.
1912         (rs6000_recip_control): Ditto.
1913         (rs6000_cpu_index): Ditto.
1914         (rs6000_tune_index): Ditto.
1915         (rs6000_debug): Ditto.
1916         (rs6000_target_flags_explict): Ditto.
1917
1918         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1919         declaration.
1920
1921         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1922         cmodel.  Change all uses.
1923
1924         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1925         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1926         Rename cmodel to rs6000_current_cmodel.
1927         (rs6000_sched_groups): Ditto.
1928         (rs6000_align_branch_targets): Ditto.
1929         (rs6000_sched_costly_dep): Ditto.
1930         (rs6000_sched_insert_nops): Ditto.
1931         (rs6000_long_double_type_size): Ditto.
1932         (rs6000_ieeequad): Ditto.
1933         (rs6000_altivec_abi): Ditto.
1934         (rs6000_spe): Ditto.
1935         (rs6000_spe_abi): Ditto.
1936         (rs6000_float_gprs): Ditto.
1937         (rs6000_darwin64_abi): Ditto.
1938         (can_override_loop_align): Ditto.
1939         (rs6000_sdata): Ditto.
1940         (rs6000_tls_size): Ditto.
1941         (rs6000_current_abi): Ditto.
1942         (rs6000_traceback): Ditto.
1943         (rs6000_alignment_flags): Ditto.
1944         (rs6000_current_cmodel): Ditto.
1945         (rs6000_recip_control): Ditto.
1946         (rs6000_cpu_index): Ditto.
1947         (rs6000_tune_index): Ditto.
1948         (rs6000_debug): Ditto.
1949         (rs6000_target_flags_explict): Ditto.
1950         (rs6000_sched_insert_nops_str): Make static.
1951         (rs6000_sched_costly_dep_str): Ditto.
1952         (rs6000_recip_name): Ditto.
1953         (rs6000_abi_name): Ditto.
1954         (rs6000_sdata_name): Ditto.
1955         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1956         (rs6000_parse_tls_size_option): Delete.
1957         (rs6000_valid_attribute_p): New function for target attributes and
1958         pragmas.
1959         (rs6000_function_specific_save): Ditto.
1960         (rs6000_function_specific_restore): Ditto.
1961         (rs6000_function_specific_print): Ditto.
1962         (rs6000_can_inline_p): Ditto.
1963         (rs6000_set_current_function): Ditto.
1964         (rs6000_inner_target_options): Ditto.
1965         (rs6000_debug_target_options): Ditto.
1966         (rs6000_pragma_target_parse): Ditto.
1967         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1968         attributes and pragmas.
1969         (TARGET_OPTION_SAVE): Ditto.
1970         (TARGET_OPTION_RESTORE): Ditto.
1971         (TARGET_OPTION_PRINT): Ditto.
1972         (TARGET_CAN_INLINE_P): Ditto.
1973         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1974         (POWER_MASKS): Move to file level scope from the
1975         rs6000_option_override_internal function.
1976         (POWERPC_MASKS): Ditto.
1977         (ISA_*_MASKS): Ditto.
1978         (struct rs6000_ptt): Ditto.
1979         (processor_target_table): Ditto.
1980         (rs6000_cpu_name_lookup): Map cpu name to an index in
1981         processor_target_table.
1982         (rs6000_debug_reg_global): Print more information on processor
1983         options for -mdebug=reg.
1984         (rs6000_init_hard_regno_mode_ok): Add support for target
1985         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1986         Allow -mdebug=val1,val2.  Rename cmodel variable.
1987         (rs6000_option_override_internal): Ditto.
1988         (rs6000_option_override): Ditto.
1989         (rs6000_handle_option): Ditto.
1990         (rs6000_conditional_register_usage): Add debug trace message.
1991         (struct rs6000_opt_mask): New for target attribute/pragma support.
1992         (rs6000_opt_masks): Ditto.
1993         (struct rs6000_opt_var): Ditto.
1994         (rs6000_opt_vars): Ditto.
1995         (rs6000_previous_function): Ditto.
1996
1997         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
1998         wasn't already included.
1999         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2000         (enum processor_type): Ditto.
2001         (rs6000_cpu): Ditto.
2002         (enum fpu_type_t): Ditto.
2003         (fpu_type): Ditto.
2004         (enum rs6000_dependence_cost): Ditto.
2005         (enum rs6000_nop_insertion): Ditto.
2006         (enum group_termination): Ditto.
2007         (rs6000_long_double_type_size): Ditto.
2008         (rs6000_ieeequad): Ditto.
2009         (rs6000_altivec_abi): Ditto.
2010         (rs6000_spe_abi): Ditto.
2011         (rs6000_spe): Ditto.
2012         (rs6000_float_gprs): Ditto.
2013         (rs6000_alignment_flags): Ditto.
2014         (rs6000_sched_insert_nops): Ditto.
2015         (enum rs6000_vector): Ditto.
2016         (enum rs6000_abi): Ditto.
2017         (rs6000_current_opt): Ditto.
2018         (rs6000_debug_*): Delete.
2019         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2020         (TARGET_DEBUG*): Ditto.
2021
2022         * config/rs6000/rs6000-opts.h: New header file to define the enums
2023         that are used in target variables that are now defined in rs6000.opt.
2024
2025         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2026         rs6000-opts.h.
2027         (rs6000_sdata): Ditto.
2028         (rs6000_abi_name): Delete.
2029         (rs6000_sdata_name): Ditto.
2030         (rs6000_tls_size_string): Ditto.
2031
2032 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2033
2034         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2035         Variable entries.
2036         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2037         should_emit_struct_debug): Move from opts.c.
2038         * flag-types.h (enum debug_struct_file): Move from opts.c.
2039         * flags.h (should_emit_struct_debug): Remove.
2040         (base_of_path): Declare.
2041         (set_struct_debug_option): Add gcc_options parameter.
2042         * optc-gen.awk, opth-gen.awk: Handle array variables.
2043         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2044         debug_struct_generic): Remove.
2045         (set_struct_debug_option): Add gcc_options parameter.
2046         (base_of_path): Remove static.
2047         (main_input_basename, main_input_baselength, matches_main_base,
2048         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2049         Remove.
2050         * toplev.c (main_input_basename, main_input_baselength): Define
2051         here.
2052         * toplev.h (main_input_basename, main_input_baselength): Declare
2053         here.
2054
2055 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2056
2057         * common.opt (flag_instrument_functions_exclude_functions,
2058         flag_instrument_functions_exclude_files): New Variable definitions.
2059         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2060         * gimplify.c (char_p): Declare type and vectors.
2061         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2062         * opts.c (flag_instrument_functions_exclude_functions,
2063         flag_instrument_functions_exclude_files): Remove.
2064         (add_comma_separated_to_vector): Take void **.
2065         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2066         (common_handle_option): Use options structure for
2067         -finstrument-functions-exclude- options.
2068
2069 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2070
2071         * doc/options.texi (Var): Document effects of Defer.
2072         (Defer): Document.
2073         * opt-functions.awk (var_type, var_set): Handle deferred options.
2074         * opts-common.c (set_option): Handle CLVC_DEFER.
2075         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2076         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2077         fstack-limit-symbol=): Mark as deferred.
2078         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2079         plugin.h.
2080         (print_filtered_help): Don't report state of CLVC_DEFER options.
2081         (common_handle_option): Move code for OPT_fcall_used_,
2082         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2083         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2084         OPT_fstack_limit_symbol_ to opts-global.c.
2085         (option_enabled, get_option_state): Handle CLVC_DEFER.
2086         * opts.h: Include vec.h.
2087         (enum cl_var_type): Add CLVC_DEFER.
2088         (cl_deferred_option): Define type and vectors.
2089         (handle_common_deferred_options): Declare.
2090         * opts-global.c: New.
2091         * toplev.c (toplev_main): Call handle_common_deferred_options
2092         * Makefile.in (OPTS_H): Include $(VEC_H).
2093         (OBJS-common): Include opts-global.o.
2094         (opts.o): Update dependencies.
2095         (opts-global.o): Add dependencies.
2096
2097 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2098
2099         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2100         to objc_declare_protocols.
2101
2102 2010-11-19  Richard Guenther  <rguenther@suse.de>
2103
2104         PR lto/45789
2105         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2106         IDENTIFIERs do not stream TREE_TYPE.
2107         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2108
2109 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2110
2111         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2112
2113 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2114
2115         PR target/45870
2116         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2117         non-delegitimized TLS UNSPECs.
2118
2119 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2120             Ian Lance Taylor  <iant@google.com>
2121
2122         * config/darwin-c.c (darwin_additional_format_types): Export.
2123
2124 2010-11-18  Paul Koning  <ni1d@arrl.net>
2125
2126         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2127         pointer.
2128
2129 2010-11-18  Paul Koning  <ni1d@arrl.net>
2130
2131         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2132         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2133         * config/pdp11/pdp11.opt (-mabshi): Delete.
2134
2135 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2136
2137         * resource.h (struct resources): Fix typo in the comment.
2138
2139 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2140
2141         PR target/46546
2142         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2143
2144 2010-11-18  Richard Henderson  <rth@redhat.com>
2145
2146         PR middle-end/46515
2147         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2148         maybe_copy_epilogue_insn; handle prologue insns as well.
2149         * rtl.h, cfglayout.c: Update for rename.
2150         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2151         RTX_FRAME_RELATED_P insns.
2152
2153 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2154
2155         PR middle-end/46534
2156         * builtins.c (fold_builtin_printf): Don't copy and modify string
2157         before build_string_literal, instead modify what
2158         build_string_literal returned.
2159
2160 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2161
2162         PR c/33193
2163         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2164         REALPART_EXPR and IMAGPART_EXPR.
2165
2166 2010-11-18  Richard Guenther  <rguenther@suse.de>
2167
2168         PR tree-optimization/46172
2169         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2170         function.
2171         (slpeel_tree_peel_loop_to_edge): Call it.
2172
2173 2010-11-18  Jeff Law  <law@redhat.com>
2174
2175         PR middle-end-optimization/46297
2176         * postreload.c (reload_combine_note_store): Deal with embedded
2177         side effects in MEM expressions.
2178
2179 2010-11-18  Richard Guenther  <rguenther@suse.de>
2180
2181         PR lto/45089
2182         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2183         when checking is not enabled.
2184
2185 2010-11-18  Richard Guenther  <rguenther@suse.de>
2186
2187         PR lto/46525
2188         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2189         type leaders.
2190         (gimple_register_canonical_type): Also cache the canoncial type
2191         for non type leaders.
2192
2193 2010-11-18  Richard Guenther  <rguenther@suse.de>
2194
2195         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2196
2197 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2198
2199         PR middle-end/46518
2200         * sel-sched-ir.c (init_expr): Use the correct type for
2201         target_available.
2202         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2203
2204 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2205
2206         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2207         as well as -mrelocatable at the same time.
2208
2209 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2210
2211         PR target/46422
2212         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2213         Call the clz builtin.
2214
2215 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2216             Steve Ellcey  <sje@cup.hp.com>
2217
2218         PR middle-end/31490
2219         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2220         if section attribute used.
2221
2222 2010-11-17  Jan Hubicka  <jh@suse.cz>
2223
2224         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2225         expand errno setting variant when optimizing for size.
2226
2227 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2228
2229         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2230         Reverse backward loop.  Fix formatting issues.
2231
2232 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2233
2234         * c-parser.c (c_token_is_qualifier,
2235         c_parser_next_token_is_qualifier): New.
2236         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2237         Improve error message on specs->tagdef_seen_p.
2238         (c_parser_struct_or_union_specifier): Improve error recovery.
2239         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2240         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2241         using c_parser_next_token_is_qualifier; extend it to cover
2242         a ctsk_tagdef typespec and !typespec_ok in general.
2243
2244 2010-11-17  Richard Guenther  <rguenther@suse.de>
2245
2246         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2247         (gimple_mod_pow2_value_transform): Likewise.
2248         (gimple_mod_subtract_transform): Likewise.
2249
2250 2010-11-17  Richard Guenther  <rguenther@suse.de>
2251
2252         PR lto/46504
2253         * gimple.c (gimple_register_canonical_type): Make sure to only
2254         make type leaders canonical types.
2255
2256 2010-11-17  Michael Matz  <matz@suse.de>
2257
2258         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2259         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2260         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2261         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2262         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2263         (pass_build_ssa): ... but here.
2264         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2265         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2266         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2267         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2268         * predict.c (rebuild_frequencies): Ditto.
2269         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2270         * emit-rtl.c (verify_rtl_sharing): Ditto.
2271         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2272         * tree-ssa-live.c (remove_unused_locals): Ditto.
2273         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2274         * tree-ssa.c (pass_early_warn_uninitialized,
2275         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2276         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2277         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2278         * passes.c (pass_postreload, execute_todo): Ditto.
2279         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2280
2281 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2282
2283         * doc/invoke.texi (-dy): Remove.
2284         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2285         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2286         * langhooks.c (lhd_do_nothing_i): Remove.
2287         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2288         * toplev.c (set_yydebug): Remove.
2289         (compile_file): Update call to lang_hooks.parse_file.
2290         (decode_d_option): Don't handle -dy.
2291
2292 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2293
2294         PR rtl-optimization/46440
2295         * combine.c (update_cfg_for_uncondjump): When changing
2296         an indirect jump into unconditional jump, remove BARRIERs
2297         from bb's footer.
2298
2299 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2300
2301         * opts.c (target_handle_option): Do not assert that loc ==
2302         UNKNOWN_LOCATION.
2303
2304 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2305             Richard Guenther  <rguenther@suse.de>
2306
2307         PR middle-end/45838
2308         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2309         call_may_clobber_ref_p_1): Return true for __sync_* and some
2310         OpenMP builtins that act as threading barriers.
2311
2312 2010-11-17  Richard Guenther  <rguenther@suse.de>
2313
2314         PR tree-optimization/46498
2315         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2316
2317 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2318
2319         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2320         (xtensa_function_arg_boundary): ...this.
2321         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2322         thinko in declaration.
2323         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2324         number of parameters to picochip_function_arg_boundary.
2325         (picochip_arg_advance): Likewise.
2326
2327 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2328
2329         PR target/46512
2330         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2331         under check for type.
2332
2333 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2334
2335         * ifcvt.c (dead_or_predicable): Fix typo.
2336
2337 2010-11-16  Richard Henderson  <rth@redhat.com>
2338
2339         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2340         * config/s390/s390.opt (mfused-madd): Remove.
2341         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2342         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2343         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2344         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2345
2346 2010-11-16  Richard Henderson  <rth@redhat.com>
2347
2348         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2349         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2350         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2351         (*altivec_vmaddfp_1): Remove.
2352         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2353         (altivec_mulv4sf3): Expand to FMA directly.
2354         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2355         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2356         * config/rs6000/paired.md (paired_madds0): Use FMA.
2357         (paired_madds1): Likewise.
2358         (*paired_madd): Rename from paired_madd; use FMA.
2359         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2360         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2361         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2362         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2363         (rs6000_emit_madd): Use fma_optab.
2364         (rs6000_emit_msub): Use fms_optab.
2365         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2366         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2367         (*fmasf4_fpr): Rename from fmasf4_fpr.
2368         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2369         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2370         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2371         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2372         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2373         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2374         (*fmadf4_fpr): Rename from fmadf4_fpr.
2375         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2376         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2377         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2378         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2379         (fmasf4, fmadf4): Macroize into...
2380         (fma<FMA_F>4): ... here.
2381         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2382         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2383         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2384         TARGET_FUSED_MADD.
2385         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2386         (*vsx_fmadd<mode>4_1): Remove.
2387         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2388         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2389         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2390         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2391         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2392         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2393         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2394
2395 2010-11-16  Richard Henderson  <rth@redhat.com>
2396
2397         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2398         (fmasf4, fnmadf4, fnmasf4): Likewise.
2399         (unnamed plus+mult insns and splitters): Delete.
2400
2401 2010-11-16  Richard Henderson  <rth@redhat.com>
2402
2403         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2404         (fnma<VSF>4): Rename from fnms_<VSF>.
2405         (fms<VSF>4): Rename from fms_<VSF>.
2406         (fma<VDF>4): Rename from fma_<VDF>.
2407         (fms<VDF>4): Rename from fms_<VDF>.
2408         (nfma<VDF>4): Rename from fnma_<VDF>.
2409         (nfms<VDF>4): Rename from fnms_<VDF>.
2410         (fnma<VDF>4, fnms<VDF>4): New expanders.
2411         (floatunsdisf2): Update for the renames.
2412         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2413         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2414
2415 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2416
2417         PR rtl-optimization/46490
2418         * combine.c (expand_compound_operation): Fix thinko.
2419
2420 2010-11-16  Richard Henderson  <rth@redhat.com>
2421
2422         PR target/46470
2423         * recog.c (peep2_attempt): Convert frame-related info when possible.
2424         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2425         (peephole2_optimize): Allow peep2_attempt to fail.
2426
2427 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2428
2429         PR rtl-optimization/46315
2430         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2431         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2432         extracted from...
2433         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2434         (remove_reg_equal_equiv_notes_for_defs): ...this.
2435         (delete_unmarked_insns): Adjust to above renaming.
2436         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2437         referring to registers set in the insns being moved, if any.
2438
2439         * df-core.c (df_ref_dump): New function extracted from...
2440         (df_refs_chain_dump): ...here.  Call it.
2441         (df_regs_chain_dump): Likewise.
2442         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2443         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2444
2445 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2446
2447         PR rtl-optimization/46395
2448         * postreload.c (reload_combine): Invalidate register use
2449         information on all control flow insns.
2450
2451         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2452         LABEL_REF in UNSPEC operand.
2453
2454 2010-11-16  Jan Hubicka  <jh@suse.cz>
2455
2456         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2457         when !flag_toplevel_reorder do not remove unless variable is
2458         COMDAT or ARTIFICIAL.
2459         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2460         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2461         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2462         * varpool.c (decide_is_variable_needed): Do not handle visibility
2463         issues.
2464         (varpool_finalize_decl): Likewise.
2465         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2466         update outdated comment on DECL_RTL_SET_P check.
2467
2468 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2469
2470         * config/sol2.h (NM_FLAGS): Define.
2471         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2472         * doc/tm.texi: Update.
2473
2474 2010-11-16  Nick Clifton  <nickc@redhat.com>
2475
2476         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2477         (msubsf4): Rename to fmssf4, and use fma.
2478         (nmaddsf4): Rename to fnmasf4 and use fma.
2479         (nmsubsf4): Rename to fnmssf4 and use fma.
2480
2481 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2482
2483         PR target/44762
2484         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2485         (score3_in_small_data_p, score3_function_value): Likewise.
2486         (score3_trampoline_init): Use LCT_NORMAL.
2487         (score3_print_operand): Initialize code as UNKNOWN.
2488         * config/score/predicates.md (score_load_multiple_operation):
2489         Remove unused variable.
2490         (score_store_multiple_operation): Likewise.
2491         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2492         (score7_in_small_data_p, score7_function_value): Likewise.
2493         (score7_trampoline_init): Use LCT_NORMAL.
2494         (score7_print_operand): Initialize code as UNKNOWN.
2495         * config/score/score3.h (score3_return_in_memory): Update prototype.
2496         (score3_in_small_data_p, score3_function_value): Likewise.
2497         * config/score/score-protos.h (score_function_value): Likewise.
2498         * config/score/score7.h (score7_return_in_memory): Update prototype.
2499         (score7_in_small_data_p, score7_function_value): Likewise.
2500         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2501         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2502         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2503         (score_function_epilogue, score_in_small_data_p): Likewise.
2504         (score_option_override, score_asm_trampoline_template): Likewise.
2505         (score_trampoline_init, score_print_operand): Likewise.
2506         (score_print_operand_address, score_prologue): Likewise.
2507         (score_epilogue, score_call, score_call_value): Likewise.
2508         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2509         (score_function_arg_advance): Likewise. Make static.
2510         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2511         (score_function_arg, score_legitimate_address_p): Make static.
2512         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2513         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2514         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2515         Allow (W) == HOST_BITS_PER_WIDE_INT.
2516
2517         PR java/46386
2518         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2519         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2520
2521 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2522
2523         * config/arc/arc.c: Delete pasto.
2524         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2525
2526 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2527
2528         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2529         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2530         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2531         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2532         (mn10300_preferred_reload_class,
2533         mn10300_preferred_output_reload_class): New functions.
2534
2535 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2536
2537         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2538         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2539         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2540         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2541
2542 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2543
2544         * builtins.c (std_gimplify_va_arg_expr): Use
2545         targetm.calls.function_arg_boundary.
2546         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2547         * calls.c (struct arg_data): Update comment.
2548         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2549         * target.def (function_arg_boundary): Define.
2550         * targhooks.h (default_function_arg_boundary): Declare.
2551         * targhooks.c (default_function_arg_boundary): Define.
2552         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2553         TARGET_FUNCTION_ARG_BOUNDARY.
2554         (FUNCTION_ARG_BOUNDARY): Delete.
2555         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2556         * doc/tm.texi: Regenerate.
2557         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2558         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2559         * config/arc/arc.c (arc_function_arg_boundary): Define.
2560         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2561         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2562         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2563         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2564         (arm_function_arg_boundary): Define.
2565         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2566         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2567         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2568         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2569         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2570         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2571         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2572         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2573         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2574         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2575         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2576         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2577         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2578         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2579         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2580         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2581         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2582         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2583         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2584         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2585         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2586         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2587         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2588         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2589         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2590         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2591         * config/pa/pa.c (pa_function_arg_boundary): Define.
2592         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2593         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2594         * config/picochip/picochip-protos.h
2595         (picochip_get_function_arg_boundary): Delete.
2596         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2597         Rename to...
2598         (picochip_function_arg_boundary): ...this.  Make static.
2599         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2600         (picochip_arg_advance): Adjust.
2601         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2602         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2603         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2604         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2605         (rs6000_function_arg_boundary): ...this.  Make static.
2606         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2607         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2608         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2609         * config/rx/rx.c (rx_function_arg_boundary): Define.
2610         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2611         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2612         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2613         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2614         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2615         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2616         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2617         (xtensa_function_arg_boundary): ...this.  Make static.
2618         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2619
2620 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2621
2622         * expr.c (alignment_for_piecewise_move): New function.
2623         (widest_int_mode_for_size): New function.
2624         (move_by_pieces, move_by_pieces_ninsns): Call them.
2625         (can_store_by_pieces, store_by_pieces_1): Likewise.
2626
2627 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2628
2629         * gcc.c (char_p): Define.  Define a VEC of it.
2630         (n_linker_options, n_assembler_options, n_preprocessor_options):
2631         Delete.
2632         (linker_options, assembler_options, preprocessor_options): Convert
2633         to a VEC.
2634         (add_preprocessor_option): Adjust.
2635         (add_assembler_option): Adjust.
2636         (add_linker_option): Adjust.
2637         (do_specs_vec): New function.
2638         (do_spec_1): Call it.  Adjust for new types.
2639
2640 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2641
2642         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2643         (sreal.o, statistics.o, stringpool.o): Likewise.
2644
2645 2010-11-16  Richard Guenther  <rguenther@suse.de>
2646
2647         PR tree-optimization/44545
2648         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2649         statements are not reassociatable.
2650         (reassociate_bb): Likewise.
2651
2652 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2653
2654         * bitmap.c: Delete unnecessary includes.
2655         * ebitmap.c: Likewise.
2656         * et-forest.c: Likewise.
2657         * sreal.c: Likewise.
2658         * statistics.c: Likewise.
2659         * stringpool.c: Likewise.
2660         * double-int.c: Add comment for inclusion of tm.h.
2661
2662 2010-11-16  Richard Guenther  <rguenther@suse.de>
2663
2664         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2665         (visit_nary_op): ... this.
2666         (visit_binary_op): Remove.
2667         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2668
2669 2010-11-16  Richard Guenther  <rguenther@suse.de>
2670
2671         PR middle-end/45172
2672         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2673
2674 2010-11-16  Nick Clifton  <nickc@redhat.com>
2675
2676         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2677         record is packed.
2678
2679 2010-11-15  Richard Henderson  <rth@redhat.com>
2680
2681         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2682         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2683         DOT_PROD_EXPR.
2684
2685 2010-11-15  Richard Henderson  <rth@redhat.com>
2686
2687         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2688         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2689         fma rtx_code.
2690
2691 2010-11-15  Richard Henderson  <rth@redhat.com>
2692
2693         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2694         and *mulsubsf4 respectively.  Use fma rtx_code.
2695
2696 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2697
2698         * gcc.c: Include "vec.h".
2699         (argbuf): Make into a VEC.
2700         (argbuf_length, argbuf_index): Remove.
2701         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2702         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2703         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2704         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2705         (gcc.o): Depend on $(VEC_H).
2706
2707 2010-11-15  Richard Henderson  <rth@redhat.com>
2708
2709         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2710         via FMA if unsafe math.
2711         (insert_var_expansion_initialization): Handle FMA.
2712         (combine_var_copies_in_loop_exit): Likewise.
2713
2714 2010-11-15  Richard Henderson  <rth@redhat.com>
2715
2716         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2717         * config/ia64/ia64.opt: Remove mfused-madd.
2718         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2719         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2720         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2721         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2722         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2723         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2724         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2725         (fmav2sf4): Rename from fpma; use FMA code.
2726         (fmsv2sf4): Rename from fpms; use FMA code.
2727         (fnmav2sf4): Rename from *fpnma; use FMA code.
2728         * config/ia64/ia64.md (MODE_SDF): New iterator.
2729         (suffix): New mode attribute.
2730         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2731         (fmssf4): Rename from *fmssf4.
2732         (fnmasf4): Rename from *nfmasf4.
2733         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2734         (*nmadddf4, *nmadddf4_truncsf): Remove.
2735         (fmsdf4): Rename from *fmsdf4.
2736         (fnmadf4): Rename from *nfmadf4.
2737         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2738         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2739         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2740         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2741         (fmsxf4): Rename from *fmsxf4.
2742         (fnmaxf4): Rename from *nfmaxf4.
2743         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2744         (*fnmaxf_trunc_<MODE_SDF>): New.
2745
2746 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2747
2748         PR tree-optimization/46461
2749         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2750         a gimple val.
2751
2752 2010-11-15  Ian Lance Taylor  <iant@google.com>
2753
2754         * godump.c: New file.
2755         * common.opt (fdump-go-spec=): New option.
2756         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2757         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2758         (TYPE_SYMTAB_IS_DIE): Define.
2759         (struct tree_type): Change GTY for symtab field to use
2760         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2761         to pick the union field.
2762         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2763         (dump_go_spec_init): Declare.
2764         * toplev.c (process_options): Handle flag_dump_go_spec.
2765         * debug.c: Include "tree.h".
2766         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2767         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2768         * dbxout.c (dbx_debug_hooks): Likewise.
2769         (xcoff_debug_hooks): Likewise.
2770         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2771         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2772         SDB_DEBUGGING_INFO is not defined.
2773         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2774         (Overall Options): Document -fdump-go-spec.
2775         * Makefile.in (OBJS-common): Add godump.o.
2776         (debug.o): Add dependency on $(TREE_H).
2777         (godump.o): New target.
2778         (GTFILES): Add $(srcdir)/godump.c.
2779
2780 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2781
2782         PR debug/46095
2783         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2784         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2785         style < 0, add REG_FRAME_RELATED_EXPR.
2786
2787         PR debug/46387
2788         * rtl.h (vt_equate_reg_base_value): New prototype.
2789         * alias.c (vt_equate_reg_base_value): New function.
2790         * var-tracking.c (vt_init_cfa_base): Use it.
2791
2792 2010-11-15  Jan Hubicka  <jh@suse.cz>
2793             Diego Novillo  <dnovillo@google.com>
2794
2795         PR lto/41528
2796         * doc/lto.texi: Add.
2797         * doc/gccint.texi: Add reference to lto.texi.
2798         * doc/invoke.texi: Update user documentation for LTO.
2799         Move internal flags to lto.texi
2800
2801 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2802
2803         * c-typeck.c (build_unary_op): Use
2804         objc_build_incr_expr_for_property_ref to build the pre/post
2805         increment/decrement of an Objective-C property ref, and skip the
2806         lvalue_or_else check in that case.
2807
2808 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2809
2810         PR tree-optimization/46349
2811         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2812         (contains_vce_or_bfcref_p): Likewise.
2813         (sra_modify_assign): Use them.
2814
2815 2010-11-15  Richard Guenther  <rguenther@suse.de>
2816
2817         PR tree-optimization/46467
2818         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2819         variables without subvars.
2820
2821 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2822
2823         * config/picochip/picochip.c (file header): Picochip name change.
2824         * config/picochip/picochip.md (file header): Likewise.
2825         * config/picochip/predicates.md (file header): Likewise.
2826         * config/picochip/dfa_space.md (file header): Likewise.
2827         * config/picochip/dfa_speed.md (file header): Likewise.
2828         * config/picochip/picochip.h(file header): Likewise.
2829         * config/picochip/constraints.md (file header): Likewise.
2830         * config/picochip/picochip-protos.h (file header): Likewise.
2831         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2832         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2833         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2834         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2835         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2836         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2837         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2838         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2839         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2840         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2841         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2842         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2843         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2844         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2845
2846 2010-11-15  Richard Guenther  <rguenther@suse.de>
2847
2848         PR bootstrap/46474
2849         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2850
2851 2010-11-15  Nick Clifton  <nickc@redhat.com>
2852
2853         * config/stormy16/stormy16.c (direct_return): Do not generate a
2854         direct return for interrupt handlers.
2855
2856 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2857
2858         * Makefile.in (tm.texi): Replace with rule for:
2859         ($(srcdir)/doc/tm.texi).
2860         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2861         $(srcdir)/doc/tm.texi .
2862         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2863         tm.texi .
2864
2865         PR target/46427
2866         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2867
2868         PR bootstrap/45444
2869         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2870         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2871
2872         PR target/46432
2873         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2874
2875 2010-11-15  Richard Guenther  <rguenther@suse.de>
2876
2877         PR lto/44150
2878         * lto-opts.c (lto_write_options): Write -fexceptions even if
2879         not set by the user.
2880
2881 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2882
2883         PR c/46462
2884         * c-decl.c (declspecs_add_type): Make variables with error types
2885         integers.
2886         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2887         do not start a declaration before an Objective-C foreach.
2888         (c_parser_declaration_or_fndef): Improve recovery after unknown
2889         type name.
2890         (c_parser_for_statement): Hoist entrance of "foreach context"
2891         before ifs, add corresponding reset where it was missing.  Do
2892         not set objc_could_be_foreach_context for C.
2893
2894 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2895
2896         PR tree-optimization/45722
2897         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2898         this is a reference to a component.
2899         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2900         (ipa_note_param_call): Adjust comment.
2901
2902 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2903
2904         * config/mips/mips.c (machine_function): Remove
2905         initialized_mips16_gp_pseudo_p.
2906         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2907         detect whether a pseudo has already been created.  Unconditionally
2908         create a new one if not.
2909         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2910         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2911
2912 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2913
2914         PR target/43440
2915         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2916         * tm.texi: Regenerated.
2917         * output.h (decode_reg_name_and_count): Declare.
2918         * varasm.c (decode_reg_name_and_count): New function.
2919         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2920         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2921         iterate over all regs used.
2922         * stmt.c (expand_asm_operands): Likewise.
2923         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2924         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2925         multiple machine registers.
2926
2927 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2928
2929         * stor-layout.c (place_union_field): Do not put location information
2930         on offset expressions.
2931         (place_field): Likewise.
2932         (finalize_record_size): Likewise on size expressions.
2933         (finalize_type_size): Likewise.
2934         (layout_type): Likewise.
2935
2936 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2937
2938         PR debug/42889
2939         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2940         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2941         * df.h (df_set_bb_dirty_nonlr): Likewise.
2942
2943 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2944
2945         * config/mips/mips.md (call_internal): Pass curr_insn to
2946         mips_split_call.
2947         (call_internal_direct): Ditto.
2948         (call_value_internal): Ditto.
2949         (call_value_internal_direct): Ditto.
2950         (call_value_multiple_internal): Ditto.
2951         * config/mips/mips.c (mips_split_call): Do not copy
2952         CALL_INSN_FUNCTION_USAGE here.
2953
2954 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2955
2956         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2957         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2958         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2959         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2960         (TUNE_LOONGSON_3A): Define.
2961         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2962         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2963         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2964         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2965         (mips_rtx_cost_data): Add Loongson-3A.
2966
2967 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2968
2969         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2970         switches.
2971
2972 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2973
2974         * dwarf2out.c (macinfo_entry): New struct.
2975         (output_comp_unit): Emit the section start label here and flag that we
2976         will emit an info section.
2977         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2978         emitting directly.
2979         (dwarf2out_end_source_file): Likewise.
2980         (dwarf2out_define): Likewise.
2981         (dwarf2out_undef): Likewise.
2982         (output_macinfo): New.
2983         (dwarf2out_init): Do not emit debug section switches here, allocate a
2984         vec for macinfo, when required.
2985         (dwarf2out_finish): First switch to debug_abbrev_section here.
2986         debug_line_section,  debug_macinfo_section, Likewise.
2987         Check that the pubtypes table has at least one unpruned entry before
2988         trying to emit it.
2989
2990 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2991
2992         PR c/20385
2993         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
2994         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
2995         token lookahead.
2996         (c_parser_compound_statement_nostart, c_parser_label,
2997         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
2998         (c_parser_declaration_or_fndef): Detect the case now matched by
2999         c_parser_next_tokens_start_declaration, give error and correct it.
3000
3001 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3002
3003         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3004         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3005         with typespec_kind.
3006         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3007         (shadow_tag_warned, check_compound_literal_type): Adjust
3008         uses of tag_defined_p.
3009         (declspecs_add_type): Set typespec_kind.
3010         * c-parser.c (c_parser_declaration_or_fndef,
3011         c_parser_declspecs, c_parser_struct_declaration,
3012         c_parser_parameter_declaration, c_parser_type_name,
3013         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3014         of type_seen_p.
3015         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3016         tag_defined_p, pass ctsk_firstref through.
3017
3018 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3019
3020         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3021         (struct format_wanted_type): Replace field "name" with "kind", add
3022         "format_start" and "format_length".
3023         (check_format_info_main): Fill in new fields.  Fill in
3024         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3025         after the final NUL outside the while loop.  Do not include
3026         width and precision modifiers in the format_start/format_length
3027         of the main format.
3028         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3029         arguments.  Compute WANTED_TYPE first so that format_type_warning
3030         can be called for missing arguments.  Adjust calls to
3031         format_type_warning.
3032         (format_type_warning): Fetch as much information as possible
3033         from format_wanted_type.  Adjust printing now that every
3034         warning has a "descr", as well as for missing argument warnings
3035         and to include % sign for format specifiers.
3036
3037 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3038
3039         PR rtl-optimization/46204
3040         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3041         Update all callers.  Do not recompute topological order.  Adjust
3042         fallthrough edges following a degenerate conditional jump.
3043
3044 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3045
3046         * opts-common.c (control_warning_option): New.
3047         * opts.c (set_default_handlers): New.
3048         (decode_options): Use set_default_handlers and
3049         control_warning_option.
3050         (common_handle_option): Update call to enable_warning_as_error.
3051         (enable_warning_as_error): Take gcc_options parameters.  Use
3052         control_warning_option.
3053         * opts.h (set_default_handlers, control_warning_option): Declare.
3054
3055 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3056
3057         * Makefile.in (OPTS_H): Define.
3058         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3059         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3060         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3061         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3062         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3063         * gcc.c (driver_handle_option): Take location_t parameter.
3064         (process_command, do_self_spec): Update calls to
3065         read_cmdline_option.
3066         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3067         * langhooks.c (lhd_handle_option): Take location_t parameter.
3068         * langhooks.h (handle_option): Take location_t parameter.
3069         * lto-opts.c (lto_reissue_options): Update call to set_option.
3070         * opts-common.c (handle_option): Make static.  Take location_t
3071         parameter and pass it to other functions.
3072         (handle_generated_option): Take location_t parameter and pass it
3073         to other functions.
3074         (read_cmdline_option): Take location_t parameter and pass it to
3075         other functions.  Use warning_at and error_at.
3076         (set_option): Take location_t parameter and pass it to other
3077         functions.
3078         * opts.c (common_handle_option): Take location_t parameter and
3079         pass it to other functions.
3080         (enable_warning_as_error): Make static.  Take location_t parameter
3081         and pass it to other functions.
3082         (lang_handle_option): Take location_t parameter and pass it to
3083         other functions.
3084         (target_handle_option): Take location_t parameter.
3085         (read_cmdline_options, maybe_default_option,
3086         maybe_default_options, default_options_optimization,
3087         decode_options): Take location_t parameter and pass it to other
3088         functions.
3089         * opts.h: Include input.h.
3090         (struct cl_option_handler_func, decode_options, set_option,
3091         handle_generated_option, read_cmdline_option): Take location_t
3092         parameters.
3093         (handle_option, enable_warning_as_error): Remove.
3094         * toplev.c (toplev_main): Update call to decode_options.
3095
3096 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3097
3098         * graphite-cloog-util.c (oppose_constraint,
3099         cloog_matrix_to_ppl_constraint,
3100         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3101         CLooG isl uses unsigned integers.  This triggered a warning.
3102
3103 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3104
3105         PR target/46438
3106         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3107         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3108         (xtensa_function_arg_1): De-constify cum.
3109         (xtensa_expand_prologue): Use add_reg_note.
3110
3111         PR target/46435
3112         * config/cris/cris.c (saved_regs_mentioned): Delete.
3113         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3114         Remove unused variable op0p.
3115         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3116         (cris_emit_movem_store): Use add_reg_note.
3117
3118         PR bootstrap/46456
3119         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3120
3121 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3122
3123         * function.c (expand_function_end): Set the locator of the prologue on
3124         the stack checking insns.
3125
3126 2010-11-12  Richard Henderson  <rth@redhat.com>
3127
3128         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3129         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3130         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3131         MASK_FUSED_MADD.
3132         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3133         (fnmasf4): Rename from mulsubsf3; use fma.
3134
3135 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3136             Richard Henderson  <rth@redhat.com>
3137
3138         PR target/46428
3139         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3140         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3141         comparison.
3142
3143 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3144
3145         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3146
3147 2010-11-12  Jan Hubicka  <jh@suse.cz>
3148
3149         * doc/invoke.texi (early-inlining-insns): Update default.
3150         * params.def (early-inlining-insns): Default to 10.
3151
3152 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3153
3154         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3155
3156 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3157
3158         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3159         (SUPPORTS_INIT_PRIORITY): Define.
3160
3161 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3162
3163         PR target/46430
3164         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3165         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3166         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3167         (avr_device_to_devicelib): Likewise.
3168         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3169         into block.
3170         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3171         (zero_extendhidi2, zero_extendsidi2): Likewise.
3172         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3173         (avr_return_addr_rtx): De-constify tem.
3174         (avr_rotate_bytes): Move declarations to start of block.
3175         Don't use variable length array.  Put nested if/else into block.
3176
3177         PR rtl-optimization/46433
3178         * var-tracking.c: Include tm_p.h .
3179
3180         PR bootstrap/44756
3181         PR build/44767
3182         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3183         should be unsigned.
3184         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3185         * doc/tm.texi: Regenerate.
3186
3187         PR target/46412
3188         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3189         * config/bfin/bfin.c: Include sel-sched.h .
3190         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3191         (expand_interrupt_handler_prologue): Remove unused variable insn.
3192         (bfin_load_pic_reg): Likewise.
3193         (bfin_rtx_costs): Make code / outer_code variables of type
3194         enum rtx_code, copied from re-named parameters.
3195         (bfin_local_alignment): Change align argument and return type
3196         to unsigned.
3197         (bfin_adjust_cost): Remove unused variable insn_type.
3198         Declare variables at start of block.
3199         (struct loop_info): Rename to...
3200         (struct loop_info_d).
3201         (workaround_rts_anomaly): Change type of icode to int.
3202         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3203         with int-typed variable.
3204         (note_np_check_stores): Likewise.
3205         (trapping_loads_p): Remove unused variable pat.
3206         (bfin_expand_binop_builtin): Use expand_normal.
3207         (bfin_expand_unop_builtin): Likewise.
3208         (bfin_expand_builtin): Likewise.  Set tmode before use.
3209
3210         PR middle-end/44769
3211         * final.c (split_double): Don't use BITS_PER_WORD directly in
3212         shift count.
3213
3214         PR target/46431
3215         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3216         assignment.
3217
3218         PR target/46450
3219         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3220         Use add_reg_note.
3221         (xstormy16_function_arg): Dereference cum.
3222         (xstormy16_expand_builtin): Use expand_normal.
3223         Change type of omode to enum machine_mode.
3224         (combine_bnp): Rename and to and_insn.
3225
3226         PR target/46437
3227         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3228         localreg.
3229
3230 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3231
3232         PR debug/46375
3233         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3234
3235 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3236
3237         PR lto/46376
3238         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3239
3240 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3241
3242         PR c/44782
3243         * common.opt (fmax-errors=): New option.
3244         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3245         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3246         * diagnostic.c (diagnostic_initialize): Initialize it.
3247         (diagnostic_action_after_output): Exit if more than max_errors
3248         have been output.
3249         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3250         (-fmax-errors): Document.
3251
3252 2010-11-11  Richard Henderson  <rth@redhat.com>
3253
3254         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3255
3256 2010-11-11  Richard Henderson  <rth@redhat.com>
3257
3258         * config/fused-madd.opt: New file.
3259         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3260         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3261         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3262         * config/i386/i386.opt (mfused-madd): Remove.
3263         * config/i386/sse.md (split_fma): Remove.
3264         (split_fms, split_fnma, split_fnms): Remove.
3265
3266 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3267
3268         PR target/46088
3269         * config/i386/i386.md (*ashl<mode>3_cconly,
3270         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3271         change nonimmediate_operand predicate to register_operand.
3272
3273 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3274
3275         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3276
3277 2010-11-11  Jan Hubicka  <jh@suse.cz>
3278
3279         * opts.c (finish_options): Do not error on -flto-partition alone.
3280
3281         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3282         (-flto-partition): Document none.
3283         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3284         * lto-wrapper.c: Update comment.
3285         (run_gcc): Update LTO option parsing.
3286         * opts.c (finish_options): add support -flto-partition=none
3287         (common_handle_option): Remove fwhopr.
3288         * common.opt: Turn fwhopr into flto.
3289         * collect2.c (main): Update option handling.
3290         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3291         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3292         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3293         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3294         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3295
3296 2010-11-11  Jan Hubicka  <jh@suse.cz>
3297
3298         PR tree-optimize/40436
3299         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3300         (eliminated_by_inlining_prob): ... this one; return 50% probability
3301         for SRA.
3302         (estimate_function_body_sizes): Update use of
3303         eliminated_by_inlining_prob; estimate static function size
3304         for 2 instructions.
3305
3306 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3307
3308         PR target/44749
3309         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3310         declare.  Change type of argument four to type int.
3311         (mep_secondary_input_reload_class): Returns enum reg_class.
3312         (mep_secondary_output_reload_class): Likewise.
3313         (mep_function_value): Change types of arguments to cont_tree.
3314         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3315         argument four to type int.
3316         (mep_secondary_input_reload_class): Returns enum reg_class.
3317         (mep_secondary_output_reload_class): Likewise.
3318         (mep_function_value): Change types of arguments to cont_tree.
3319         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3320         mep_regno_reg_class to enum reg_class.
3321
3322 2010-11-11  Richard Henderson  <rth@redhat.com>
3323
3324         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3325         that the target has the exact fma operation that we matched.
3326
3327 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3328
3329         * reginfo.c (fix_register): Avoid inserting English word in
3330         diagnostic sentence.  Use %qs for quoting and %'.
3331
3332 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3333
3334         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3335         Intel processor family 6, model 0x2c.
3336
3337 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3338
3339         * opts.c (warning_as_error_callback,
3340         register_warning_as_error_callback): Remove.
3341         (enable_warning_as_error): Don't use warning_as_error_callback.
3342         * opts.h (register_warning_as_error_callback): Remove.
3343
3344 2010-11-11  Richard Henderson  <rth@redhat.com>
3345
3346         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3347         in between the MULT and the PLUS/MINUS.
3348
3349 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3350
3351         PR middle-end/46388
3352         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3353         BLKmode mode for it.
3354         (expand_expr_real_1): Similarly for op0.
3355
3356 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3357
3358         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3359         Document optional target selector.
3360
3361 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3362
3363         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3364         assembling high and low parts of size if not using 32-bit HWINT; else
3365         use DECL_SIZE_UNITS, not DECL_SIZE.
3366
3367 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3368
3369         PR tree-optimization/46383
3370         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3371         offsets.
3372         (compute_complex_ancestor_jump_func): Likewise.
3373         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3374
3375 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3376
3377         PR debug/46150
3378         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3379         true if expr1->hash != expr2->hash.
3380
3381 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3382
3383         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3384         diagnostics with lowercase letters.
3385         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3386         lowercase letters.
3387         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3388         diagnostic.
3389         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3390         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3391         lowercase letters.
3392         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3393         Remove trailing ' ' from diagnostic.
3394         * config/avr/avr.c (print_operand_address): Start diagnostic with
3395         a lowercase letter and remove trailing '.'.
3396         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3397         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3398         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3399         '.' from diagnostics.
3400         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3401         * config/cris/cris.c (cris_split_movdx,
3402         cris_expand_pic_call_address): Start diagnostics with lowercase
3403         letters.
3404         (cris_asm_output_label_ref): Use %' in diagnostic.
3405         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3406         letter.
3407         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3408         lowercase letter.
3409         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3410         lowercase letter.
3411         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3412         diagnostic.
3413         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3414         diagnostic.
3415         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3416         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3417         diagnostics.
3418         * config/i386/i386.c (ix86_option_override_internal): Write
3419         diagnostic as a single sentence without trailing '.'.  Use %' in
3420         diagnostics.
3421         (ix86_function_sseregparm, classify_argument): Start diagnostics
3422         with lowercase letters.
3423         (ix86_expand_prologue): Use %' in diagnostic.
3424         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3425         diagnostic.
3426         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3427         lowercase letter.
3428         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3429         diagnostic.
3430         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3431         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3432         '`' in help text.
3433         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3434         lowercase letter.
3435         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3436         lowercase letters.
3437         * config/microblaze/microblaze.c (microblaze_handle_option):
3438         Remove trailing '.' from diagnostic.
3439         (print_operand): Start diagnostic with a lowercase letter.
3440         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3441         lowercase letters.  Avoid '`' in diagnostics.
3442         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3443         lowercase letters.  Avoid '`' in diagnostics.
3444         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3445         lowercase letters.  Avoid '`' in diagnostics.
3446         * config/picochip/picochip.c (picochip_option_override,
3447         picochip_emit_save_register, picochip_function_arg,
3448         picochip_output_label, picochip_output_internal_label,
3449         picochip_asm_output_opcode, picochip_output_cbranch,
3450         picochip_output_compare, picochip_output_branch,
3451         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3452         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3453         diagnostics.
3454         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3455         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3456         (rs6000_handle_option): Start diagnostics with lowercase letters.
3457         (def_builtin): Remove trailing '.' from diagnostic.
3458         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3459         letter.
3460         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3461         diagnostic.
3462         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3463         lowercase letter.
3464         * config/s390/s390.c (s390_option_override) Start diagnostics with
3465         lowercase letters.  Use %' in diagnostic.
3466         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3467         lowercase letters.
3468         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3469         diagnostic.
3470         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3471         diagnostic.
3472         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3473         diagnostic.
3474         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3475         * config/spu/spu.c (spu_option_override): Start diagnostics with
3476         lowercase letters.  Use %qs for quoting in diagnostics.
3477         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3478         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3479         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3480         from diagnostic.
3481         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3482         diagnostics.
3483         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3484         letter and use "cannot" spelling.
3485         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3486         lowercase letter and format as a single sentence without '.'.
3487         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3488         Use %' in diagnostics.
3489         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3490         Use %' in diagnostics.
3491         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3492         Use %' in diagnostics.
3493         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3494         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3495         with lowercase letters and remove tailing '.' and '\n'.
3496         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3497         lowercase letter and remove trailing '.'.
3498         (input_cgraph): Start diagnostics with lowercase letters and
3499         remove trailing '\n'.
3500         * opts.c (finish_options, common_handle_option): Start diagnostics
3501         with lowercase letters and remove trailing '.'.  Fix typo in
3502         diagnostic.
3503         * passes.c (position_pass): Start diagnostic with lowercase letter.
3504         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3505         register_callback, try_init_one_plugin): Start diagnostics with
3506         lowercase letters.
3507         * reload1.c (spill_failure): Use %' in diagnostic.
3508         (gen_reload): Start diagnostic with a lowercase letter.
3509         * stor-layout.c (place_field): Start diagnostic with a lowercase
3510         letter.
3511         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3512         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3513         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3514         Start diagnostics with lowercase letters, remove trailing '.' and
3515         use %' in diagnostics.
3516         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3517         (verify_ssa): Don't split diagnostic across two error calls.
3518         Spell out "number" and use %' in diagnostic.
3519         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3520         lowercase letters.
3521
3522 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3523
3524         PR middle-end/46419
3525         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3526         (_mm_cvtpu16_ps): Ditto.
3527
3528 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3529
3530         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3531         warn_larger_than, larger_than_size, warn_frame_larger_than,
3532         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3533         default_visibility, flag_tls_default): New Variable declarations.
3534         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3535         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3536         (v): Declare as Common and document here.
3537         * flags.h (default_visibility, flag_generate_lto,
3538         warn_larger_than, larger_than_size, warn_frame_larger_than,
3539         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3540         flag_shlib, flag_excess_precision_cmdline): Remove.
3541         (set_Wstrict_aliasing): Update prototype.
3542         * gcc.c (verbose_flag): Remove.
3543         (driver_handle_option): Add diagnostic_context parameter.  Don't
3544         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3545         incrementing it.
3546         * opts-common.c (handle_option): Pass dc to handler.
3547         * opts.c (warn_larger_than, larger_than_size,
3548         warn_frame_larger_than, frame_larger_than_size,
3549         default_visibility): Remove.
3550         (common_handle_option): Add diagnostic_context parameter.
3551         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3552         gcc_options parameters.
3553         (lang_handle_option, target_handle_option, read_cmdline_options,
3554         decode_options): Add diagnostic_context parameters.
3555         (finish_options): Access option state through opts pointer where
3556         possible.
3557         (common_handle_option): Access option state through opts pointer
3558         where possible.  Do not set local static variable verbose.  Do not
3559         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3560         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3561         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3562         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3563         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3564         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3565         (set_Wstrict_aliasing): Add gcc_options parameter.
3566         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3567         parameter to handler.
3568         (decode_options): Add diagnostic_context parameter.
3569         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3570         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3571         aux_info_file_name, flag_shlib, flag_tls_default,
3572         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3573         (toplev_main): Pass global_dc to decode_options.
3574         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3575         aux_info_file_name, asm_file_name): Remove.
3576         * tree.h (flag_tls_default): Remove.
3577
3578 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3579
3580         PR target/45986
3581         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3582         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3583
3584 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3585
3586         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3587         (x86_64-*-*): Likewise.
3588         * config/i386/cpuid.h: Define TBM bit.
3589         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3590         and set has_tbm.
3591         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3592         isa_flag for TBM.
3593         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3594         (OPTION_MASK_ISA_TBM_UNSET): New.
3595         (ix86_handle_option): Handle -mtbm.
3596         (isa_opts): Add -mtbm.
3597         (enum pta_flags): Add PTA_TBM.
3598         (ix86_option_override_internal): Add TBM support.
3599         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3600         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3601         (IX86_BUILTIN_BEXTRI64): Likewise.
3602         (bdesc_args): Add TBM intrinsics.
3603         (ix86_expand_builtin): Add TBM specific case.
3604         * config/i386/i386.h (TARGET_TBM): New for TBM.
3605         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3606         (tbm_bextri_<mode>): Likewise.
3607         (*tbm_blcfill_<mode>): Likewise.
3608         (*tbm_blci_<mode>): Likewise.
3609         (*tbm_blcic_<mode>): Likewise.
3610         (*tbm_blcmsk_<mode>): Likewise.
3611         (*tbm_blcs_<mode>): Likewise.
3612         (*tbm_blsfill_<mode>): Likewise.
3613         (*tbm_blsic_<mode>): Likewise.
3614         (*tbm_t1mskc_<mode>): Likewise.
3615         (*tbm_tzmsk_<mode>): Likewise.
3616         * config/i386/i386.opt: Add -mtbm.
3617         * config/i386/tbmintrin.h (__bextri_u32): New.
3618         (__blcfill_u32): Likewise.
3619         (__blci_u32): Likewise.
3620         (__blcic_u32): Likewise.
3621         (__blcmsk_u32): Likewise.
3622         (__blcs_u32): Likewise.
3623         (__blsfill_u32): Likewise.
3624         (__blsic_u32): Likewise.
3625         (__t1mskc_u32): Likewise.
3626         (__tzmsk_u32): Likewise.
3627         (__bextri_u64): Likewise.
3628         (__blcfill_u64): Likewise.
3629         (__blci_u64): Likewise.
3630         (__blcic_u64): Likewise.
3631         (__blcmsk_u64): Likewise.
3632         (__blcs_u64): Likewise.
3633         (__blsfill_u64): Likewise.
3634         (__blsic_u64): Likewise.
3635         (__t1mskc_u64): Likewise.
3636         (__tzmsk_u64): Likewise.
3637         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3638         * doc/invoke.texi: Document -mtbm.
3639         * doc/extend.texi: Document TBM built-in functions.
3640
3641 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3642
3643         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3644         (x86_64-*-*): Likewise.
3645         * config/i386/cpuid.h: Define BMI bit.
3646         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3647         and set has_bmi.
3648         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3649         isa_flag for BMI.
3650         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3651         (OPTION_MASK_ISA_BMI_UNSET): New.
3652         (ix86_handle_option): Handle -mbmi.
3653         (isa_opts): Add -mbmi.
3654         (enum pta_flags): Add PTA_BMI.
3655         (ix86_option_override_internal): Add BMI support.
3656         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3657         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3658         (IX86_BUILTIN_BEXTR64): Likewise.
3659         (IX86_BUILTIN_CTZS): Likewise.
3660         (bdesc_args): Add BMI intrinsics.
3661         (ix86_expand_args_builtin): Add BMI specific cases.
3662         * config/i386/i386.h (TARGET_BMI): New for BMI.
3663         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3664         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3665         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3666         (UNSPEC_TZCNT): Likewise.
3667         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3668         (bmi_andn_<mode>): New for BMI.
3669         (bmi_bextr_<mode>): Likewise.
3670         (bmi_blsi_<mode>): Likewise.
3671         (bmi_blsmsk_<mode>): Likewise.
3672         (bmi_blsr_<mode>): Likewise.
3673         * config/i386/i386.opt: Add -mbmi.
3674         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3675         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3676         (__tzcnt_u16): Likewise.
3677         (__andn_u32): Likewise.
3678         (__bextr_u32): Likewise.
3679         (__blsi_u32): Likewise.
3680         (__blsmsk_u32): Likewise.
3681         (__blsr_u32): Likewise.
3682         (__lzcnt_u32): Likewise.
3683         (__tzcnt_u32): Likewise.
3684         (__andn_u64): Likewise.
3685         (__bextr_u64): Likewise.
3686         (__blsi_u64): Likewise.
3687         (__blsmsk_u64): Likewise.
3688         (__blsr_u64): Likewise.
3689         (__lzcnt_u64): Likewise.
3690         (__tzcnt_u64): Likewise.
3691         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3692         * doc/extend.texi: Document BMI built-in functions.
3693
3694 2010-11-10  Jan Hubicka  <jh@suse.cz>
3695
3696         PR tree-optimize/46228
3697         * doc/invoke.texi (comdat-sharing-probability): Document.
3698         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3699         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3700
3701 2010-11-10  Jan Hubicka  <jh@suse.cz>
3702
3703         PR tree-optimize/46228
3704         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3705
3706 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3707
3708         PR tree-optimization/46414
3709         * tree-inline.c (estimate_move_cost): Check preferred vector
3710         mode for vector type.
3711
3712 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3713
3714         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3715
3716 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3717
3718         PR tree-optimization/45971
3719         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3720         for phi nodes analyzable by scev.
3721
3722 2010-11-10  Richard Guenther  <rguenther@suse.de>
3723
3724         PR tree-optimization/44964
3725         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3726
3727 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3728
3729         PR tree-optimization/46351
3730         PR tree-optimization/46377
3731         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3732         aggregate bit-fields.
3733
3734 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3735
3736         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3737         * doc/tm.texi: Regenerate.
3738         * opts-common.c (tm.h): Don't include.
3739         (target_option_translations): Remove.
3740         (decode_cmdline_options_to_array): Don't handle translating options.
3741         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3742         * config/darwin-driver.c: Don't condition includes on
3743         CROSS_DIRECTORY_STRUCTURE.
3744         (darwin_default_min_version): Make static.
3745         (darwin_driver_init): New.  Call darwin_default_min_version if not
3746         CROSS_DIRECTORY_STRUCTURE.
3747         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3748         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3749         (ASM_SPEC): Add %{static}.
3750         (darwin_default_min_version): Don't declare.
3751         (darwin_driver_init): Declare.
3752         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3753         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3754         * config/darwin.opt (all_load, allowable_client,
3755         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3756         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3757         exported_symbols_list, filelist, findirect-virtual-calls,
3758         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3759         framework, fterminated-vtables, gfull, gused, image_base, init,
3760         install_name, multi_module, multiply_defined,
3761         multiply_defined_unused, no_dead_strip_inits_and_terms,
3762         seg_addr_table, seg_addr_table_filename, segaddr,
3763         segs_read_only_addr, segs_read_write_addr, single_module,
3764         umbrella, unexported_symbols_list, weak_reference_mismatches,
3765         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3766         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3767         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3768         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3769         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3770         (ASM_SPEC): Add %{static}.
3771         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3772         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3773         (DRIVER_SELF_SPECS): Handle options formerly in
3774         TARGET_OPTION_TRANSLATE_TABLE.
3775         * config/mep/mep.opt (mfar): New.
3776         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3777         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3778         TARGET_OPTION_TRANSLATE_TABLE.
3779         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3780         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3781         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3782         ffix-and-continue, findirect-data): New.
3783         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3784         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3785         (mnofpu): Define mask and use Report here.
3786
3787 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3788
3789         * config/s390/s390.c (s390_emit_prologue): Report the stack
3790         size if -fstack-usage is used.
3791
3792 2010-11-10  Richard Guenther  <rguenther@suse.de>
3793
3794         PR tree-optimization/46398
3795         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3796
3797 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3798
3799         PR target/44760
3800         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3801         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3802         GP_REG_OR_PSEUDO_STRICT_P.
3803         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3804         unexpected alternative.
3805         (*movsf_internal): Likewise.
3806         (indirect_jump): Replace call to non-existant function with call to
3807         internal_error.
3808         (tablejump): Likewise.
3809         * config/iq2000/iq2000.c: Include df.h .
3810         (iq2000_function_arg_advance): Use CONST_CAST2.
3811         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3812         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3813         a non-zero function address.
3814         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3815         unexpected value of FROM.
3816         (symbolic_expression_p): Delete.
3817         (iq2000_function_value): Constify func.
3818         (expand_one_builtin): Use expand_normal.
3819         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3820
3821         PR rtl-optimization/44764
3822         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3823
3824         PR target/46407
3825         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3826         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3827         with ATTRIBUTE_UNUSED.
3828         (valid_psw_flag): Constify parameter which.
3829         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3830
3831         PR target/46415
3832         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3833         (mmix_dbx_register_number): Likewise.
3834         * config/mmix/mmix.c: Include df.h .
3835         (mmix_local_alignment): Change argument basic_align and return type
3836         to unsigned.
3837         (mmix_dbx_register_number): Change argument and return type to
3838         unsigned.
3839         (mmix_expand_prologue): Use add_reg_note.
3840
3841         PR target/46417
3842         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3843         (spu_split_store): Use aform.
3844         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3845
3846 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3847
3848         PR/46268
3849         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3850         allocators taking size in bytes, compare with length option.  Add
3851         size calculation example.
3852         (Invoking the garbage collector): Ensure that sentences are
3853         followed by two spaces.  Describe that pointer fields must be
3854         initialized at ggc_collect call.
3855         (Troubleshooting): New section.
3856
3857 2010-11-09  Jan Hubicka  <jh@suse.cz>
3858
3859         PR tree-optimization/40436
3860         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3861         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3862         normal instructions; be sure bultin is not implemented in this file;
3863         compute non-zero return cost.
3864         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3865         * tree-inline.h (eni_weights_d): Add return cost.
3866
3867 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3868
3869         * c-parser.c (c_parser_struct_declaration): Handle declaration
3870         specifiers followed by CPP_CLOSE_BRACE.
3871
3872 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3873
3874         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3875         split occurs before reload, and we allocate memory at the time of
3876         the split, not during expansion.  Add attributes.
3877         (floatsi<mode>2_lfiwax_mem): Ditto.
3878         (floatunssi<mode>2_lfiwzx): Ditto.
3879         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3880         (floatsidf2): Ditto.
3881         (floatunssisf2): Ditto.
3882         (floatunssidf2): Ditto.
3883         (fix_trunc<mode>si2): Ditto.
3884         (fix_trunc<mode>si2_stfiwx): Ditto.
3885         (fix_trunc<mode>si2_internal): Ditto.
3886         (fix_trunc<mode>si2): Ditto.
3887         (fix_trunc<mode>di2): Ditto.
3888         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3889         (floatsisf2): Ditto.
3890         (floatdidf2_mem): Ditto.
3891         (floatunsdidf2_mem): Ditto.
3892         (floatunsdidf2): Ditto.
3893         (floatdisf2_internal1): Ditto.
3894         (floatdisf2_mem): Ditto.
3895         (floatunsdisf2_mem): Ditto.
3896         (floatsi<mode>2_lfiwax_mem2): Delete.
3897         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3898         (fix_trunc<mode>si2_mem): Ditto.
3899         (fixuns_trunc<mode>si2_mem): Ditto.
3900         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3901         type operations to reduce copying the values to multiple memory slots.
3902         (roundu32<mode>2_fprs): Ditto.
3903
3904         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3905         PRE_INC, PRE_DEC, PRE_MODIFY.
3906         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3907
3908         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3909         Delete prototype.
3910
3911 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3912
3913         PR target/43808
3914         * cfgexpand.c (partition_stack_vars): Call
3915         update_alias_info_with_stack_vars unconditionally.
3916         (update_alias_info_with_stack_vars): Allow unused
3917         unreferenced vars when not optimizing.
3918
3919 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3920
3921         PR tree-optimization/46036
3922         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3923         add_to_dst_predicate_list.
3924
3925 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3926
3927         PR debug/46171
3928         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3929         earlier.
3930         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3931         argument, call dead_debug_reset when adding REG_UNUSED note.
3932         (dead_debug_reset): New function.
3933         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3934         df_create_unused_note callers.
3935
3936 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3937
3938         * config/fr30/fr30.c: Include "df.h".
3939
3940 2010-11-09  Richard Guenther  <rguenther@suse.de>
3941
3942         PR tree-optimization/46355
3943         * tree-loop-distribution.c (tree_loop_distribution): Do not
3944         distribute loops without a single exit.
3945
3946 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3947
3948         PR rtl-optimization/46237
3949         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3950         saved hard regs if they might get partially clobbered.
3951
3952 2010-11-09  Paul Koning  <ni1d@arrl.net>
3953
3954         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3955
3956 2010-11-09  Richard Guenther  <rguenther@suse.de>
3957
3958         PR tree-optimization/46177
3959         * tree-loop-distribution.c (prop_phis): Remove.
3960         (generate_builtin): Re-use the old loop exit edge to avoid
3961         needing to update PHI nodes.
3962
3963 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3964
3965         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3966         type of args_size to unsigned HOST_WIDE_INT.
3967
3968         PR target/44755
3969         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3970         * config/t-pnt16-warn: New file.
3971         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3972         Use add_reg_note.
3973         (picochip_emit_save_register): Likewise.
3974         (picochip_emit_restore_register): Remove variable insn.
3975         (picochip_legitimize_address): Don't use C++ style comments.
3976         (picochip_legitimize_reload_address): Likewise.
3977         (reorder_var_tracking_notes): Remove variable vliw_start.
3978         (picochip_reorg): Cast first arguemnt to emit_note_after to
3979         enum insn_note.
3980         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3981         (picochip_expand_builtin_3op): Likewise.
3982         (picochip_expand_builtin_2opvoid): Likewise.
3983         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3984         (picochip_expand_array_testport): Likewise.
3985         (picochip_init_builtins): Remove unused variables.
3986         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
3987         to unsigned long, and output it as such.
3988         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
3989         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
3990         (schedType): Cast result of picochip_schedule_type to
3991         enum attr_schedType.
3992
3993         PR target/44759
3994         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
3995         conditional to type of S.
3996         (mn10300_function_arg): Remove unused variable align.
3997         (mn10300_arg_partial_bytes): Likewise.
3998         * config/mn10300/mn10300.md (attribute cpu): Cast value to
3999         enum attr_cpu.
4000
4001 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4002
4003         PR bootstrap/46392
4004         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4005
4006 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4007
4008         * tree.h (contains_placeholder_p): Fix comment.
4009         (type_contains_placeholder_p): Adjust comment.
4010         * tree.c (contains_placeholder_p): Fix comment.
4011         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4012         adjust comment.
4013         (type_contains_placeholder_p): Add comment.
4014
4015 2010-11-09  Paul Koning  <ni1d@arrl.net>
4016
4017         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4018         output of byte values.
4019
4020 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4021
4022         PR middle-end/46360
4023         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4024         not in SSA mode.
4025
4026 2010-11-09  Richard Guenther  <rguenther@suse.de>
4027
4028         PR middle-end/46221
4029         * varasm.c (compute_visible_aliases): New function.
4030         (remove_unreachable_alias_pairs): Aliases make a target available
4031         even though we reclaimed the cgraph node.
4032         (finish_aliases_1): Likewise.
4033         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4034
4035 2010-11-09  Nick Clifton  <nickc@redhat.com>
4036
4037         * config/mn10300/mn10300-modes.def: New file.
4038
4039 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4040             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4041
4042         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4043         (plugin_files, get_file_basename, get_file_realbasename)
4044         (get_file_langdir, error_at_line, gt_files, this_file)
4045         (system_h_file, read_input_list, create_field_all)
4046         (get_file_srcdir_relative_path, get_file_basename)
4047         (get_file_langdir, get_file_gtfilename)
4048         (get_output_file_with_visibility, get_output_file_name)
4049         (struct flist, put_mangled_filename, walk_type)
4050         (put_mangled_filename, finish_root_table, write_roots): Use
4051         input_file-s.
4052         (lang_dir_names, num_lang_dirs): Remove static.
4053         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4054         (main): Use input_file-s.
4055
4056         * gengtype.h: (struct input_file_st, input_file): New type.
4057         (struct fileloc): Use it.
4058         (gt_files, num_gt_files, this_file, system_h_file)
4059         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4060         (get_input_file_name): New function.
4061         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4062         use input_file.
4063         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4064         (get_output_file_name): Ditto.
4065
4066         * gengtype-lex.l (yybegin): Use input_file.
4067
4068         * gengtype-parse.c (parse_error): Use input_file.
4069
4070 2010-11-08  Xinliang David Li  <davidxl@google.com>
4071
4072         PR tree-optimization/46316
4073         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4074         * double-int.h (double_int_mul_with_sign): New function.
4075         * double-int.c (double_int_mul_with_sign): New function.
4076
4077 2010-11-08  Paul Koning  <ni1d@arrl.net>
4078
4079         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4080
4081 2010-11-08  Paul Koning  <ni1d@arrl.net>
4082
4083         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4084
4085 2010-11-08  Paul Koning  <ni1d@arrl.net>
4086
4087         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4088         to 8 bits.
4089
4090 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4091
4092         PR target/46378
4093         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4094         turn on ISA 2.04 rounding instructions for power5.
4095
4096         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4097         not ISA 2.02.
4098
4099         PR target/45585
4100         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4101         in FPR registers.
4102         (movdi_low_st): Ditto.
4103
4104 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4105             Richard Henderson  <rth@redhat.com>
4106
4107         PR target/44758
4108         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4109         (attribute acc_group): Cast value to enum attr_acc_group.
4110         (*movdi_nodouble+6): Use gen_int_mode.
4111         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4112         if RTX_CODE is defined or not.
4113         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4114         struct frv_io.
4115         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4116         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4117         (frv_expand_block_clear): Likewise.
4118         (frv_trampoline_init): Use LCT_NORMAL.
4119         (struct frv_packet_group): New struct, broken out of type of
4120         frv_packet.
4121         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4122         use cast in loop counter increment.
4123         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4124         assigning to io->type.
4125         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4126         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4127         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4128         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4129         (frv_read_argument): Use expand_normal.
4130
4131         PR target/44757
4132         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4133         lm32_legitimate_constant_p.
4134         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4135         * config/lm32/lm32.c (gen_int_relational): Make new block for
4136         LE / LT / LEU / LTU case.  Declare variables at start of block.
4137         (lm32_block_move_inline): Use XALLOCAVEC.
4138
4139 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4140
4141         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4142
4143 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4144
4145         * gengtype (get_output_file_for_structure): Ensure type is union
4146         or struct.
4147         (write_splay_tree_allocator_def): Use
4148         get_output_file_with_visibility.
4149
4150 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4151
4152         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4153         to defined values in case of an error.
4154         (s390_option_override): Skip further processing if the -march
4155         parameter wasn't recognized.
4156
4157 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4158
4159         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4160         assert that REG is a hard register number before using it as an index.
4161
4162         PR bootstrap/46358
4163         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4164         Avoid warnings when HOST_WIDE_INT is 32 bit.
4165
4166 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4167
4168         PR target/46208
4169         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4170         (sparc_promote_prototypes): Likewise.
4171         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4172         (sparc_return_in_memory): Remove superfluous parentheses.
4173         (sparc_struct_value_rtx): Fix long lines.
4174         (sparc_function_value_1): Promote in 32-bit mode as well.
4175
4176 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4177
4178         PR rtl-optimization/45352
4179         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4180         the variable_issue hook is not implemented.
4181         (fill_insns): Remove dead variable stall_iterations.
4182         (init_seqno_1): Force EBB start for resetting sched cycles on any
4183         successor blocks of the rescheduled region.
4184         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4185         (reset_sched_cycles_in_current_ebb): Add debug printing.
4186         New variable issued_insns.  Advance state when we have issued
4187         issue_rate insns.
4188
4189 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4190
4191         * gengtype (main): Get here's position using POS_HERE macro for
4192         do*typedef calls.
4193
4194 2010-11-07  Ian Lance Taylor  <iant@google.com>
4195
4196         PR target/46089
4197         * config/i386/i386.c (split_stack_fn_large): New static variable.
4198         (ix86_expand_split_stack_prologue): Handle large model.
4199
4200 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4201
4202         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4203         all possible addressing modes.
4204
4205 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4206
4207         PR tree-optimization/46346
4208         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4209
4210 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4211
4212         * config/mips/mips.c: Revert previous patch.
4213         * config/mips/mips.md: Likewise.
4214
4215 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4216
4217         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4218         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4219         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4220         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4221         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4222         to use FMA.
4223         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4224         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4225         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4226         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4227
4228 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4229
4230         PR c/43384
4231         * c-decl.c (lookup_label): Labels can only be referenced in a
4232         function's scope.
4233         (store_parm_decls_oldstyle): Skip erroneous parameters.
4234
4235 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4236
4237         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4238         LIBCALL_VALUE): Remove macros.
4239         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4240         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4241         (fr30_function_value_regno_p, fr30_function_value,
4242         fr30_libcall_value): New functions.
4243
4244 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4245
4246         PR middle-end/46314
4247         * target.def (generate_internal_label): New asm_out hook.
4248         * output.h (default_generate_internal_label): Declare.
4249         * varasm.c (default_generate_internal_label): Define.
4250
4251 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4252
4253         PR target/44981
4254         * doc/extend.tex (format): Document NSString extension.
4255         (format_arg): Likewise.
4256         (Darwin Format Checks): New section.
4257         * doc/tm.texi: Document string object hooks (generated).
4258         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4259         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4260         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4261         * target.def (objc_construct_string_object): Rename, amend
4262         documentation.
4263         (string_object_ref_type_p): New hook.
4264         (check_string_object_format_arg): New hook.
4265         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4266         attribute identifiers.
4267         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4268         (darwin_check_cfstring_format_arg): New.
4269         (darwin_additional_format_types): New.
4270         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4271         (darwin_check_cfstring_format_arg): New.
4272         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4273         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4274         (TARGET_N_FORMAT_TYPES): New.
4275         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4276
4277 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4278             Pascal Obry  <obry@adacore.com>
4279
4280         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4281         in 64-bit mode and 17 otherwise.
4282
4283 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4284
4285         PR debug/45939
4286         * var-tracking.c (emit_note_insn_var_location): Make sure that
4287         call related var location notes come before the normal ones.
4288
4289 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4290
4291         PR target/46326
4292         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4293         in the last change.
4294
4295 2010-11-05  Ian Lance Taylor  <iant@google.com>
4296
4297         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4298
4299 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4300
4301         PR c/44772
4302         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4303         pointer_set_contains if DECL_NAME is NULL.
4304
4305 2010-11-05  Ian Lance Taylor  <iant@google.com>
4306
4307         PR target/46084
4308         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4309         request enough additional space for alignment, and force alignment.
4310
4311 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4312
4313         * config/i386/i386.c (legitimate_pic_address_disp_p):
4314         Handle UNSPEC_PCREL.
4315         (ix86_legitimate_address_p): Likewise.
4316         (legitimize_pic_address): Likewise.
4317         (output_pic_addr_const): Likewise.
4318         (ix86_delegitimize_address): Likewise.
4319         (ix86_find_base_term): Likewise.
4320         (memory_address_length): Likewise.
4321         (x86_output_mi_thunk): Handle special case x64
4322         for non local binding.
4323         * config/i386/i386.md (UNSPEC_PCREL): New.
4324         * config/i386/winnt.c (i386_pe_binds_local_p):
4325         Allow weak symbol for x64 windows with non-local binding.
4326
4327 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4328
4329         PR target/45670
4330         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4331         instead of EXPAND_NORMAL for base expansion.
4332
4333 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4334
4335         * config.gcc: Support --with-fpmath=avx for x86.
4336         * config/i386/avxmath.h: New.
4337         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4338
4339 2010-11-05  Ian Lance Taylor  <iant@google.com>
4340
4341         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4342         * gengtype.c (walk_type): Don't recognize descbits option.
4343
4344 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4345
4346         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4347         WORD_SWITCH_TAKES_ARG): Remove.
4348         * doc/options.texi (Args): Document.
4349         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4350         * doc/tm.texi: Regenerate.
4351         * opt-functions.awk (switch_flags): Handle Args.
4352         * opts-common.c: Update comment on tm.h include.
4353         (decode_cmdline_option): Handle options with multiple arguments.
4354         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4355         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4356         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4357         CL_COMMON): Update values.
4358         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4359         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4360         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4361         sectobjectsymbols, sectorder, segcreate, segprot): New.
4362
4363 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4364             Uros Bizjak  <ubizjak@gmail.com>
4365
4366         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4367         256bit AVX register is used.
4368         (ix86_expand_vector_move_misalign): Likewise.
4369         (ix86_expand_vector_move): Replace use_avx256_p with
4370         VALID_AVX256_REG_MODE.
4371
4372 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4373
4374          PR target/44750
4375         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4376         change.  Set $@-warn.o to -Wno-error.
4377
4378         PR bootstrap/44756
4379         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4380         comparing it to a signed value.
4381
4382         PR middle-end/44766
4383         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4384         PR bootstrap/44770
4385         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4386         to i.
4387
4388         PR target/44754
4389         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4390         (m32c_function_arg).  Add comma between arguments two and three.
4391         (m32c_promote_prototypes): Remove declaration.
4392         (current_function_special_page_vector): Likewise.
4393         (m32c_regno_reg_class): Change return type to enum reg_class.
4394         (m32c_pushm_popm): Use add_reg_note.
4395         (m32c_push_rounding): Change return type to unsigned int.
4396         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4397         enum reload_type.
4398         (m32c_insert_attributes): Constify variable name.
4399         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4400         (m32c_prepare_shift): Remove variable lref.
4401         (m32c_expand_movcc): Remove variable cmp.
4402         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4403         (m32c_compare_redundant): Remove variable op2.
4404         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4405         (m32c_pragma_memregs): Assign the number to target_memregs.
4406         (m32c_pragma_address): Remove variable var_str.
4407         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4408         enum reg_class.
4409         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4410         * config/m32c/bitops.md (andsi3): Add default case to switch.
4411         (iorsi3, xorsi3): Likewise.
4412         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4413         * config/m32c/jump.md (call, call_value): Likewise.
4414         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4415         (m32c_regno_reg_class): Likewise.
4416         (current_function_special_page_vector): Declare.
4417
4418 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4419
4420         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4421
4422         PR tree-optimization/46099
4423         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4424         if it is NULL and uid wasn't found in the hash table.  Just fold the
4425         result if it is NULL otherwise.  Insert other potentially needed
4426         stmts right before current stmt instead of on the entry edge.
4427         (struct elv_data): Add gsi and reset fields.
4428         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4429         failed for debug stmt, set dta->reset and return.
4430         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4431         pass GSI through to the callback, handle resetting of debug stmts.
4432         (eliminate_local_variables): Adjust caller.  Process debug stmts
4433         in second phase.
4434
4435         PR middle-end/43690
4436         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4437         {pre,post}{in,de}crement, fail.
4438
4439         PR debug/46307
4440         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4441         * tree-pretty-print.c (dump_generic_node): Likewise.
4442         (op_code_prio): Likewise.
4443         * cfgexpand.c (expand_debug_expr): Likewise.
4444
4445 2010-11-04  Paul Koning  <ni1d@arrl.net>
4446
4447         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4448         constraints.
4449
4450 2010-11-04  Chao-ying Fu  <fu@mips.com>
4451
4452         * configure.ac: Test assembler support for DSP Rev1 mult.
4453         * configure: Regenerate.
4454         * config.in: Regenerate.
4455         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4456         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4457         (CODE_FOR_mips_multu): New define.
4458         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4459         dspr2_32 to dsp_32.
4460         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4461         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4462         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4463         New define_expand patterns.
4464         * config/mips/constraints.md (ka): Update the constraint to test
4465         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4466         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4467         mips_multu): Delete.
4468         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4469         Change target constraint to "ka".
4470         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4471         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4472         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4473         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4474         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4475         (<u>maddsidi4): Likewise.
4476         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4477         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4478
4479 2010-11-04  Paul Koning  <ni1d@arrl.net>
4480
4481         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4482
4483 2010-11-04  Paul Koning  <ni1d@arrl.net>
4484
4485         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4486
4487 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4488
4489         Fixed using the Objective-C 2.0 dot-syntax with class names.
4490         * c-parser.c (c_parser_next_token_starts_declspecs): In
4491         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4492         (c_parser_next_token_starts_declaration): Same.
4493         (c_parser_postfix_expression): Parse the Objective-C 2.0
4494         dot-syntax with a class name.
4495
4496 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4497
4498         * final.c (compute_alignments): Compute/free loop info all the time.
4499         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4500         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4501         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4502         * config/rs6000/rs6000.c (cfgloop.h): Include.
4503         (can_override_loop_align): New.
4504         (rs6000_option_override_internal): Set it.
4505         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4506         (rs6000_loop_align): New function.
4507         (rs6000_loop_align_max_skip): Likewise.
4508
4509 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4510
4511         PR driver/45703
4512         * collect2.c (main): Print --help output to stdout.  Do not
4513         exit right away, so ld --help is appended.  Add empty lines
4514         to separate output suitably.
4515
4516 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4517
4518         PR tree-optimization/46233
4519         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4520         after calling analyze_function, not before.
4521
4522         PR target/46234
4523         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4524         instead of build_va_arg_indirect_ref.
4525         * config/spu/spu.c (spu_va_start): Likewise.
4526         * config/s390/s390.c (s390_va_start): Likewise.
4527
4528 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4529
4530         PR middle-end/46292
4531         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4532         if the innermode is not vector mode, determine the mode of a subreg
4533         by using mode_for_size of inner_size.
4534
4535 2010-11-04  Richard Guenther  <rguenther@suse.de>
4536
4537         PR rtl-optimization/46183
4538         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4539         (execute_rtl_pre): Likewise.
4540         (execute_rtl_hoist): Likewise.
4541
4542 2010-11-04  Richard Guenther  <rguenther@suse.de>
4543
4544         PR tree-optimization/46068
4545         * ipa-split.c (consider_split): Remove gcc_unreachable.
4546
4547 2010-11-04  Richard Guenther  <rguenther@suse.de>
4548
4549         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4550
4551 2010-11-04  Richard Guenther  <rguenther@suse.de>
4552
4553         PR tree-optimization/45991
4554         * gimplify.c (force_gimple_operand_1): Use the provded test
4555         function in the initial test.
4556
4557 2010-11-04  Jeff Law  <law@redhat.com>
4558
4559         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4560         of readonly memory equivalances for const/pure calls.
4561
4562 2010-11-04  Richard Guenther  <rguenther@suse.de>
4563
4564         PR tree-optimization/45733
4565         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4566         permute builtins function return type.
4567
4568 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4569
4570         PR middle-end/44765
4571         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4572         as an index, check it is not INVALID_REGNUM.
4573
4574         PR bootstrap/44756
4575         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4576         unsignedp.
4577         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4578
4579         PR bootstrap/44756
4580         * function.c (thread_prologue_and_epilogue_insns): Add
4581         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4582
4583         PR bootstrap/44756
4584         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4585
4586         PR target/44750
4587         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4588         (pdp11_preferred_reload_class): Rename class to rclass.
4589         (pdp11_preferred_output_reload_class): Likewise.
4590         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4591         ALL_COMPILERFLAGS .
4592         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4593
4594         PR bootstrap/44756
4595         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4596         iteration variables to enum machine_mode.
4597
4598         PR target/44751
4599         * config/h8300/h8300.c: Include df.h.
4600         (push, pop): Use add_reg_note.
4601         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4602         (compute_a_shift_cc): Likewise.
4603         (expand_a_shift): Argument code has type enum rtx_code.
4604         (struct shift_insn): Member cc_valid has type enum attr_cc.
4605         (struct shift_info) <cc_inline, cc_special>: Likewise.
4606         enum attr_cc.
4607         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4608         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4609
4610 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4611
4612         PR tree-optimization/46213
4613         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4614         MINUS_EXPR only if the first operand is reduction operand.
4615
4616 2010-11-04  Richard Guenther  <rguenther@suse.de>
4617             Richard Henderson  <rth@redhat.com>
4618
4619         * tree.def (FMA_EXPR): New tree code.
4620         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4621         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4622         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4623         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4624         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4625         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4626         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4627         dead stmt removal.  Move TODO flags ...
4628         (pass_optimize_widening_mul): ... here.
4629         * flag-types.h (enum fp_contract_mode): New enum.
4630         * common.opt (flag_fp_contract_mode): New variable.
4631         (-ffp-contract): New option.
4632         * opts.c (common_handle_option): Handle it.
4633         * doc/invoke.texi (-ffp-contract): Document.
4634         * tree.h (fold_fma): Declare.
4635         * builtins.c (fold_fma): New function.
4636         (fold_builtin_fma): Likewise.
4637         (fold_builtin_3): Call it for fma.
4638         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4639         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4640         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4641         New expanders.
4642         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4643         named patterns.
4644         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4645         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4646         (fms_optab, fnma_optab, fnms_optab): New defines.
4647         * gimplify.c (gimplify_expr): Handle binary truth expressions
4648         explicitly.  Handle FMA_EXPR.
4649         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4650         operations.
4651
4652 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4653             Richard Guenther  <rguenther@suse.de>
4654
4655         * passes.c (init_optimization_passes): Move veclower after SSA.
4656         * tree-vect-generic.c (uniform_vector_p): New function.
4657         (expand_vector_operations_1): Handle conversion.
4658         (pass_lower_vector): Update SSA form.
4659
4660 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4661
4662         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4663         plugin capabilities.
4664         * configure: Regenerate.
4665
4666 2010-11-03  Xinliang David Li  <davidxl@google.com>
4667
4668         PR target/46200
4669         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4670         Adjust cbase if the use stmt is after iv update.
4671
4672 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4673
4674         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4675
4676 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4677
4678         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4679         comment.  Pass true to the last argument of output_stack_adjust.
4680
4681 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4682
4683         PR target/46295
4684         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4685         if 256bit AVX register is used.
4686
4687 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4688
4689         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4690         xsmindp/xsmaxdp on VSX for single precision min/max.
4691         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4692         (vsx_sminsf3): Ditto.
4693
4694 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4695
4696         * combine.c (try_combine): Fix formatting issues, improve comments and
4697         fix a pasto.
4698
4699 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4700
4701         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4702         of the result before building binary expressions.
4703
4704 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4705
4706         PR rtl-optimization/45865
4707         * Makefile.in (df-problems.o): Revert revision 164552.
4708         * basic-block.h (enum bb_flags): Likewise.
4709         * cfgcleanup.c (block_was_dirty): Likewise.
4710         (try_forward_edges): Likewise.
4711         (try_crossjump_bb): Likewise.
4712         (try_head_merge_bb): Likewise.
4713         (try_optimize_cfg): Likewise.
4714         (cleanup_cfg): Likewise.
4715         * df-core.c (df_set_bb_dirty): Likewise.
4716         * df-problems.c: Likewise.
4717         (df_simulate_find_uses): Likewise.
4718         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4719         (find_memory, find_memory_store): Likewise.
4720         (can_move_insns_across): Likewise.
4721         * df.h (can_move_insns_across): Likewise.
4722         * ifcvt.c (find_memory): Likewise.
4723         (dead_or_predicable): Likewise.
4724
4725 2010-11-03  Richard Guenther  <rguenther@suse.de>
4726
4727         PR middle-end/46288
4728         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4729         the result is unused.
4730
4731 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4732
4733         PR tree-optimization/46009
4734         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4735         cond_if_else_store_replacement if bb1 and bb2 have the same
4736         single successor.
4737         (cond_store_replacement): Use gimple_assign_single_p, don't
4738         check if rhs is SSA_NAME or invariant.  Call release_defs for
4739         assign.
4740         (cond_if_else_store_replacement): New function.
4741
4742 2010-11-03  Richard Guenther  <rguenther@suse.de>
4743
4744         * opts.c (finish_options): Properly check for all WHOPR
4745         flags before complaining about -flto-partition.
4746
4747 2010-11-04  Alan Modra  <amodra@gmail.com>
4748
4749         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4750         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4751         TARGET_SECURE_PLT.
4752         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4753         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4754         on input, "r" on output.
4755
4756 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4757
4758         Implemented -fobjc-std=objc1 flag.
4759         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4760         option.
4761         * doc/standards.texi (Standards): Updated the section on
4762         Objective-C; mention support for Objective-C 2.0 features and the
4763         new -fstd-objc=objc1 flag to disable them.
4764
4765 2010-11-03  Richard Guenther  <rguenther@suse.de>
4766
4767         PR middle-end/46241
4768         * dwarf2out.c (scope_die_for): Properly detect global scope.
4769
4770 2010-11-03  Richard Guenther  <rguenther@suse.de>
4771
4772         PR tree-optimization/46190
4773         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4774         Properly compute peel iterations.
4775
4776 2010-11-03  Richard Guenther  <rguenther@suse.de>
4777
4778         PR tree-optimization/46286
4779         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4780         re-allocated vector data.
4781
4782 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4783
4784         PR target/46285
4785         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4786         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4787         is completed.
4788
4789 2010-11-03  Richard Guenther  <rguenther@suse.de>
4790
4791         PR tree-optimization/46217
4792         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4793         flag matches.
4794         (execute_update_addresses_taken): Likewise.
4795
4796 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4797
4798         PR bootstrap/44335
4799         * targhooks.c (targhook_words_big_endian): New function.
4800         (targhook_float_words_big_endian): Likewise.
4801         * targhooks.h (targhook_words_big_endian): Declare.
4802         (targhook_float_words_big_endian): Likewise.
4803         * target.def (words_big_endian, float_words_big_endian): New hooks.
4804
4805 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4806
4807         PR tree-optimization/46165
4808         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4809         a normal call into noreturn call.
4810
4811 2010-11-03  Richard Guenther  <rguenther@suse.de>
4812
4813         PR middle-end/46251
4814         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4815         not INDIRECT_REFs.
4816
4817 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4818
4819         PR tree-optimization/46107
4820         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4821         if cfg_hook_duplicate_loop_to_header_edge failed.
4822
4823 2010-11-03  Ian Lance Taylor  <iant@google.com>
4824
4825         PR lto/46273
4826         * config.gcc: Don't set lto_binary_reader.
4827         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4828         (Configuration): Mention --disable-lto.  Remove --with-libelf
4829         paragraph.
4830
4831 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4832
4833         PR debug/46252
4834         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4835         prev_real_insn.
4836         * gcse.c (insert_insn_end_basic_block): Likewise.
4837
4838         PR rtl-optimization/46034
4839         PR rtl-optimization/46212
4840         PR rtl-optimization/46248
4841         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4842         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4843         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4844         argument to subst on i2pat.
4845
4846 2010-11-02  Ian Lance Taylor  <iant@google.com>
4847
4848         * configure.ac: Use AC_SYS_LARGEFILE.
4849         * configure: Rebuild.
4850         * config.in: Rebuild.
4851
4852 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4853
4854         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4855         fold_convert.
4856         * c-typeck.c (build_function_call_vec): Likewise.
4857         * cfgexpand.c (expand_debug_expr): Likewise.
4858         * cgraphunit.c (assemble_thunk): Likewise.
4859         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4860         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4861         (fold_binary_loc, fold_ternary_loc): Likewise.
4862         * gimple-fold.c (get_symbol_constant_value): Likewise.
4863         * gimple-low.c (lower_builtin_setjmp): Likewise.
4864         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4865         * gimplify.c (gimplify_init_constructor): Likewise.
4866         * lambda.h (build_linear_expr): Likewise.
4867         * omp-low.c (omp_reduction_init): Likewise.
4868         * tree-inline.c (remap_ssa_name): Likewise.
4869         * tree-object-size.c (compute_object_sizes): Likewise.
4870         * tree-sra.c (init_subtree_with_zero): Likewise.
4871         (sra_ipa_modify_assign): Likewise.
4872         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4873         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4874         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4875         (undistribute_ops_list): Likewise.
4876         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4877         * tree-vect-stmts.c (vectorizable_call): Likewise.
4878         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4879         (build_zero_cst): Handle more cases directly.  Update comment.
4880
4881 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4882
4883         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4884         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4885
4886         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4887         and call ix86_split_call_vzeroupper instead of
4888         ix86_split_call_pop_vzeroupper.
4889         (*call_pop_1_vzeroupper): Likewise.
4890         (*sibcall_pop_1_vzeroupper): Likewise.
4891         (*call_value_pop_0_vzeroupper): Likewise.
4892         (*call_value_pop_1_vzeroupper): Likewise.
4893         (*sibcall_value_pop_1_vzeroupper): Likewise.
4894
4895 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4896
4897         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4898
4899 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4900
4901         * basic-block.h (insert_insn_end_bb_new): Delete.
4902         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4903
4904 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4905             H.J. Lu  <hongjiu.lu@intel.com>
4906
4907         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4908         (ix86_split_call_pop_vzeroupper): Likewise.
4909
4910         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4911         (ix86_expand_call): Conditionally decorate calls with
4912         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4913         (ix86_split_call_vzeroupper): New.
4914         (ix86_split_call_pop_vzeroupper): Likewise.
4915
4916         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4917         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4918         (*call_pop_1_vzeroupper): Likewise.
4919         (*sibcall_pop_1_vzeroupper): Likewise.
4920         (*call_0_vzeroupper): Likewise.
4921         (*call_1_vzeroupper): Likewise.
4922         (*sibcall_1_vzeroupper): Likewise.
4923         (*call_1_rex64_vzeroupper): Likewise.
4924         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4925         (*call_1_rex64_large_vzeroupper): Likewise.
4926         (*sibcall_1_rex64_vzeroupper): Likewise.
4927         (*call_value_pop_0_vzeroupper): Likewise.
4928         (*call_value_pop_1_vzeroupper): Likewise.
4929         (*sibcall_value_pop_1_vzeroupper): Likewise.
4930         (*call_value_0_vzeroupper): Likewise.
4931         (*call_value_0_rex64_vzeroupper): Likewise.
4932         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4933         (*call_value_1_vzeroupper): Likewise.
4934         (*sibcall_value_1_vzeroupper): Likewise.
4935         (*call_value_1_rex64_vzeroupper): Likewise.
4936         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4937         (*call_value_1_rex64_large_vzeroupper): Likewise.
4938         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4939
4940 2010-11-02  Ian Lance Taylor  <iant@google.com>
4941
4942         PR lto/46273
4943         * config.gcc: Revert last patch: set lto_binary_reader.
4944
4945 2010-11-02  Richard Guenther  <rguenther@suse.de>
4946
4947         PR tree-optimization/46149
4948         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4949         non-indirect MEM_REF variants.
4950
4951 2010-11-02  Richard Guenther  <rguenther@suse.de>
4952
4953         PR tree-optimization/46216
4954         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4955         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4956
4957 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4958
4959         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4960         (*-*-osf*): Likewise.
4961         * configure: Regenerate.
4962
4963 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4964
4965         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4966         for Intel Core 2 and Core i7.
4967
4968 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4969
4970         Model decoder of Core 2/i7 for multipass scheduling.
4971
4972         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4973         New type to hold target-specific data for multipass scheduling.
4974         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4975         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4976         Core 2/i7.
4977         (core2i7_secondary_decoder_max_insn_size,)
4978         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4979         New static variables.
4980         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4981         ([_]ix86_first_cycle_multipass_data): New static variable.
4982         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4983         Implement targetm.sched hooks.
4984         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4985         of ...
4986         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
4987         Implement new targetm.sched hooks.
4988         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
4989         targetm.sched hook to install multipass scheduling hooks on demand.
4990
4991         * doc/tm.texi.in: Document new targetm.sched hooks.
4992         * doc/tm.texi: Regenerate.
4993
4994         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4995         (first_cycle_multipass_data_t): New typedef.
4996         (struct choice_entry: target_data): New field.
4997         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
4998         to allow target model restrictions not represented in DFA.
4999         (choose_ready, schedule_block): Update.
5000         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5001         hooks to initialize target-specific data for multipass scheduling.
5002         * sched-int.h (max_issue): Update declaration.
5003         * sel-sched.c (choose_best_insn): Update.
5004         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5005         (first_cycle_multipass_{init, fini}): Define and document new
5006         targetm.sched hooks.
5007
5008 2010-11-02  Richard Guenther  <rguenther@suse.de>
5009
5010         PR tree-optimization/46184
5011         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5012         input vector type from the reduction operand as well.
5013
5014 2010-11-02  Richard Guenther  <rguenther@suse.de>
5015
5016         PR tree-optimization/46177
5017         * tree-loop-distribution.c (prop_phis): Use
5018         mark_virtual_phi_result_for_renaming.
5019
5020 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5021
5022         PR middle-end/46120
5023         * tree.c (get_binfo_at_offset): Bail out on artificial
5024         fields.  Identify primary bases according to their offsets.
5025
5026 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5027
5028         PR tree-optimization/45875
5029         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5030         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5031         their field offset.
5032
5033 2010-11-02  Ian Lance Taylor  <iant@google.com>
5034
5035         * doc/install.texi (Configuration): Note in two places that Java
5036         is not enabled by default.
5037
5038 2010-11-02  Ian Lance Taylor  <iant@google.com>
5039
5040         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5041         (Configuration): Mention --disable-lto.  Remove --with-libelf
5042         paragraph.
5043
5044 2010-11-02  Ian Lance Taylor  <iant@google.com>
5045
5046         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5047         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5048         LIBELFINC.  Remove HAVE_libelf.
5049         * config.gcc: Don't set lto_binary_reader.
5050         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5051         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5052         (LIBS): Remove $(LIBELFLIBS).
5053         (INCLUDES): Remove $(LIBELFINC).
5054         * configure: Rebuild.
5055         * config.in: Rebuild.
5056
5057 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5058
5059         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5060         (function_arg_advance): Delete.
5061         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5062         (FUNCTION_ARG): Delete.
5063         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5064         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5065         const_tree and a bool.
5066         (function-arg): Rename to...
5067         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5068         and a bool.
5069         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5070         targetm.calls.function_arg_advance.
5071         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5072
5073 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5074
5075         Merge from FSF "apple/trunk" branch.
5076
5077         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5078         * config/darwin.opt: .. to here.
5079         (matt-stubs): New option.
5080         * config/i386/darwin.opt: Delete.
5081         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5082         (MACHO_DYNAMIC_NO_PIC_P): New.
5083         (MACHOPIC_INDIRECT): New.
5084         (MACHOPIC_PURE): New.
5085         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5086         (MACHOPIC_ATT_STUB): New.
5087         (CC1_SPEC): Do not remove mdynamic-no-pic.
5088         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5089         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5090         (FUNCTION_PROFILER): Correct over-length line.
5091         (SUBTARGET_OVERRIDE_OPTIONS): New.
5092         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5093         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5094         (legitimate_constant_p): Handle mdynamic-no-pic.
5095         (ix86_legitimate_address_p): Likewise.
5096         (ix86_legitimize_address): Likewise.
5097         (ix86_expand_move): Likewise.
5098         (machopic_output_stub): Update for ATT-style stubs and
5099         mdynamic-no-pic.
5100         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5101         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5102         TARGET_DYNAMIC_NO_PIC: Remove.
5103         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5104         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5105         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5106         Remove handling of mdynamic-no-pic.
5107         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5108         Define if required.
5109         (machopic_symbol_defined_p): Do not try to use current_function_decl
5110         when generating _get_pc thunks within stubs.
5111         (machopic_indirect_data_reference): Rework for direct conditionals
5112         rather than #ifdefs, add x86 mdynamic-no-pic
5113         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5114         defined value.
5115         (darwin_override_options): Handle mdynamic-no-pic here.
5116         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5117         (machopic_lazy_symbol_ptr3_section): New.
5118         (machopic_picsymbol_stub2_section): New.
5119         (machopic_picsymbol_stub3_section): New.
5120         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5121         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5122         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5123         Moved common definition from x86 and rs6000.
5124         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5125         (MACHOPIC_INDIRECT): Likewise.
5126         (MACHOPIC_PURE): Likewise.
5127         * config.gcc (x86-darwin-*): Remove darwin.opt.
5128
5129 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5130
5131         PR debug/46255
5132         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5133         instead of gsi_last_bb.
5134
5135 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5136             Maxim Kuvyrkov  <maxim@codesourcery.com>
5137
5138         * config/i386/i386.c (cpu_names): Add "corei7".
5139         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5140
5141 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5142             Maxim Kuvyrkov  <maxim@codesourcery.com>
5143
5144         Tune alignment for Intel Core i7
5145
5146         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5147         (enum processor_type): Update comment.  Add entries for Core i7.
5148         * config/i386-c.c (ix86_target_macros_internal): Update.
5149         * config/i386.c (m_COREI7{_32,_64}): New macros.
5150         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5151         (processor_target_table): Tune alignment for Core i7.
5152         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5153
5154         * doc/invoke.texi: Document "corei7" option value.
5155
5156 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5157             Maxim Kuvyrkov  <maxim@codesourcery.com>
5158             H.J. Lu  <hjl.tools@gmail.com>
5159
5160         Basic support for Intel Core i7
5161
5162         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5163         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5164
5165 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5166
5167         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5168         sections and call darwin_asm_dwarf_section() to handle them.
5169         (darwin_asm_dwarf_section): New.
5170         (darwin_file_start): Remove code emitting dwarf section symbols.
5171
5172 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5173
5174         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5175         explicitly disable stack protection when building libgcc.
5176         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5177
5178 2010-11-01  Jason Merrill  <jason@redhat.com>
5179
5180         * fold-const.c (fold_indirect_ref_1): Handle folding
5181         POINTER_PLUS_EXPR to ARRAY_REF.
5182
5183 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5184
5185         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5186         (sh_delegitimize_address): New function.
5187
5188 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5189
5190         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5191         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5192         (CC1_SPEC): Don't handle -target.
5193         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5194         options.
5195         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5196         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5197         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5198         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5199         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5200         Zweak_reference_mismatches, client_name, compatibility_version,
5201         current_version, dylinker_install_name, pagezero_size,
5202         read_only_relocs, seg1addr, segs_read_only_addr,
5203         segs_read_write_addr, sub_library, sub_umbrella): New.
5204         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5205         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5206         * config/freebsd.opt: New.
5207         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5208         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5209         * config/rpath.opt: New.
5210         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5211         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5212         Use rpath.opt.
5213
5214 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5215
5216         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5217         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5218         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5219         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5220         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5221         Document that options in .opt files do not need to be included.
5222         * doc/tm.texi: Regenerate.
5223         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5224         * opts-common.c: Update comment on tm.h include.
5225         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5226         * system.h (SWITCH_TAKES_ARG): Poison.
5227         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5228         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5229         in darwin.opt.
5230         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5231         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5232         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5233         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5234         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5235         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5236         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5237         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5238         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5239         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5240         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5241         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5242         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5243         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5244         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5245         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5246         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5247         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5248         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5249         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5250         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5251         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5252         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5253         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5254
5255 2010-11-01  Paul Koning  <ni1d@arrl.net>
5256
5257         * config/pdp11/pdp11.md: Use iterators.
5258         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5259
5260 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5261
5262         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5263         GCC_INSN_FLAGS_H.
5264         * libgcov.c (__gcov_indirect_call_profiler): Set
5265         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5266         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5267
5268 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5269
5270         PR tree-optimization/46259
5271
5272         Revert:
5273         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5274         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5275         build_vector_from_val.
5276
5277 2010-11-01  DJ Delorie  <dj@redhat.com>
5278
5279         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5280         as well as an assertion.
5281
5282 2010-11-01  Paul Koning  <ni1d@arrl.net>
5283
5284         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5285         complex modes in memory.
5286
5287 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5288
5289         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5290
5291 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5292
5293         PR target/45250
5294         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5295         (cfa_base_offset): New variable.
5296         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5297         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5298         is NULL.
5299         (vt_init_cfa_base): Initialize cfa_base_offset.
5300
5301 2010-11-01  Alan Modra  <amodra@gmail.com>
5302
5303         PR target/46030
5304         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5305         and savres_strategy.
5306         (stack_info): New file scope var.
5307         (rs6000_init_machine_status): Init stack_info.
5308         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5309         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5310         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5311         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5312         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5313         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5314         (rs6000_savres_strategy): Rewrite.
5315         (rs6000_stack_info): Use "stack_info" in place of local "info".
5316         Return cached stack info when reload_completed unless ENABLE_CHECKING
5317         in which case confirm newly calculated stack info matches old info.
5318         Delay calculation of lr_save_p, set it for out of line gp save/restore
5319         as well as fp.  Call rs6000_savres_strategy from here..
5320         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5321         (rs6000_output_function_prologue): Use info->savres_strategy to
5322         determine whether fp save/restore externs need to be emitted.
5323
5324 2010-10-31  Jason Merrill  <jason@redhat.com>
5325
5326         * tree.h (EXPR_LOC_OR_HERE): New macro.
5327         * builtins.c (c_strlen): Use it.
5328         * c-decl.c (build_enumerator): Likewise.
5329         * gimplify.c (internal_get_tmp_var): Likewise.
5330         (shortcut_cond_expr): Likewise.
5331         (gimplify_one_sizepos): Likewise.
5332
5333 2010-10-31  Richard Henderson  <rth@redhat.com>
5334
5335         * config/i386/cygming.h (TARGET_SEH): New.
5336         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5337         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5338         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5339         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5340         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5341         (ASM_DECLARE_FUNCTION_SIZE): New.
5342         * config/i386/i386-protos.h: Update.
5343         * config/i386/i386.c (ix86_option_override_internal): Enable
5344         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5345         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5346         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5347         (ix86_compute_frame_layout): For SEH, disable
5348         use_fast_prologue_epilogue, move frame pointer to the end of
5349         the frame.  Initialize hfp_save_offset.
5350         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5351         at end of prologue for SEH.
5352         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5353         emit blockage at beginning of epilogue.
5354         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5355         (ix86_output_call_insn): New.
5356         * config/i386/i386.h (TARGET_SEH): New.
5357         (struct machine_function): Add member seh.
5358         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5359         * config/i386/winnt.c (struct seh_frame_state): New.
5360         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5361         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5362         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5363         i386_pe_start_function, i386_pe_end_function): New.
5364
5365         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5366         as CFA_STORE in rules 12 and 13.
5367
5368 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5369
5370         PR tree-optimization/46142
5371         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5372         accommodate third function argument.
5373
5374 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5375
5376         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5377
5378 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5379
5380         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5381         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5382         (get_initial_def_for_reduction): Likewise.
5383         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5384         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5385         * tree.c (build_one_cst): Likewise.
5386         (build_vector_from_val): Use types_compatible_p for assert.
5387
5388 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5389
5390         * emit-rtl.c (mark_used_flags): New function.
5391         (set_used_flags, reset_used_flags): Call it.
5392
5393 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5394
5395         PR middle-end/44569
5396         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5397         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5398
5399 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5400
5401         PR target/46195
5402         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5403         (ix86_compat_aligned_value_p): This.
5404         (ix86_old_function_arg_boundary): Renamed to ...
5405         (ix86_compat_function_arg_boundary): This.  Updated.
5406         (ix86_contains_aligned_value_p): New.
5407         (ix86_function_arg_boundary): Align long double parameters on
5408         stack to 4byte in 32bit.
5409
5410 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5411
5412         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5413         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5414         parsing of RID_COPIES and RID_IVAR.  Updated call to
5415         objc_add_property_declaration.
5416         * c-typecheck.c (build_component_ref): Call
5417         objc_maybe_build_component_ref instead of objc_build_setter_call.
5418         Use objc_is_property_ref to improve Objective-C checks.
5419         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5420         of objc_build_getter_call.
5421
5422 2010-10-29  Paul Koning  <ni1d@arrl.net>
5423
5424         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5425         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5426         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5427         (REG_OK_STRICT): Move description.
5428
5429 2010-10-29  Paul Koning  <ni1d@arrl.net>
5430
5431         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5432
5433 2010-10-29  Paul Koning  <ni1d@arrl.net>
5434
5435         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5436
5437 2010-10-29  Paul Koning  <ni1d@arrl.net>
5438
5439         PR/41822
5440         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5441
5442 2010-10-29  Richard Henderson  <rth@redhat.com>
5443
5444         PR rtl-opt/46226
5445         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5446         for asm goto.
5447
5448 2010-10-29  Paul Koning  <ni1d@arrl.net>
5449
5450         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5451         register to register move.
5452
5453 2010-10-29  Paul Koning  <ni1d@arrl.net>
5454
5455         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5456         of integer constant addresses, delete vax-only logic.
5457
5458 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5459
5460         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5461         a conditional expression.
5462
5463 2010-10-29  Paul Koning  <ni1d@arrl.net>
5464
5465         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5466         instruction encoding.
5467
5468 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5469             Andrew Pinski  <pinskia@gmail.com>
5470
5471         * tree.h (build_vector_from_val): Declare.
5472         * tree.c (build_vector_from_val): New function.
5473         * c-typeck.c (build_binary_op): Handle vector shifting.
5474         * doc/extend.texi: Description of the vector shifting operation.
5475
5476 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5477
5478         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5479         pdp11_secondary_memory_needed): Declare.
5480         * config/pdp11/predicates.md (float_operand): New predicate.
5481         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5482         (cbranchdf4, movdf): Change predicate.
5483         (movsf): Handle FPU register case.
5484         (truncdfsf2, extendsfdf2): Add FPU register case.
5485         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5486         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5487         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5488         (pdp11_register_move_cost): Update cost matrix.
5489         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5490         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5491         pdp11_secondary_memory_needed): New function.
5492         (pdp11_return_in_memory): Add other float types.
5493         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5494         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5495         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5496         REGISTER_MOVE_COST): Delete.
5497         (BASE_RETURN_VALUE_REG): Add other float types.
5498
5499 2010-10-29  Nick Clifton  <nickc@redhat.com>
5500
5501         * doc/invoke.texi: Document -mam34 and -mtune options.
5502         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5503         (mn10300_tune_cpu): New variable.
5504         (mn10300_handle_option): Handle -mam34 and -mtune options.
5505         (mn10300_option_override): Convert tune string into tune cpu variable.
5506         (mn10300_legitimate_constant_p): Delete unused local variable.
5507         (is_load_insn): New function.
5508         (is_store_insn): New function.
5509         (mn10300_adjust_schedule_cost): New function.
5510         (TARGET_SCHED_ADJUST_COST): Define.
5511         * config/mn10300/mn10300.opt (mam34): New option.
5512         (mtune): New option.
5513         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5514         (enum processor_type): Add AM34.
5515         (TARGET_AM34): Define.
5516         * config/mn10300/mn10300.md (attr cpu): Add am34.
5517         Add pipeline description.
5518         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5519         Remove unneeded alternatives.  Add timing attribute.
5520         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5521         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5522         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5523         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5524         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5525         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5526         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5527         float_conditional_branch, jump, indirect_jump, tablejump,
5528         call_internal, call_value_internal, zero_extendqisi2_am33,
5529         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5530         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5531         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5532         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5533         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5534         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5535         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5536         return_internal_regs, store_movm, return, call_next_insn):
5537         Add timing attribute.
5538         (am33_subsi3): Add missing clobber of CC_REG.
5539         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5540         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5541         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5542         extendqisi2): Fix predicates.
5543         (call_internal, call_internal_value): Separate alternatives.
5544         * config/mn10300/t-mn10300: Add AM34 multilib.
5545
5546 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5547
5548         * config/sh/sh.c (sh_promote_function_mode): Use
5549         default_promote_function_mode if !sh_promote_prototypes.
5550
5551 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5552
5553         * recog.c (split_all_insns): Remove dead code.
5554
5555 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5556
5557         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5558
5559 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5560
5561         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5562         (FUNCTION_ARG_ADVANCE): Delete.
5563         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5564         functions.
5565         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5566         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5567         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5568
5569 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5570
5571         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5572         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5573         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5574         Take a const_tree and a bool.
5575         (mcore_function_arg_advance): New function.
5576         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5577
5578 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5579
5580         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5581         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5582         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5583         Take a const_tree and a bool.
5584         (mcore_function_arg_advance): New function.
5585         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5586
5587 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5588
5589         * config/h8300/h8300-protos.h (function_arg): Delete.
5590         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5591         * config/h8300/h8300.c (function_arg): Rename to...
5592         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5593         a bool.
5594         (h8300_function_arg_advance): New function.
5595         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5596
5597 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5598
5599         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5600         to...
5601         * config/arc/arc.c (arc_function_arg): ...here and...
5602         (arc_function_arg_advance): ...here.  New functions.
5603         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5604
5605 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5606
5607         * config/crx/crx-protos.h (crx_function_arg): Delete.
5608         (crx_function_arg_advance): Delete.
5609         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5610         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5611         const_tree and a bool.
5612         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5613         (enough_regs_for_param): Take a const_tree.
5614         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5615
5616 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5617
5618         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5619         (m68hc11_function_arg_advance): Delete.
5620         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5621         (FUNCTION_ARG_ADVANCE): Delete.
5622         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5623         Take a const_tree and a bool.
5624         (m68hc11_function_arg_advance): Likewise.
5625         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5626
5627 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5628
5629         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5630         (xstormy16_function_arg_advance): Delete.
5631         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5632         (FUNCTION_ARG_ADVANCE): Delete.
5633         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5634         Take a const_tree and a bool.
5635         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5636         the CUM parameter instead.
5637         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5638
5639 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5640
5641         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5642         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5643         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5644         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5645         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5646         (moxie_function_arg_advance): New function.
5647         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5648
5649 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5650
5651         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5652         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5653         (FUNCTION_ARG_ADVANCE): Delete.
5654         * config/mn10300/mn10300.c (function_arg): Rename to...
5655         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5656         and a bool.
5657         (mn10300_function_arg_advance): New function.
5658         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5659
5660 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5661
5662         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5663         (function_arg_advance): Delete.
5664         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5665         * config/iq2000/iq2000.c (function_arg): Rename to...
5666         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5667         a bool.
5668         (function_arg_advance): Rename to...
5669         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5670         const_tree and a bool.
5671         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5672         iq2000_function_arg.
5673         (iq2000_pass_by_reference): Call iq2000_function_arg).
5674         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5675
5676 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5677
5678         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5679         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5680         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5681         const_tree.
5682         (fr30_function_arg): New function.
5683         (fr30_function_arg_advance): New function.
5684         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5685
5686 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5687
5688         * config/frv/frv-protos.h (frv_function_arg): Delete.
5689         (frv_function_arg_advance): Delete.
5690         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5691         * config/frv/frv.c (frv_function_arg): Rename to...
5692         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5693         (frv_function_arg, frv_function_incoming_arg): New functions.
5694         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5695         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5696         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5697
5698 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5699
5700         PR target/46153
5701         * config/i386/sse.md (sse_movhlps_exp): Use destination
5702         returned from ix86_fixup_binary_operands to expand insn.
5703         (sse_movlhps_exp): Ditto.
5704         (sse_loadhps_exp): Ditto.
5705         (sse_loadlps_exp): Ditto.
5706         (sse2_loadhpd_exp): Ditto.
5707         (sse2_loadlpd_exp): Ditto.
5708
5709 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5710
5711         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5712         constants in thumb2.
5713
5714 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5715
5716         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5717         arithmetics in masking operations.
5718         (contains_muldiv): Likewise.
5719         (try_combine): Likewise.
5720         (find_split_point): Likewise.
5721         (combine_simplify_rtx): Likewise.
5722         (simplify_if_then_else): Likewise.
5723         (simplify_set): Likewise.
5724         (expand_compound_operation): Likewise.
5725         (expand_field_assignment): Likewise.
5726         (make_extraction): Likewise.
5727         (extract_left_shift): Likewise.
5728         (make_compound_operation): Likewise.
5729         (force_to_mode): Likewise.
5730         (make_field_assignment): Likewise.
5731         (reg_nonzero_bits_for_combine): Likewise.
5732         (simplify_shift_const_1): Likewise.
5733         (simplify_comparison): Likewise.
5734
5735 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5736
5737         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5738         (ia64_function_arg_advance): Delete.
5739         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5740         (FUNCTION_ARG_ADVANCE): Delete.
5741         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5742         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5743         bool arguments.
5744         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5745         (ia64_function_arg_advance): Make static.  Take a const_tree and
5746         a bool.
5747         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5748         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5749
5750 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5751
5752         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5753         (TARGET_GET_RAW_ARG_MODE): New.
5754         * doc/tm.texi: Regenerate.
5755         * target.def (get_raw_result_mode): New.
5756         (get_raw_arg_mode): New.
5757         * targhooks.c (default_get_reg_raw_mode): New.
5758         * targhooks.h (default_get_reg_raw_mode): New.
5759         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5760         (apply_result_size): Ditto.
5761         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5762         (TARGET_GET_RAW_RESULT_MODE): Define.
5763         (TARGET_GET_RAW_ARG_MODE): Ditto.
5764
5765 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5766
5767         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5768         for newer Solaris 10 release.
5769         (sparc_fallback_frame_state): Likewise.
5770
5771 2010-10-27  Jason Merrill  <jason@redhat.com>
5772
5773         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5774         variables sooner.
5775
5776 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5777             Maxim Kuvyrkov  <maxim@codesourcery.com>
5778
5779         * haifa-sched.c (ISSUE_POINTS): Remove.
5780         (max_issue): Don't issue more than issue_rate instructions.
5781
5782 2010-10-27  Ian Lance Taylor  <iant@google.com>
5783
5784         PR target/46197
5785         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5786         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5787         UNSPECV_SPLIT_STACK_RETURN.
5788
5789 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5790
5791         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5792
5793         * config/i386/i386.c (block_info): New.
5794         (BLOCK_INFO): Likewise.
5795         (call_avx256_state): Likewise.
5796         (check_avx256_stores): Likewise.
5797         (move_or_delete_vzeroupper_2): Likewise.
5798         (move_or_delete_vzeroupper_1): Likewise.
5799         (move_or_delete_vzeroupper): Likewise.
5800         (use_avx256_p): Likewise.
5801         (function_pass_avx256_p): Likewise.
5802         (flag_opts): Add -mvzeroupper.
5803         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5804         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5805         is disabled.
5806         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5807         generate vzeroupper.
5808         (init_cumulative_args): Add an int to indicate caller.  Set
5809         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5810         based on return type.
5811         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5812         caller_pass_avx256_p based on argument type.
5813         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5814         is used, but not returned by caller.
5815         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5816         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5817         is used.
5818         (ix86_minimum_alignment): Likewise.
5819         (ix86_expand_special_args_builtin): Set target to
5820         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5821         (ix86_reorg): Run the vzeroupper optimization if needed.
5822
5823         * config/i386/i386.h (ix86_args): Add caller.
5824         (INIT_CUMULATIVE_ARGS): Updated.
5825         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5826         caller_pass_avx256_p, caller_return_avx256_p,
5827         callee_pass_avx256_p and callee_return_avx256_p.
5828
5829         * config/i386/i386.opt (-mvzeroupper): New.
5830
5831         * config/i386/predicates.md (vzeroupper_operation): Removed.
5832
5833         * config/i386/sse.md (avx_vzeroupper): Removed.
5834         (*avx_vzeroupper): Removed.
5835         (avx_vzeroupper): New.
5836
5837         * doc/invoke.texi: Document -mvzeroupper.
5838
5839 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5840
5841         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5842         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5843         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5844
5845 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5846             Olivier Hainque  <hainque@adacore.com>
5847
5848         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5849         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5850         fs->signal_frame instead.
5851
5852 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5853
5854         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5855         parsing of RID_COPIES and RID_IVAR.
5856
5857 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5858
5859         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5860         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5861         Do not use objc_set_property_attr, but use local variables
5862         instead.  Detect repeated usage of setter, getter and ivar
5863         attributes.  Improved error processing when a setter name does not
5864         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5865         that the token is a keyword.  Updated call to
5866         objc_add_property_declaration.
5867
5868 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5869
5870         * c-parser.c (c_parser_objc_at_property): Renamed to
5871         c_parser_objc_at_property_declaration.  Updated calls to
5872         objc_add_property_variable, now objc_add_property_declaration.
5873         Code rewritten to be much more robust in recovering from syntax
5874         errors.  Added comments.
5875         (c_parser_objc_property_attrlist): Removed.
5876         (c_parser_external_declaration): Updated calls to
5877         c_parser_objc_at_property, now
5878         c_parser_objc_at_property_declaration.
5879         (c_parser_objc_methodprotolist): Same change.
5880
5881 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5882
5883         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5884
5885 2010-10-26  Jan Hubicka  <jh@suse.cz>
5886
5887         * ipa.c (process_references): Enqueue all referenced nodes;
5888         mark as reachable only non-external nodes.
5889         (cgraph_remove_unreachable_nodes): All referenced nodes should
5890         be enqueued; remove bogues node->needed check.
5891
5892 2010-10-26  Jan Hubicka  <jh@suse.cz>
5893
5894         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5895         to represent OMP.
5896
5897 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5898
5899         * config/i386/i386.md (split_stack_return): Replace
5900         unspec_volatile with unspec.
5901
5902 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5903
5904         * doc/install.texi: Fix typo in --with-sysroot description.
5905
5906 2010-10-26  Jan Hubicka  <jh@suse.cz>
5907
5908         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5909         Use info provided by linker plugin.
5910
5911 2010-10-26  Jason Merrill  <jason@redhat.com>
5912
5913         * varasm.c (constructor_static_from_elts_p): Don't require a
5914         CONSTRUCTOR to have elements to be suitable for static
5915         initialization.  Allow ARRAY_TYPE as well.
5916
5917 2010-10-26  Jan Hubicka  <jh@suse.cz>
5918
5919         PR middle-end/45736
5920         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5921         (cgraph_set_const_flags) ... this one; get also looping argument;
5922         clear constructor/destructor flags.
5923         (cgraph_set_pure_flag): Likewise.
5924         (cgraph_set_looping_const_or_pure_flag): Remove.
5925         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5926         to optimize away static ctors/dtors; it does not work on inline clones;
5927         external functions can always be rmeoved.
5928         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5929         inline clones; in LTO external functions always can go.
5930         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5931         (cgraph_mark_address_taken_node): Assert that we are not taking
5932         address of inline clone.
5933         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5934         external functions.
5935         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5936         address taken.
5937         (ipcp_initialize_node_lattices): Only local functions can be
5938         handled without cloning.
5939         * cgraph.h (cgraph_set_readonly_flag,
5940         cgraph_set_looping_const_or_pure_flag): Remove.
5941         (cgraph_set_const_flag): Declare.
5942         (cgraph_set_pure_flag): Update.
5943         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5944         flags setting code.
5945         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5946         look at inline clones; fix handling of external definitions.
5947         (cgraph_postorder): Do not look at inline clones in the first pass.
5948         (function_and_variable_visibility): Drop constructors/destructor
5949         flags at pure and const functions.
5950         * tree-profile.c (tree_profiling): Update.
5951         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5952         address taken; external functions do not account to whole program size.
5953         (cgraph_decide_inlining): Likewise; do not try to inline
5954         functions already inlined.
5955
5956 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5957
5958         * doc/invoke.texi: Improve documentation of
5959         -fstrict-volatile-bitfields.
5960
5961 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5962
5963         PR tree-optimization/46167
5964         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5965         is basic block for the statement.
5966
5967 2010-10-26  Paul Koning  <ni1d@arrl.net>
5968
5969         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5970         current definition of struct_real_format.
5971
5972 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5973
5974         PR target/44948
5975         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5976         (ix86_function_arg_boundary): Always align parameters on stack
5977         in 64bit and align parameters with alignment >= 16byte on stack
5978         in 32bit.  Warn alignment change.
5979
5980 2010-10-26  Ian Lance Taylor  <iant@google.com>
5981
5982         PR middle-end/45687
5983         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5984         offset.
5985
5986 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5987
5988         Implement opaque-enum-specifiesr for C++0x
5989         * tree.h (ENUM_IS_OPAQUE): New.
5990         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
5991
5992 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5993
5994         * stor-layout.c (layout_decl): Use the field's type to
5995         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
5996         * config/arm/arm.c (arm_override_options): Default to
5997         -fstrict-volatile-bitfields.
5998
5999 2010-10-25  Paul Koning  <ni1d@arrl.net>
6000
6001         * config/pdp11/pdp11.md: Add define_constants for register
6002         numbers, branch offset limits.
6003         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6004         * config/pdp11.pdp11.h: Ditto.
6005
6006 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6007
6008         * configure.ac: Use $cpu_type instead of $target to define the nop.
6009         * configure: Regenerate.
6010
6011 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6012
6013         * combine.c (try_combine): If insns need to be kept around, check that
6014         they can be copied in the merged instruction.
6015
6016 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6017
6018         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6019         has been modified.
6020         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6021         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6022         it has been modified.
6023
6024 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6025
6026         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6027
6028 2010-10-24  Paul Koning  <ni1d@arrl.net>
6029
6030         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6031         * config/pdp11/pdp11.c (output_jump): Ditto.
6032
6033 2010-10-24  Ian Lance Taylor  <iant@google.com>
6034
6035         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6036
6037 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6038
6039         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6040         least one insn with a locus corresponding to an edge's goto_locus,
6041         disregard non-fallthru edges to the exit block and merge the blocks
6042         created for the same goto_locus.
6043
6044 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6045
6046         * gcc.c (n_switches_alloc_debug_check): New.
6047         (set_option_handlers): New.
6048         (process_command): Use set_option_handlers.
6049         (do_self_spec): Pass spec-generated options through option handlers.
6050         (main): Also save and restore n_switches_alloc when swapping
6051         switch arrays.
6052
6053 2010-10-23  Richard Henderson  <rth@redhat.com>
6054
6055         PR target/46144
6056         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6057         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6058         Honor matching operands when splitting to XOR.
6059
6060 2010-10-23  Ian Lance Taylor  <iant@google.com>
6061
6062         * tree-vrp.c (extract_range_from_binary_expr): If
6063         flag_non_call_exceptions don't eliminate division by zero.
6064         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6065
6066 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6067
6068         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6069         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6070         __ORDER_PDP_ENDIAN__.
6071         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6072         (struct DWstruct): Define based on __BYTE_ORDER__.
6073         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6074         (struct INTstruct): Define based on __BYTE_ORDER__.
6075         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6076         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6077         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6078         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6079         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6080         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6081         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6082         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6083         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6084         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6085         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6086         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6087         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6088         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6089         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6090         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6091         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6092         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6093         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6094         * doc/tm.texi: Regenerate.
6095         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6096         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6097
6098 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6099
6100         PR rtl-optimization/37360
6101         * config/mips/mips.c (cached_can_issue_more): New local variable.
6102         (mips_sched_reorder_1): New.
6103         (mips_sched_reorder): Use mips_sched_reorder_1.
6104         (mips_sched_reorder2): New.
6105         (mips_variable_issue): Set cached_can_issue_more.
6106         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6107         instead of mips_sched_reorder.
6108
6109         Revert:
6110         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6111         PR rtl-optimization/37360
6112         * haifa-sched.c (max_issue): Do not assert that we never issue more
6113         insns than issue_rate.  Add comment.
6114
6115 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6116
6117         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6118         location info of the expression.
6119
6120 2010-10-22  DJ Delorie  <dj@redhat.com>
6121
6122         * doc/extend.texi (Named Address Spaces): Document the M32C named
6123         address space.
6124
6125         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6126         __far address space.
6127         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6128         "__far" address space for R8C and M16C processor variants.
6129         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6130         (far_addr_space_p): New.
6131         (encode_pattern_1): Add sign and zero extend support.
6132         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6133         (m32c_extra_constraint_p2): Add SF constraint.
6134         (m32c_legitimate_address_p): Support __far addresses.
6135         (m32c_addr_space_pointer_mode): New.
6136         (m32c_addr_space_address_mode): New.
6137         (m32c_addr_space_legitimate_address_p): New.
6138         (m32c_addr_space_legitimize_address): New.
6139         (m32c_addr_space_subset_p): New.
6140         (m32c_addr_space_convert): New.
6141         (conversions): Add __far operand patterns.
6142         (m32c_prepare_move): Force constants into registers for __far moves.
6143         (m32c_split_move): __far moves are always split.
6144         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6145         * config/m32c/mov.md (mov<mode>_far_op1): New.
6146         (mov<mode>_far_op2): New.
6147         (movqi_op): Add __far (SF) support.
6148         (movhi_op): Likewise.
6149         (movsi_splittable): Split A1A0 also.
6150
6151 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6152             Andrew Pinski  <pinskia@gmail.com>
6153
6154         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6155         * doc/extend.texi: New paragraph
6156
6157 2010-10-22  Paul Koning  <ni1d@arrl.net>
6158
6159         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6160
6161 2010-10-22  DJ Delorie  <dj@redhat.com>
6162
6163         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6164
6165 2010-10-22  Paul Koning  <ni1d@arrl.net>
6166
6167         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6168
6169 2010-10-22  Richard Henderson  <rth@redhat.com>
6170
6171         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6172         cases for __builtin_fma and __builtin_fmaf.
6173
6174 2010-10-22  Richard Henderson  <rth@redhat.com>
6175
6176         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6177         NEG+USE for vectors as well.
6178         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6179         and splitter.
6180
6181 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6182
6183         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6184         SWITCH_CURTAILS_COMPILATION): Remove.
6185         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6186         * doc/tm.texi: Regenerate.
6187         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6188
6189 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6190
6191         * config/i386/bdver1.md: New file.
6192         * config/i386/i386.md (include "bdver1.md"): Invoke the
6193         pipeline description for bdver1.
6194         (x86_sahf_1): Add "bdver1_decode" attribute.
6195         (*cmpfp_i_mixed): Likewise.
6196         (*cmpfp_i_sse): Likewise.
6197         (*cmpfp_i_i387): Likewise.
6198         (*cmpfp_iu_mixed): Likewise.
6199         (*cmpfp_iu_sse): Likewise.
6200         (*cmpfp_iu_387): Likewise.
6201         (*swap<mode>,*swap<mode>_1): Likewise.
6202         (fixuns_trunc<mode>hi2): Likewise.
6203         (fix_trunc<mode>si_sse): Likewise.
6204         (x86_fnstcw_1): Likewise.
6205         (x86_fldcw_1): Likewise.
6206         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6207         (*floatsi<mode>2_vector_mixed): Likewise.
6208         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6209         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6210         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6211         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6212         (*floatsi<mode>2_vector_sse): Likewise.
6213         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6214         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6215         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6216         (*mul<mode>3_1): Likewise.
6217         (*mulsi3_1_zext): Likewise.
6218         (*mulhi3_1): Likewise.
6219         (*mulqi3_1): Likewise.
6220         (*<u>mul<mode><dwi>3_1): Likewise.
6221         (*<u>mulqihi3_1): Likewise.
6222         (*<s>muldi3_highpart_1): Likewise.
6223         (*<s>mulsi3_highpart_1): Likewise.
6224         (*<s>mulsi3_highpart_zext): Likewise.
6225         (x86_64_shld): Likewise.
6226         (x86_shld): Likewise.
6227         (x86_64_shrd): Likewise.
6228         (x86_shrd): Likewise.
6229         (sqrtxf2): Likewise.
6230         (sqrt_extend<mode>xf2_i387): Likewise.
6231         (*sqrt<mode>2_sse): Likewise.
6232         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6233         (sse_cvtsi2ssq): Likewise.
6234         (sse_cvtss2si): Likewise.
6235         (sse_cvtss2si_2): Likewise.
6236         (sse_cvtss2siq): Likewise.
6237         (sse_cvtss2siq_2): Likewise.
6238         (sse_cvttss2si): Likewise.
6239         (sse_cvttss2siq): Likewise.
6240         (sse2_cvtpi2pd): Likewise.
6241         (sse2_cvttpd2pi): Likewise.
6242         (sse2_cvtsi2sd): Likewise.
6243         (sse2_cvtsi2sdq): Likewise.
6244         (sse2_cvtsd2si): Likewise.
6245         (sse2_cvtsd2si_2): Likewise.
6246         (sse2_cvtsd2siq): Likewise.
6247         (sse2_cvtsd2siq_2): Likewise.
6248         (sse2_cvttsd2si): Likewise.
6249         (sse2_cvttsd2siq): Likewise.
6250         (*sse2_cvtpd2dq): Likewise.
6251         (*sse2_cvttpd2dq): Likewise.
6252         (sse2_cvtsd2ss): Likewise.
6253         (sse2_cvtss2sd): Likewise.
6254         (*sse2_cvtpd2ps): Likewise.
6255         (sse2_cvtps2pd): Likewise.
6256
6257 2010-10-22  Richard Guenther  <rguenther@suse.de>
6258
6259         PR middle-end/46137
6260         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6261         remove the virtual operands if they are not needed.
6262
6263 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6264
6265         * config/i386/i386.c (processor_costs bdver1_cost): Update
6266         insn costs and architectural parameters for bdver1.
6267
6268 2010-10-22  Richard Guenther  <rguenther@suse.de>
6269
6270         * gimple.h (gimple_register_canonical_type): Declare.
6271         * gimple.c (gimple_canonical_types): New global hashtable.
6272         (struct gimple_type_leader_entry_s): New type.
6273         (gimple_type_leader): New global cache.
6274         (gimple_lookup_type_leader): New function.
6275         (gtc_visit): Query the proper cache.
6276         (gimple_types_compatible_p): Likewise.
6277         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6278         (gimple_canonical_type_eq): New function.
6279         (gimple_register_canonical_type): Likewise.
6280         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6281         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6282         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6283         gimple_types_compatible_p for LTO.
6284
6285 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6286
6287         PR target/46098
6288         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6289         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6290         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6291         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6292         (<sse>_movu<ssemodesuffix>): New expander.
6293         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6294         (avx_movdqu<avxmodesuffix>): New expander.
6295         (*sse2_movdqu): Rename from sse2_movdqu.
6296         (sse2_movdqu): New expander.
6297
6298 2010-10-22  Richard Guenther  <rguenther@suse.de>
6299
6300         PR tree-optimization/45720
6301         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6302         Handle negative step.
6303         (vect_enhance_data_refs_alignment): Likewise.
6304         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6305         (vect_create_cond_for_align_checks): Likewise.
6306         (vect_create_cond_for_alias_checks): Likewise.
6307
6308 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6309
6310         PR tree-optimization/46126
6311         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6312         vectorizable_shift in case of basic block vectorization.
6313
6314 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6315
6316         * target.h (enum opt_levels, struct default_options): New.
6317         * target.def (handle_ofast): Remove hook.
6318         (target_option.optimization): Change to
6319         target_option.optimization_table.
6320         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6321         TARGET_OPTION_OPTIMIZATION_TABLE.
6322         (CAN_DEBUG_WITHOUT_FP): Remove.
6323         * doc/tm.texi: Regenerate.
6324         * opts.c (maybe_default_option, maybe_default_options,
6325         default_options_table): New.
6326         (default_options_optimization): Take extra parameters.  Don't
6327         assert that global_options and global_options_set are in use.  Use
6328         maybe_default_options.
6329         (decode_options): Pass extra parameters to
6330         default_options_optimization.
6331         * common.opt (falign-loops): Use value 0 with Var.
6332         (frerun-cse-after-loop, ftree-ter): Remove Init.
6333         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6334         TARGET_OPTION_OPTIMIZATION): Remove.
6335         * targhooks.c (empty_optimization_table): New.
6336         * targhooks.h (empty_optimization_table): Declare.
6337         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6338         * config/alpha/alpha.c (alpha_option_optimization_table,
6339         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6340         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6341         * config/arm/arm.c (arm_option_optimization: Change to
6342         arm_option_optimization_table.
6343         (TARGET_OPTION_OPTIMIZATION): Change to
6344         TARGET_OPTION_OPTIMIZATION_TABLE.
6345         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6346         * config/avr/avr.c (avr_option_optimization_table,
6347         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6348         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6349         * config/cris/cris.c (cris_option_optimization): Change to
6350         cris_option_optimization_table.
6351         (TARGET_OPTION_OPTIMIZATION): Change to
6352         TARGET_OPTION_OPTIMIZATION_TABLE.
6353         * config/crx/crx.c (crx_option_optimization): Change to
6354         crx_option_optimization_table.
6355         (TARGET_OPTION_OPTIMIZATION): Change to
6356         TARGET_OPTION_OPTIMIZATION_TABLE.
6357         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6358         * config/fr30/fr30.c (fr30_option_optimization_table,
6359         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6360         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6361         * config/frv/frv.c (frv_option_optimization_table,
6362         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6363         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6364         * config/h8300/h8300.c (h8300_option_optimization): Change to
6365         h8300_option_optimization_table.
6366         (TARGET_OPTION_OPTIMIZATION): Change to
6367         TARGET_OPTION_OPTIMIZATION_TABLE.
6368         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6369         * config/i386/i386.c (ix86_option_optimization): Change to
6370         ix86_option_optimization_table.
6371         (TARGET_OPTION_OPTIMIZATION): Change to
6372         TARGET_OPTION_OPTIMIZATION_TABLE.
6373         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6374         as initializer.
6375         * config/ia64/ia64.c (ia64_option_optimization): Change to
6376         ia64_option_optimization_table.
6377         (TARGET_OPTION_OPTIMIZATION): Change to
6378         TARGET_OPTION_OPTIMIZATION_TABLE.
6379         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6380         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6381         initializer.
6382         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6383         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6384         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6385         * config/lm32/lm32.c (lm32_option_optimization_table,
6386         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6387         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6388         * config/m32r/m32r.c (m32r_option_optimization): Change to
6389         m32r_option_optimization_table.
6390         (TARGET_OPTION_OPTIMIZATION): Change to
6391         TARGET_OPTION_OPTIMIZATION_TABLE.
6392         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6393         CAN_DEBUG_WITHOUT_FP): Remove.
6394         * config/mcore/mcore.c (mcore_option_optimization): Change to
6395         mcore_option_optimization_table.
6396         (TARGET_OPTION_OPTIMIZATION): Change to
6397         TARGET_OPTION_OPTIMIZATION_TABLE.
6398         * config/mep/mep.c (mep_option_optimization): Change to
6399         mep_option_optimization_table.
6400         (TARGET_OPTION_OPTIMIZATION): Change to
6401         TARGET_OPTION_OPTIMIZATION_TABLE.
6402         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6403         * config/microblaze/microblaze.c
6404         (microblaze_option_optimization_table,
6405         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6406         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6407         * config/mips/mips.c (mips_option_optimization_table,
6408         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6409         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6410         * config/mmix/mmix.c (mmix_option_optimization): Change to
6411         mmix_option_optimization_table.
6412         (TARGET_OPTION_OPTIMIZATION): Change to
6413         TARGET_OPTION_OPTIMIZATION_TABLE.
6414         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6415         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6416         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6417         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6418         * config/pa/pa.c (pa_option_optimization_table,
6419         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6420         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6421         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6422         pdp11_option_optimization_table.
6423         (TARGET_OPTION_OPTIMIZATION): Change to
6424         TARGET_OPTION_OPTIMIZATION_TABLE.
6425         * config/picochip/picochip.c (picochip_option_optimization_table,
6426         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6427         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6428         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6429         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6430         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6431         * config/rx/rx.c (rx_option_optimization_table,
6432         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6433         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6434         * config/s390/s390.c (s390_option_optimization): Change to
6435         s390_option_optimization_table.
6436         (s390_option_override): Update comment.
6437         (TARGET_OPTION_OPTIMIZATION): Change to
6438         TARGET_OPTION_OPTIMIZATION_TABLE.
6439         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6440         * config/score/score.c (score_option_optimization_table,
6441         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6442         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6443         * config/sh/sh.c (sh_option_optimization): Change to
6444         sh_option_optimization_table.
6445         (TARGET_OPTION_OPTIMIZATION): Change to
6446         TARGET_OPTION_OPTIMIZATION_TABLE.
6447         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6448         (sh_option_override, expand_block_move, multcosts, find_barrier,
6449         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6450         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6451         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6452         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6453         instead of TARGET_SMALLCODE.
6454         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6455         * config/sparc/sparc.c (sparc_option_optimization_table,
6456         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6457         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6458         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6459         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6460         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6461         * config/v850/v850.c (v850_option_optimization): Change to
6462         v850_option_optimization_table.
6463         (TARGET_OPTION_OPTIMIZATION): Change to
6464         TARGET_OPTION_OPTIMIZATION_TABLE.
6465         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6466         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6467         xtensa_option_optimization_table.
6468         (TARGET_OPTION_OPTIMIZATION): Change to
6469         TARGET_OPTION_OPTIMIZATION_TABLE.
6470         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6471
6472 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6473
6474         Based on the CFString implementation in FSF apple/trunk branch.
6475
6476         * target.def (objc_construct_string): New Hook.
6477         * doc/tm.texi (objc_construct_string): Document.
6478         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6479         * config/t-darwin: Amend build rules for darwin.o.
6480         * config/darwin.opt: Add cfstrings flags.
6481         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6482         (darwin_objc_construct_string): New.
6483         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6484         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6485         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6486         (darwin_fold_builtin): Likewise.
6487         (darwin_build_constant_cfstring): Likewise.
6488         (darwin_objc_construct_string): Likewise.
6489         (darwin_cfstring_p): Likewise.
6490         (darwin_enter_string_into_cfstring_table): Likewise.
6491         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6492         * config/darwin.c (darwin_running_cxx): New var.
6493         (machopic_select_section): Return cfstring_constant_object_section.
6494         (darwin_override_options): Set darwin_running_cxx.
6495         (add_builtin_field_decl): New.
6496         (darwin_init_cfstring_builtins): New.
6497         (darwin_build_constant_cfstring): New.
6498         (darwin_fold_builtin): New.
6499         (cfstring_hash): New.
6500         (cfstring_eq): New.
6501         (darwin_enter_string_into_cfstring_table): New.
6502         * config/darwin-sections.def (cfstring_constant_object_section): New.
6503         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6504         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6505
6506 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6507
6508         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6509         TYPE_STUB_DECL instead of TREE_CHAIN.
6510         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6511         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6512         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6513         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6514         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6515         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6516         Likewise.
6517         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6518
6519 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6520
6521         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6522         (copy_blkmode_from_reg): Likewise.
6523         (read_complex_part): Likewise.
6524         (expand_expr_real_1): Calculate packedp and pass it to
6525         extract_bit_field.
6526         * expr.h (extract_bit_field): Update declaration.
6527         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6528         to extract_bit_field.
6529         * expmed.c (extract_fixed_bit_field): Update calls to
6530         extract_fixed_bit_field.
6531         (store_split_bit_field): Likewise.
6532         (extract_bit_field_1): Add new argument packedp.
6533         (extract_bit_field): Add new argument packedp.
6534         (extract_fixed_bit_field): Add new argument packedp and let
6535         packed attribute override volatile.
6536         * stmt.c (expand_return): Update call to extract_bit_field.
6537
6538 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6539
6540         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6541
6542 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6543
6544         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6545         of gcc_checking_assert.
6546         * sel-sched.c (code_motion_process_successors): Likewise.
6547
6548 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6549
6550         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6551         when stopping because of a different locus on edge or insn.
6552         (try_optimize_cfg): Add comment.
6553         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6554         block is a forwarder block, propagate locus on the edge.
6555         (cfg_layout_merge_blocks): Likewise.
6556
6557 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6558
6559         PR target/45946
6560         * config/i386/i386.md (*pushti2): New insn pattern.
6561         (pushti2 splitter): New insn splitter.
6562         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6563         DWI mode iterator.
6564
6565 2010-10-21  Paul Koning  <ni1d@arrl.net>
6566
6567         * config/pdp11/pdp11-protos.md (arith_operand,
6568         const_immediate_operand, expand_shift_operand,
6569         immediate15_operand): Delete
6570         * config/pdp11/pdp11.c: Ditto.
6571         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6572         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6573         EXTRA_CONSTRAINT): Delete.
6574         * config/pdp11/pdp11.md (various): Use standard constraints
6575         instead of removed ones.
6576         * config/pdp11/constraints.md: New file.
6577         * config/pdp11/predicates.md: New file.
6578
6579 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6580
6581         PR c/45834
6582         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6583         (may_alias_p): Ditto.
6584
6585 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6586
6587         PR tree-optimization/45875
6588         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6589
6590 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6591
6592         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6593         variables.
6594         (create_new_def_for): Likewise.
6595
6596 2010-10-21  Nick Clifton  <nickc@redhat.com>
6597
6598         * config/mn10300/mn10300.c: Fold code to 80-character width.
6599         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6600         MEM, CONST_INT and CONST_DOUBLE.
6601         (targetm): Move initialization to end of file.
6602         (print_operand): Rename to mn10300_print_operand.
6603         (print_operand_address): Rename to mn10300_print_operand_address.
6604         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6605         (expand_prologue): Rename to mn10300_expand_prologue.
6606         (expand_epilogue): Rename to mn10300_expand_epilogue.
6607         (initial_offset): Rename to mn10300_initial_offset.
6608         (function_arg): Rename to mn10300_function_arg.
6609         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6610         (symbolic_operand): Rename to mn10300_symbolic_operand.
6611         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6612         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6613         * config/mn10300/mn10300-protos.h: Update prototypes.
6614         * config/mn10300/mn10300.h: Fold code to 80-character width.
6615         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6616         MEM, CONST_INT and CONST_DOUBLE.
6617         (CPP_SPEC): Move to...
6618         (TARGET_CPU_CPP_BUILTINS): ... here.
6619         * config/mn10300/mn10300.md: Fold code to 80-character width.
6620         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6621         MEM, CONST_INT and CONST_DOUBLE.
6622
6623 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6624
6625         PR tree-optimization/46049
6626         PR tree-optimization/46052
6627         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6628         (vect_get_slp_defs): Add arguments.
6629         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6630         operands to vect_get_slp_defs.
6631         (vectorizable_reduction): Fix comment, pass scalar operands to
6632         vect_get_slp_defs.
6633         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6634         type to determine number of units in the created vector.
6635         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6636         (vectorizable_conversion): Fix comment.
6637         (vectorizable_shift): New function.
6638         (vectorizable_operation): Move code that handles shifts to
6639         vectorizable_shift.
6640         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6641         vect_get_slp_defs.
6642         (vectorizable_type_promotion, vectorizable_store): Likewise.
6643         (vectorizable_condition): Fix comment.
6644         (vect_analyze_stmt): Call vectorizable_shift.
6645         (vect_transform_stmt): Likewise.
6646         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6647         Use it as the operand to create vectors for, except reduction
6648         initial definition and store.  Use operands type.
6649         (vect_get_slp_defs): Add new arguments.  Pass them to
6650          vect_get_constant_vectors.
6651
6652 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6653
6654         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6655         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6656         * cfghooks.c (fixup_reorder_chain): Likewise.
6657         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6658         * cgraph.c (cgraph_add_thunk): Likewise.
6659         (cgraph_create_edge_1): Likewise.
6660         (cgraph_create_virtual_clone): Likewise.
6661         * ddg.c (add_cross_iteration_register_deps): Likewise.
6662         * dwarf2out.c (modified_type_die): Likewise.
6663         * emit-rtl.c (set_mem_alias_set): Likewise.
6664         * ggc-zone.c (zone_allocate_marks): Likewise.
6665         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6666         * gimple.c (iterative_hash_gimple_type): Likewise.
6667         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6668         (create_single_exit_edge): Likewise.
6669         * haifa-sched.c (choose_ready): Likewise.
6670         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6671         * passes.c (execute_todo): Likewise.
6672         * sched-ebb.c (begin_schedule_ready): Likewise.
6673         * sel-sched.c (code_motion_process_successors): Likewise.
6674         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6675         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6676         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6677         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6678         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6679         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6680         (ssa_conflicts_add): Likewise.
6681         * tree-ssa-copy.c (replace_exp): Likewise.
6682         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6683         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6684         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6685         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6686         (compute_antic): Likewise.
6687         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6688         (add_dependence): Likewise.
6689         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6690         * tree-vrp.c (supports_overflow_infinity): Likewise.
6691         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6692         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6693         (process_assert_insertions_for): Likewise.
6694         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6695         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6696         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6697
6698 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6699
6700         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6701         * reload1.c (has_nonexceptional_receiver): Likewise.
6702         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6703         (create_new_def_for): Likewise.
6704         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6705         (merge_phi_nodes): Likewise.
6706         (has_abnormal_incoming_edge_p): Delete.
6707
6708 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6709
6710         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6711
6712 2010-10-21  Richard Guenther  <rguenther@suse.de>
6713             Michael Matz  <matz@suse.de>
6714
6715         PR tree-optimization/45764
6716         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6717         Adjust initial misalignment for negative DR_STEP.
6718         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6719         do not have the same alignment over the whole iteration domain.
6720
6721 2010-10-21  Richard Guenther  <rguenther@suse.de>
6722
6723         PR tree-optimization/46111
6724         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6725
6726 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6727
6728         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6729
6730 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6731
6732         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6733         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6734
6735 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6736
6737         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6738         signal_frame.
6739         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6740
6741 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6742
6743         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6744         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6745
6746 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6747
6748         * basic-block.h (find_fallthru_edge): Define.
6749         * cfgcleanup.c (merge_blocks_move): Use it.
6750         (try_crossjump_bb): Likewise.
6751         * cfglayout.c (fixup_reorder_chains): Likewise.
6752         (fixup_fallthru_exit_predecessor): Likewise.
6753         * cfgrtl.c (rtl_split_edge): Likewise.
6754         (rtl_verify_flow_info): Likewise.
6755         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6756         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6757         * ifcvt.c (block_fallthru): Likewise.
6758         * reload1.c (fixup_abnormal_edges): Likewise.
6759         * sched-ebb.c (being_schedule_ready): Likewise.
6760         (schedule_ebb): Likwise.
6761         * sched-rgn.c (find_single_block_region): Likewise.
6762         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6763         * tree-complex.c (expand_complex_move): Likewise.
6764         * sched-int.h (find_fallthru_edge): Rename to...
6765         (find_fallthru_edge_from): ...this.
6766         * haifa-sched.c (find_fallthru_edge): Rename to...
6767         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6768         (init_before_recovery): Call find_fallthru_edge_from.
6769         * sel-sched-ir.c (merge_fences): Likewise.
6770         * sel-sched.c (in_fallthru_bb_p): Likewise.
6771         (move_cond_jump): Likewise.
6772
6773 2010-10-20  Paul Koning  <ni1d@arrl.net>
6774
6775         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6776         insn to check for target 11/40 or higher.
6777
6778 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6779
6780         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6781         bool instead of a tree.
6782         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6783         objc_build_method_signature.
6784         (c_parser_objc_method_definition): Do not call
6785         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6786         c_parser_objc_method_decl and objc_start_method_definition.
6787         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6788         Updated calls to c_parser_objc_method_type,
6789         c_parser_objc_method_decl and objc_add_method_declaration.
6790
6791 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6792
6793         PR tree-optimization/45919
6794         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6795         array members.
6796
6797         PR tree-optimization/46066
6798         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6799         instead of gsi_last_bb.
6800
6801 2010-10-20  DJ Delorie  <dj@redhat.com>
6802
6803         * config/m32c/m32c.c (m32c_option_override): Always disable
6804         function-cse in 16-bit mode.  Indirect calls are always worse than
6805         direct calls as there is no 16-bit indirect call opcode.
6806         (m32c_override_options_after_change): New, likewise.
6807
6808 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6809
6810         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6811         emitting the conditional move in the inner mode of the SUBREG.
6812
6813 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6814
6815         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6816         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6817         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6818         (ia64_preferred_reload_class): Make static.  Change rclass argument
6819         and result types from enum reg_class to reg_class_t.
6820
6821 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6822
6823         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6824         call for single operand expression.
6825
6826 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6827
6828         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6829         if there is a call statement to pure or const function in the block.
6830
6831 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6832
6833         Fix several build errors for pdp11 target.
6834         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6835         (cbranchdf4): Conditional on TARGET_FPU.
6836         (movdf): Ditto; correct alternatives check.
6837         (movmemhi): Fix predicate and constraint.
6838         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6839
6840 2010-10-20  Richard Guenther  <rguenther@suse.de>
6841
6842         PR lto/45667
6843         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6844         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6845         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6846         when in LTO.
6847
6848 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6849
6850         PR fortran/42169
6851         * ira-emit.c (store_can_be_removed_p): Return false instead of
6852         gcc_unreachable.
6853
6854 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6855
6856         * fold-const.c (fold_binary_loc): New transformation.
6857
6858 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6859
6860         PR target/46085
6861         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6862         (reduc_splus_v4df): Likewise.
6863
6864 2010-10-20  Richard Guenther  <rguenther@suse.de>
6865
6866         PR tree-optimization/45860
6867         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6868         conditional store replacement for non-register type stores.
6869
6870 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6871
6872         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6873         (self_referential_size): Use it instead of skip_simple_arithmetic.
6874
6875 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6876
6877         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6878         If the current function calls eh_return, claim live all registers
6879         that we need to check for liveness otherwise.
6880
6881 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6882
6883         * c-decl.c (c_write_global_declarations): Call
6884         objc_write_global_declarations when compiling Objective-C.
6885         * c-lang.c (finish_file): Removed.
6886
6887 2010-10-19  DJ Delorie  <dj@redhat.com>
6888
6889         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6890         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6891         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6892         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6893         * doc/tm.texi: Regenerate.
6894         * targhooks.h (default_label_align_after_barrier_max_skip,
6895         default_loop_align_max_skip, default_label_align_max_skip,
6896         default_jump_align_max_skip): Declare.
6897         * target.def (label_align_after_barrier_max_skip): New.
6898         (loop_align_max_skip): New.
6899         (label_align_max_skip): New.
6900         (jump_align_max_skip): New.
6901         * system.h (poison): Add those macros to the list.
6902         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6903         (LOOP_ALIGN_MAX_SKIP): Remove.
6904         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6905         (JUMP_ALIGN_MAX_SKIP): Remove.
6906         (default_label_align_after_barrier_max_skip): New.
6907         (default_loop_align_max_skip): New.
6908         (default_label_align_max_skip): New.
6909         (default_jump_align_max_skip): New.
6910         (compute_alignments): Use the new hooks.
6911         (shorten_branches): Likewise.
6912
6913 2010-10-19  Richard Henderson  <rth@redhat.com>
6914
6915         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6916         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6917         (fma4i_fmadd_<mode>): New.
6918         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6919         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6920         standard fma patterns.
6921         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6922         enable for FMA.
6923         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6924         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6925         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6926
6927 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6928
6929         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6930         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6931
6932 2010-10-19  Richard Henderson  <rth@redhat.com>
6933
6934         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6935         (fmadf4, *fmsdf4, *nfmadf4): New.
6936         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6937
6938 2010-10-19  Michael Eager  <eager@eagercon.com>
6939
6940         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6941         Use sjlj unwind info for exceptions.
6942
6943 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6944
6945         PR fortran/43414
6946         * dwarf2out.c (add_calling_convention_attribute): Flag main
6947         Fortran subroutine with DW_AT_main_subprogram.
6948
6949 2010-10-19  Nick Clifton  <nickc@redhat.com>
6950
6951         * config/rx/rx.c (rx_function_value): Small integer types are
6952         promoted to SImode.
6953         (rx_promote_function_mode): New function.
6954         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6955
6956 2010-10-19  Nick Clifton  <nickc@redhat.com>
6957
6958         * config/mep/mep.c (mep_print_operand): Use
6959         targetm.strip_name_encoding.
6960         (mep_output_aligned_common): Likewise.
6961
6962 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6963
6964         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6965
6966 2010-10-18  Richard Henderson  <rth@redhat.com>
6967
6968         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6969         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6970
6971 2010-10-18  Richard Henderson  <rth@redhat.com>
6972
6973         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6974         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6975         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6976         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6977         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6978         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6979         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6980         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6981         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6982         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6983         (bdesc_multi_arg): Remove the corresponding builtins.
6984         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6985         (UNSPEC_FMA4_FMSUBADD): Remove.
6986         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
6987         * config/i386/sse.md (FMA4MODEF4): Remove.
6988         (FMAMODE): Add.
6989         (fma<mode>4): New expander.
6990         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
6991         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
6992         (*fma4i_fmsub_<mode>): Similarly.
6993         (*fma4i_fnmadd_<mode>): Similarly.
6994         (*fma4i_fnmsub_<mode>): Similarly.
6995         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
6996         with the first operand.
6997         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
6998         of explicit arithmetic.  Macroize with AVXMODEF2P.
6999         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7000         (xop_frcz<mode>2): Macroize with FMAMODE.
7001         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7002         the first operand.
7003         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7004         extra negations.
7005         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7006         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7007         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7008         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7009         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7010         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7011         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7012         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7013
7014 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7015
7016         PR rtl-optimization/45966
7017         * combine.c (try_combine): If added_sets_2, deal with the case
7018         where i0 feeds i1 and i1 feeds i2.
7019
7020 2010-10-18  Jan Hubicka  <jh@suse.cz>
7021
7022         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7023         preserve flags before trying to guess on visibility.
7024         (varpool_externally_visible_p): New function.
7025         (function_and_variable_visibility): Use it.
7026
7027 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7028
7029         Implemented parsing @synthesize and @dynamic for Objective-C.
7030         * c-parser.c (c_parser_external_declaration): Recognize
7031         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7032         (c_parser_objc_at_synthesize_declaration): New.
7033         (c_parser_objc_at_dynamic_declaration): New.
7034
7035 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7036
7037         * c-parser.c (c_parser_objc_class_declaration): After finding an
7038         error, parse the whole declaration then reset parser->error.
7039
7040 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7041
7042         PR target/46041
7043         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7044         * builtins.c (mode_has_fma): Ditto.
7045
7046 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7047
7048         PR target/36898
7049         PR middle-end/43760
7050         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7051
7052 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7053
7054         * config/i386/i386.c (ix86_option_override_internal): Define and
7055         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7056         default.
7057         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7058         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7059
7060 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7061
7062         Merge from 'apple/trunk' branch on FSF servers.
7063         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7064         following Objective-C change:
7065
7066         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7067
7068         Radar 4301047
7069         * c-parse.in (objc_quals): Build objc qualifier list same way
7070         as gcc-3.3
7071
7072 2010-10-18  Jan Hubicka  <jh@suse.cz>
7073
7074         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7075         function_and_variable_visibility): Revert accidental commit.
7076
7077 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7078
7079         Merge from 'apple/trunk' branch on FSF servers.
7080         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7081         the following Objective-C change:
7082
7083         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7084
7085         Radar 4204796
7086         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7087         'volatilized' type used in a typeof operator.
7088
7089 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7090
7091         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7092         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7093         rewrite modelled on gimple_purge_dead_eh_edges.
7094         (gimple_purge_all_dead_abnormal_call_edges): New function.
7095         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7096         directly instead of through gimple_purge_dead_abnormal_call_edges.
7097         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7098         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7099         removed AB side-effects from one of its statements.
7100         (init_pre): Initialize need_ab_cleanup.
7101         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7102         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7103
7104 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7105
7106         PR c/46015
7107         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7108         on computed goto argument.
7109
7110 2010-10-18  Richard Guenther  <rguenther@suse.de>
7111
7112         PR tree-optimization/45967
7113         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7114         (could_have_pointers): Likewise.
7115         (handle_rhs_call, handle_const_call, handle_pure_call,
7116         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7117         (struct fieldoff): Add must_have_pointers field.
7118         (type_must_have_pointers): New function.
7119         (field_must_have_pointers): Likewise.
7120         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7121         Adjust field merging.
7122         (create_function_info_for): May-have-pointers of varinfo is
7123         almost always true.
7124         (create_variable_info_for_1): Likewise.
7125
7126 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7127
7128         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7129         of operands to vec_concat.
7130
7131 2010-10-18  Richard Guenther  <rguenther@suse.de>
7132
7133         PR lto/44950
7134         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7135         also clear references to entries of it.
7136
7137 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7138
7139         PR other/43448
7140         * gccbug.in: Remove.
7141         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7142         (doc, distclean, install-common): Remove reference to gccbug.
7143         * configure: Regenerate.
7144         * configure.ac (all_outputs): Remove gccbug.
7145         * doc/configfiles.texi: Remove references to gccbug.
7146         * doc/sourcebuild.texi: Dito.
7147
7148 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7149
7150         PR middle-end/46019
7151         * fold-const.c (fold_binary_loc): If integer_pow2p has
7152         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7153
7154 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7155             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7156
7157         * gengtype.c (verbosity_level): Add variable.
7158         (set_gc_used): Count variables for verbosity.
7159         (close_output_files): Backing up files, counting written ones
7160         verbosily.
7161         (write_types): Count emitted functions for verbosity. Added
7162         debug messages.
7163         (write_enum_defn): Count structures for verbosity. Added debug
7164         messages.
7165         (gengtype_long_options): Add "verbose" & "backupdir".
7166         (print_usage): Ditto.
7167         (main): Verbose display of parsed files.
7168
7169         * gengtype.h (verbosity_level): Add declaration.
7170
7171 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7172
7173         * gengtype.c (parse_program_options): Add allocation of
7174         plugin_files, and correct test on nb_plugin_files.
7175
7176 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7177
7178         Merge from 'apple/trunk' branch on FSF servers.
7179
7180         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7181
7182         Radar 4133425
7183         * c-decl.c (undeclared_variable): Issue diagnostic on
7184         private 'ivar' access.
7185
7186 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7187
7188         PR target/46051
7189         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7190         generated sequence to match *avx_vperm2f128<mode>_nozero.
7191         (vec_interleave_lowv4df): Ditto.
7192         (vec_interleave_highv8sf): Ditto.
7193         (vec_interleave_lowv8sf): Ditto.
7194
7195 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7196
7197         * libgcov.c (create_file_directory): Enable it for win32 case.
7198         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7199         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7200         (GCOV_PREFIX_SKIP): Likewise.
7201
7202 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7203
7204         * doc/objc.texi (GNU Objective-C runtime API): New section.
7205         (Modern GNU Objective-C runtime API): New section.
7206         (Traditional GNU Objective-C runtime API): New section.
7207         (Executing code before main): Mention that this section is
7208         specific to the GNU Objective-C runtime.
7209         (Garbage Collection): Same.
7210
7211 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7212
7213         * c-parser.c (c_parser_for_statement): Move initialization of
7214         cond and incr before if.
7215
7216 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7217
7218         * target.def (preferred_output_reload_class): New hook.
7219         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7220         * doc/tm.texi: Regenerate.
7221         * targhooks.c (default_preferred_output_reload_class): New function.
7222         * targhooks.h (default_preferred_output_reload_class): Declare.
7223         * reload.c (find_dummy_reload): Change rclass argument type from
7224         enum reg_class to reg_class_t. Change this_alternative array type
7225         from enum reg_class to reg_class_t.
7226         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7227         (push_reload): Change preferred_class variable type to reg_class_t.
7228         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7229         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7230         argument type from enum reg_class to reg_class_t. Use
7231         HARD_REGISTER_NUM_P predicate.
7232         * recog.h (reg_fits_class_p): Update prototype.
7233
7234         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7235         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7236         Remove.
7237         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7238         static. Change regclass argument and result types from enum reg_class
7239         to reg_class_t.
7240         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7241
7242 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7243
7244         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7245         visibility enum, and handle @package.
7246
7247 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7248
7249         * doc/objc.texi (What you can and what you cannot do in +load):
7250         Document that sending messages to constant string objects in +load
7251         is not guaranteed to work.
7252
7253 2010-10-16  Jan Hubicka  <jh@suse.cz>
7254
7255         PR middle-end/44206
7256         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7257         existence of refrences before removing the function.
7258
7259 2010-10-16  Jan Hubicka  <jh@suse.cz>
7260
7261         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7262         only_called_at_startup and only_called_at_exit.
7263         (cgraph_propagate_frequency): Compute only_called_at_startup and
7264         only_called_at_exit.
7265         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7266         only_called_at_exit.
7267         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7268         flags.
7269         * predict.c (compute_function_frequency): Initialize the new flags.
7270
7271 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7272
7273         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7274         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7275         on the bounds of its domain.
7276         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7277
7278 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7279
7280         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7281         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7282         * config/avr/avr.c (preferred_reload_class): Remove.
7283         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7284         * config/pa/pa.c (emit_move_sequence): Update comment
7285         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7286         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7287         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7288         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7289         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7290         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7291         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7292         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7293         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7294         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7295         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7296         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7297         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7298
7299 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7300
7301         * opts.c (set_fast_math_flags,
7302         set_unsafe_math_optimizations_flags): Make static.
7303         * toplev.h (set_fast_math_flags,
7304         set_unsafe_math_optimizations_flags): Remove prototypes.
7305
7306 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7307
7308         * config/arm/arm.c (arm_option_optimization): Set
7309         flag_section_anchors to 1 not 2.
7310         * config/i386/i386.c (ix86_option_override_internal): Check
7311         global_options_set.x_flag_zee and
7312         global_options_set.x_flag_omit_frame_pointer.
7313         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7314         flag_zee to 2.
7315         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7316         global_options_set.x_flag_omit_frame_pointer.
7317         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7318         opts->x_flag_section_anchors to 1 not 2.
7319         * config/sh/sh.c (sh_option_optimization): Don't set
7320         flag_schedule_insns to 2.
7321         (sh_option_override): Check
7322         global_options_set.x_flag_schedule_insns.
7323         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7324
7325 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7326
7327         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7328         as cross.
7329         * configure: Regenerated.
7330
7331 2010-10-15  Xinliang David Li  <davidxl@google.com>
7332
7333         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7334         function.
7335         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7336         into a recursive function.
7337
7338 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7339
7340         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7341         (*movdfcc_1): ditto.
7342
7343 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7344
7345         * target.def (target_option.init_struct): New hook.
7346         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7347         * doc/tm.texi: Regenerate.
7348         * hooks.c (hook_void_gcc_optionsp): New.
7349         * hooks.h (hook_void_gcc_optionsp): Declare.
7350         * langhooks-def.h (lhd_init_options_struct): Remove.
7351         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7352         * langhooks.c (lhd_init_options_struct): Remove.
7353         * opts.c (init_options_struct): Also call
7354         targetm.target_option.init_struct.
7355         * config/i386/i386.c (ix86_option_init_struct,
7356         TARGET_OPTION_INIT_STRUCT): New.
7357         (ix86_option_optimization): Move some settings to
7358         ix86_option_init_struct.
7359         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7360         TARGET_OPTION_INIT_STRUCT): New.
7361         (pdp11_option_optimization): Move some settings to
7362         pdp11_option_init_struct.
7363         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7364         rs6000_option_init_struct.  Use options structure pointer.
7365         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7366         * config/s390/s390.c (s390_option_init_struct,
7367         TARGET_OPTION_INIT_STRUCT): New.
7368         (s390_option_optimization): Don't set
7369         flag_asynchronous_unwind_tables here.
7370         * config/sh/sh.c (sh_option_init_struct,
7371         TARGET_OPTION_INIT_STRUCT): New.
7372         (sh_option_optimization): Don't set flag_finite_math_only here.
7373         * config/spu/spu.c (spu_option_optimization): Replace by
7374         spu_option_optimization.  Use options structure pointer.
7375         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7376
7377 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7378
7379         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7380
7381         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7382         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7383         (Standard names): Document fma.
7384
7385         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7386         __FP_FAST_FMAF, __FP_FAST_FMAL.
7387
7388         * builitns.c (expand_builtin_mathfn_ternary): New function for
7389         expanding ternary math functions, like fma.
7390         (expand_builtin): Call it for the fma builtins.
7391
7392         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7393         ops at present.
7394
7395         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7396         vectorizable functions to support vectorizing fma.
7397
7398         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7399         Handle fma builtins.
7400
7401         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7402         (UNSPEC_VSX_MSUB): Ditto.
7403         (UNSPEC_VSX_NMADD): Ditto.
7404         (UNSPEC_VSX_NMSUB): Ditto.
7405         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7406         of UNSPEC. Renumber combiner patterns.
7407         (vsx_fmsub<mode>4*): Ditto.
7408         (vsx_fnmadd<mode>4*): Ditto.
7409         (vsx_fnmsub<mode>4*): Ditto.
7410
7411         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7412         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7413         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7414         (altivec_vmaddfp_1): Ditto.
7415         (altivec_vmaddfp_2): Ditto.
7416         (atlivec_mulv4sf3): Ditto.
7417         (altivec_vnmsubfp): Ditto.
7418         (altivec_vnmsubfp_1): Ditto.
7419         (altivec_vnmsubfp_2): Ditto.
7420         (altivec_vnmsubfp_3): Delete.
7421
7422         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7423         (fmasf4_fpr): Ditto.
7424         (fmssf4_fpr): Ditto.
7425         (fnmasf4_fpr): Ditto.
7426         (fnmssf4_fpr): Ditto.
7427         (fmadf4): Ditto.
7428         (fmadf4_fpr): Ditto.
7429         (fmsdf4_fpr): Ditto.
7430         (fnmadf4_fpr): Ditto.
7431         (fnmsdf4_fpr): Ditto.
7432
7433         * optabs.h (OTI_fma): Add fma optab.
7434         (fma_optab): Ditto.
7435
7436         * genopinit.c (optabs): Set fma optab.
7437
7438         * rtl.def (FMA): Add FMA rtl.
7439
7440         * tree.h (mode_has_fma): New function to return if MODE supports a
7441         fast multiply and add instruction.
7442         * builtins.c (mode_has_fma): Ditto.
7443
7444 2010-10-15  Jan Hubicka  <jh@suse.cz>
7445
7446         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7447         objects instead of bitmap.
7448         (produce_symtab): Likewise; output defined symbols first.
7449
7450 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7451
7452         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7453         Option Summary and Index.
7454
7455 2010-10-15  Richard Guenther  <rguenther@suse.de>
7456
7457         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7458         for automatic variables again.
7459
7460 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7461
7462         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7463         conforming to C99.
7464
7465 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7466
7467         * config/rx/rx.c (rx_option_optimization): Change to
7468         rx_override_options_after_change.  Don't change
7469         flag_lto_compression_level.  Don't check for changes to whether
7470         FPU instructions can be used.  Check and set only
7471         flag_finite_math_only, not other fast-math flags.
7472         (rx_option_override): Call rx_override_options_after_change.
7473         (TARGET_OPTION_OPTIMIZATION): Remove.
7474         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7475
7476 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7477
7478         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7479         disable section anchors for lang_hooks.name[4] != 'O'.
7480
7481 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7482
7483         * config/frv/frv.c (frv_option_optimization,
7484         TARGET_OPTION_OPTIMIZATION): Remove.
7485         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7486
7487 2010-10-15  Michael Matz  <matz@suse.de>
7488
7489         * cgraphunit.c (clone_of_p): Define unconditionally.
7490
7491 2010-10-15  Richard Guenther  <rguenther@suse.de>
7492
7493         PR lto/45957
7494         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7495
7496 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7497
7498         * ifcvt.c (find_active_insn_before): New function.
7499         (find_active_insn_after): New function.
7500         (cond_exec_process_if_block): Use new functions to replace
7501         prev_active_insn() and next_active_insn().
7502
7503 2010-10-14  Yao Qi  <yao@codesourcery.com>
7504
7505         PR target/45447
7506         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7507         va_list_name to TYPE_STUB_DECL (va_list_type).
7508
7509 2010-10-14  Jan Hubicka  <jh@suse.cz>
7510
7511         PR middle-end/45621
7512         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7513         redirected to clone, be happy.
7514         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7515         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7516         former_clone_of unconditionally.
7517
7518 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7519
7520         Merge from FSF apple 'trunk' branch.
7521         2006 Fariborz Jahanian  <fjahanian@apple.com>
7522
7523         Radars 4436866, 4505126, 4506903, 4517826
7524         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7525         (c_lex_one_token): Handle property attributes.
7526         (c_parser_external_declaration): Handle @property.
7527         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7528         @alias, @class, @end and @property objc keywords.
7529         (c_parser_objc_methodprotolist): Handle @property.
7530         (c_parser_objc_property_attrlist): New.
7531         (c_parser_objc_at_property): New.
7532         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7533         (build_modify_expr): Likewise.
7534
7535 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7536
7537         PR tree-optimization/46008
7538         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7539
7540 2010-10-14  Richard Guenther  <rguenther@suse.de>
7541
7542         PR tree-optimization/44913
7543         * tree-data-ref.c (disjoint_objects_p): Remove.
7544         (dr_may_alias_p): Simplify.  Only hand the base object to
7545         the alias-oracle.
7546         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7547         some more trees, bail out instead of asserting.
7548         (ptr_derefs_may_alias_p): Likewise.  Export.
7549         (refs_may_alias_p_1): Handle STRING_CSTs.
7550         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7551
7552 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7553
7554         PR c/45969
7555         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7556         type with excess precision for boolean operations.
7557
7558 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7559             Basile Starynkevitch  <basile@starynkevitch.net>
7560
7561         * gengtype.c:  Include getopt.h and version.h.
7562
7563         (lang_bitmap, struct outf, outf_p)
7564         (get_output_file_with_visibility, oprintf): Definitions moved to
7565         gengtype.h
7566         (output_files, header_file, srcdir, srcdir_len, this_file)
7567         (do_dump): No more static variables.
7568         (do_debug): New.
7569         (dbgprint_count_type_at): Added new function.
7570         (gengtype_long_options): New.
7571         (print_usage, print_version, parse_program_options): New.
7572         (main): Call parse_program_options, and removed old option
7573         handling code.  Added some debug output.
7574
7575         * gengtype.h:  Updated copyright year.
7576         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7577         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7578         Moved from gengtype.c to here.
7579         (do_debug, read_state_filename, write_state_filename): New variables.
7580         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7581
7582         * Makefile.in:
7583         (REVISION): Always defined.
7584         (version.o): Removed ifdef REVISION_c.
7585         (s-gtype): Pass arguments to build/gengtype program.
7586         (build/version.o): Added building rule.
7587         (build/gengtype$(build_exeext)): Added build/version.o.
7588
7589 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7590
7591         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7592         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7593         __strong macros.
7594
7595 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7596
7597         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7598         may_trap_or_fault_p instead of may_trap_p predicate.
7599         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7600         (substitute_placeholder_in_expr): Likewise.
7601         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7602         flag on MEM_REF nodes.
7603         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7604         flags on INDIRECT_REF nodes.
7605
7606 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7607
7608         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7609         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7610         (arm*-*-eabi*) <tm_file>: Likewise.
7611         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7612         (frv-*-*linux*) <tm_file>: Likewise.
7613         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7614         and associated helper macros.
7615         * config/frv/frv-abi.h: Delete.
7616
7617 2010-10-14  Richard Guenther  <rguenther@suse.de>
7618
7619         PR lto/44561
7620         * tree.def (NULLPTR_TYPE): New tree code.
7621         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7622         * dwarf2out.c (is_base_type): Likewise.
7623         (gen_type_die_with_usage): Likewise.
7624         * sdbout.c (plain_type_1): Likewise.
7625         * tree.c (build_int_cst_wide): Likewise.
7626         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7627
7628 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7629
7630         * params.c (params_finished): New.
7631         (add_params): Assert !params_finished.
7632         (finish_params): New.
7633         (set_param_value_internal): Take params and params_set
7634         parameters.  Assert params_finished.
7635         (set_param_value, maybe_set_param_value): Take params and
7636         params_set parameters.  Update calls to set_param_value_internal.
7637         (set_default_param_value): Assert !params_finished.  Don't use
7638         set_param_value_internal.
7639         (default_param_value, init_param_values): New.
7640         * params.h (struct param_info): Change value to default_value.
7641         Remove set.
7642         (set_param_value, maybe_set_param_value): Add params and
7643         params_set parameters.
7644         (PARAM_VALUE): Get parameters from global_options.
7645         (PARAM_SET_P): Remove.
7646         (finish_params, default_param_value, init_param_values): New.
7647         * common.opt (param_values): New Variable.
7648         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7649         maybe_set_param_value.
7650         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7651         arguments to maybe_set_param_value.
7652         * config/picochip/picochip.c (picochip_option_override): Pass
7653         extra arguments to maybe_set_param_value.
7654         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7655         extra arguments to maybe_set_param_value.
7656         * config/s390/s390.c (s390_option_override): Use
7657         maybe_set_param_value instead of set_param_value.  Pass extra
7658         arguments to maybe_set_param_value.
7659         * config/sparc/sparc.c (sparc_option_override): Pass extra
7660         arguments to maybe_set_param_value.
7661         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7662         maybe_set_param_value.
7663         * opts.c (handle_param): Take opts and opts_set parameters.
7664         Update call to set_param_value.
7665         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7666         initial_loop_invariant_max_bbs_in_loop): Remove.
7667         (init_options_once): Don't set them.
7668         (init_options_struct): Initialize parameters structures.
7669         (default_options_optimization): Use default_param_value when
7670         restoring defaults.  Update calls to maybe_set_param_value.
7671         (finish_options): Update calls to maybe_set_param_value.
7672         (common_handle_option): Update calls to handle_param and
7673         set_param_value.
7674         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7675         (general_init): Call finish_params.
7676
7677 2010-10-14  Nick Clifton  <nickc@redhat.com>
7678
7679         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7680         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7681         (FIRST_PSEUDO_REGISTER): Increase by one.
7682         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7683         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7684         (MODES_TIEABLE): Call mn10300_modes_tieable.
7685         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7686         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7687         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7688         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7689         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7690         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7691         (mn10300_cc_status_mdep): Delete.
7692         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7693         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7694         the combine-stack-adjust pass.
7695         (print_operand): Use the mode of the comparison operation to
7696         select the comparison suffix.
7697         (notice_update_cc): Delete.
7698         (mn10300_secondary_reload_class): Remove test for stack pointer
7699         based arithmetic.
7700         (output_tst): Rename to mn10300_output_cmp.
7701         (impossible_plus_operand): Move into predicates.md.
7702         (mn10300_legitimize_address): Make static.
7703         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7704         constant pic operands.
7705         (mn10300_legitimate_constant_p): New function.
7706         (mn10300_case_values_threshold): Make static.
7707         (mn10300_hard_regno_mode_ok): New function.
7708         (mn10300_modes_tieable): New function.
7709         (mn10300_select_cc_mode): New function.
7710         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7711         * config/mn10300/mn10300-protos.h: Tidy.
7712         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7713         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7714         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7715         with clobbers or sets of CC_REG.
7716         (CC_REG): Define.
7717         (mov*): Remove use of CLR instruction.
7718         (cbranch_si4_<code>): New pattern/split.
7719         (integer_conditional_branch): New pattern.
7720         (cbranch_sf4_<code>): New pattern/split.
7721         (float_conditional_branch): New pattern.
7722         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7723         move a value at the same time.
7724         (cc0 peepholes): Remove.
7725
7726 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7727
7728         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7729         on RTX_FRAME_RELATED_P insns and the insn to which
7730         NOTE_INSN_EPILOGUE_BEG is attached.
7731         * sched-vis.c (print_value): Allow NULL value.
7732
7733 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7734
7735         PR rtl-optimization/45570
7736         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7737         assert that we are pipelining outer loops.  Allow returning
7738         zero predecessors.
7739
7740 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7741
7742         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7743         (tidy_control_flow): Tidy vertical space.
7744         (sel_remove_bb): New variable idx.  Use it to remember the basic
7745         block index before deleting the block.
7746         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7747         (sel_merge_blocks): ... here.
7748         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7749
7750 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7751
7752         * cse.c (is_dead_reg): Change into inline function that is not
7753         called through for_each_rtx.
7754         (set_live_p): Adjust caller.
7755         (insn_live_p): Don't reset DEBUG_INSNs here.
7756         (struct dead_debug_insn_data): New data.
7757         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7758         (delete_trivially_dead_insns): If there is just one setter for the
7759         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7760         and add DEBUG_INSN for it right before the removed setter and
7761         use the DEBUG_EXPR instead of the dead pseudo.
7762
7763 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7764
7765         * et-forest.c (et_nca): Return NULL immediately when
7766         the dominance forest has disjoint components.
7767
7768 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7769
7770         * ira.c (setup_class_hard_regs): Fix typo in indexing
7771         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7772
7773 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7774
7775         * graph.c (inbb): New variable.
7776         (start_bb): Set inbb to 1 if output is inside of a building block.
7777         (end_bb): Check if output is inside of a building block.
7778
7779 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7780
7781         PR rtl-optimization/45912
7782         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7783         regno of registers instead of their index to compute the alignment.
7784
7785 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7786
7787         * config/i386/i386.c (ix86_build_const_vector): Check vector
7788         mode instead of scalar mode.
7789         (ix86_build_signbit_mask): Likewise.
7790         (ix86_expand_fp_absneg_operator): Updated.
7791         (ix86_expand_copysign): Likewise.
7792         (ix86_expand_int_vcond): Likewise.
7793         (ix86_emit_swdivsf): Likewise.
7794         (ix86_sse_copysign_to_positive): Likewise.
7795         (ix86_expand_sse_fabs): Likewise.
7796         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7797         * config/i386/sse.md (copysign<mode>3): Likewise.
7798         (sse2_cvtudq2ps): Likewise.
7799         (vec_unpacku_float_hi_v4si): Likewise.
7800         (vec_unpacku_float_lo_v4si): Likewise.
7801
7802         * config/i386/i386.c (ix86_builtins): Add
7803         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7804         (bdesc_args): Likewise.
7805         (ix86_builtin_vectorized_function): Support
7806         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7807         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7808         and IX86_BUILTIN_CVTPS2DQ256.
7809         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7810
7811         * config/i386/sse.md (STORENT_MODE): New.
7812         (VEC_FLOAT_MODE): Likewise.
7813         (VEC_EXTRACT_MODE): Likewise.
7814         (*avx_cvtdq2pd256_2): Likewise.
7815         (vec_pack_trunc_v4df): Likewise.
7816         (vec_interleave_highv8sf): Likewise.
7817         (vec_interleave_lowv8sf): Likewise.
7818         (storent<mode>): Macroized.
7819         (<code><mode>2: absneg): Likewise.
7820         (copysign<mode>3): Likewise.
7821         (vec_extract<mode>): Likewise.
7822
7823         PR target/44180
7824         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7825         for V8SFmode.
7826
7827 2010-10-13  Richard Guenther  <rguenther@suse.de>
7828             H.J. Lu  <hongjiu.lu@intel.com>
7829
7830         * config/i386/sse.md (reduc_splus_v8sf): Add.
7831         (reduc_splus_v4df): Likewise.
7832         (vec_unpacks_hi_v8sf): Likewise.
7833         (vec_unpacks_lo_v8sf): Likewise.
7834         (*avx_cvtps2pd256_2): Likewise.
7835         (vec_unpacks_float_hi_v8si): Likewise.
7836         (vec_unpacks_float_lo_v8si): Likewise.
7837         (vec_interleave_highv4df): Likewise.
7838         (vec_interleave_lowv4df): Likewise.
7839
7840 2010-10-13  Richard Guenther  <rguenther@suse.de>
7841
7842         PR objc/45878
7843         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7844         alone if there are no virtual methods.
7845
7846 2010-10-13  Richard Henderson  <rth@redhat.com>
7847
7848         * expr.c (build_personality_function): Take parameter LANG instead
7849         of parameter NAME.  Build the name based on the lang prefix and the
7850         unwind method in use.
7851         * tree.c (lhd_gcc_personality): Update call to
7852         build_personality_function.
7853
7854 2010-10-13  Richard Guenther  <rguenther@suse.de>
7855
7856         PR objc/45878
7857         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7858
7859 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7860
7861         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7862         Canonicalize input operands of ASM_OPERANDS insns.
7863
7864 2010-10-13  Richard Guenther  <rguenther@suse.de>
7865
7866         PR tree-optimization/45788
7867         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7868         EH update until fixup-cfg.
7869
7870 2010-10-13  Julian Brown  <julian@codesourcery.com>
7871
7872         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7873         from CORE_REGS and GENERAL_REGS classes.
7874         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7875         final constraint for register preferencing.
7876
7877 2010-10-13  Richard Guenther  <rguenther@suse.de>
7878
7879         PR tree-optimization/45970
7880         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7881         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7882         (stmt_kills_ref_p): Likewise.
7883         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7884
7885 2010-10-13  Richard Guenther  <rguenther@suse.de>
7886
7887         PR tree-optimization/45982
7888         * tree-ssa-structalias.c (make_constraints_to): New function.
7889         (make_constraint_to): Implement in terms of make_constraints_to.
7890         (find_func_aliases): Properly make return values of pure/const
7891         functions escape if they assign to sth that is not a pointer.
7892
7893 2010-10-13  Richard Guenther  <rguenther@suse.de>
7894
7895         PR middle-end/45874
7896         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7897         Fixup the CFG when EH was fixed up.
7898
7899 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7900
7901         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7902         Use operand's type for POINTER_PLUS_EXPR.
7903
7904 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7905
7906         * c-parser.c (c_parser_for_statement): Initialize incr.
7907
7908 2010-10-12  Xinliang David Li  <davidxl@google.com>
7909
7910         PR tree-optimization/45972
7911         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7912         with too many arguments.
7913
7914 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7915
7916         PR fortran/45636
7917         * tree-ssa-forwprop.c: Include expr.h.
7918         (constant_pointer_difference, simplify_builtin_call): New functions.
7919         (tree_ssa_forward_propagate_single_use_vars): Call
7920         simplify_builtin_call on builtin calls.
7921
7922 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7923
7924         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7925         (*adddi3_extend_sp32): Likewise.
7926         (*subdi3_insn_sp32): Likewise.
7927         (*subdi3_extend_sp32): Likewise.
7928         (*negdi2_sp32): Use negative test for consistency.
7929
7930 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7931
7932         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7933         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7934         * config/fixed-bit.h: Likewise.
7935         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7936         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7937         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7938         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7939         (DF_SIZE): Likewise.
7940         * doc/tm.texi: Regenerate.
7941
7942 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7943
7944         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7945         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7946         (*isel_reversed_unsigned_<mode>): New.
7947         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7948         as valid comparisons and adjust operands and output appropriately.
7949         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7950
7951 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7952
7953         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7954         DATA_ALIGNMENT and add COND parameter. Update comments above.
7955         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7956         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7957
7958 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7959
7960         PR bootstrap/45958
7961         * exec-tool.in: Support '-plugin' as the second option to the linker.
7962
7963 2010-10-12  Richard Henderson  <rth@redhat.com>
7964
7965         PR middle-end/45962
7966         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7967         (expand_stack_vars): Assert large base allocated when used.
7968
7969 2010-10-12  Richard Guenther  <rguenther@suse.de>
7970
7971         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7972         only point to nonlocal, not anything.
7973
7974 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7975
7976         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7977         unwind info for exceptions.
7978
7979 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7980
7981         PR testsuite/45851
7982         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7983         Document optional target selector.
7984
7985 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7986
7987         * flag-types.h: New.
7988         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
7989         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
7990         options.h.
7991         (OPTIONS_H): Define.
7992         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
7993         of options.h.
7994         * configure.ac (tm_include_list): Include options.h not flags.h.
7995         * configure: Regenerate.
7996         * flags.h: Include flag-types.h.  Include options.h at top of file
7997         again.
7998         (enum debug_info_type, enum debug_info_level, enum
7999         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8000         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8001         graph_dump_types, enum stack_check_type,
8002         enum warn_strict_overflow_code): Move to flag-types.h
8003         * opth-gen.awk: Include flag-types.h in options.h.
8004
8005 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8006
8007         * expr.c (store_expr): Share code for STRING_CST and
8008         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8009         check if target is a MEM.
8010
8011         * rtl.h: Include hashtab.h.
8012         (iterative_hash_rtx): New prototype.
8013         * rtl.c (iterative_hash_rtx): New function.
8014         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8015         (output_loc_list): Return immediately if emitted is set, set it.
8016         (hash_loc_operands, hash_locs, hash_loc_list,
8017         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8018         optimize_location_lists_1, optimize_location_lists): New function.
8019         (dwarf2out_finish): Call optimize_location_lists.
8020         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8021
8022 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8023
8024         PR testsuite/45974
8025         Revert:
8026         * Makefile.in ($(lang_checks_parallel))
8027         ($(lang_checks_parallelized)): Use single quotes for
8028         $(RUNTESTFLAGS), to allow passing quoted content.
8029
8030 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8031
8032         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8033         actual_oldval.  Use __builtin_expect.
8034         (SUBWORD_VAL_CAS): Likewise.
8035
8036 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8037
8038         * recog.c (nonmemory_operand): Call immediate_operand for
8039         CONSTANT_P operands.
8040
8041 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8042
8043         * config/i386/i386.md (movmem<mode>): Macroize expander from
8044         movmem{si,di} using SWI48 mode iterator.
8045         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8046         *strmovsi_rex_1 using P mode iterator.
8047         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8048         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8049         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8050         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8051         (setmem<mode>): Macroize expander from setmem{si,di} using
8052         SWI48 mode iterator.
8053         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8054         *strsetsi_rex_1 using P mode iterator.
8055         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8056         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8057         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8058         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8059         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8060         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8061         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8062         mode iterator.
8063         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8064         *strlenqi_rex_1 using P mode iterator.
8065
8066 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8067
8068         PR bootstrap/45445
8069         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8070         static functions.
8071         (mark_ref_live, mark_ref_dead): Use them.
8072         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8073         Save the original reg, and use the new functions.
8074         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8075         changed.
8076         (check_and_make_def_conflict): Save the original reg.
8077
8078 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8079
8080         PR middle-end/45699
8081         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8082         thunks.
8083
8084 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8085
8086         * Makefile.in ($(lang_checks_parallel))
8087         ($(lang_checks_parallelized)): Use single quotes for
8088         $(RUNTESTFLAGS), to allow passing quoted content.
8089
8090         PR bootstrap/35855
8091         * opt-functions.awk (BEGIN): New section.
8092         (lower, upper, digit, alnum): New variables.
8093         (static_var, opt_sanitized_name): Use alnum instead of character
8094         classes, for non-C locale.
8095         * optc-gen.awk: Likewise.
8096         * opth-gen.awk: Likewise.
8097
8098 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8099
8100         * target.def (preferred_reload_class): New hook.
8101         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8102         * doc/tm.texi: Regenerate.
8103         * targhooks.c (default_preferred_reload_class): New function.
8104         * targhooks.h (default_preferred_reload_class): Declare.
8105         * reload.c (find_dummy_reload): Change preferred_class variable type
8106         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8107         target hook.
8108         (find_reloads): Change goal_alternative array type from int to
8109         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8110         (push_reload, find_reloads_address_part): Use
8111         TARGET_PREFERRED_RELOAD_CLASS target hook.
8112         * reload1.c (emit_input_reload_insns): Ditto.
8113         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8114         hook. Change rclass argument and secondary_class variable types from
8115         'enum reg_class' to reg_class_t.
8116
8117         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8118         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8119         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8120         Change regclass argument and result types from enum reg_class to
8121         reg_class_t.
8122         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8123
8124 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8125
8126         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8127         in masking operations.
8128         (simplify_const_unary_operation): Likewise.
8129         (simplify_binary_operation_1): Likewise.
8130         (simplify_const_binary_operation): Likewise.
8131         (simplify_const_relational_operation): Likewise.
8132         (simplify_ternary_operation): Likewise.
8133         (simplify_immed_subreg): Likewise.
8134
8135 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8136
8137         PR middle-end/45862
8138         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8139         (TARGET_SUPPORTS_WEAK): New.
8140         * doc/tm.texi: Regenerate.
8141         * defaults.h (SUPPORTS_WEAK): Update comment.
8142         (TARGET_SUPPORTS_WEAK): New.
8143         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8144         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8145         SUPPORTS_WEAK.
8146         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8147         make_decl_one_only): Likewise.
8148         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8149         TARGET_SUPPORTS_WEAK.
8150         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8151         instead of SUPPORTS_WEAK.
8152
8153 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8154
8155         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8156
8157 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8158
8159         * vec.h (VEC_qsort): Define.
8160         * dbxout.c (output_used_types): Use it.
8161         * df-scan.c (df_sort_and_compress_refs): Likewise.
8162         (df_sort_and_compress_mws): Likewise.
8163         * genautomata.c (uniq_sort_alt_states): Likewise.
8164         (evaluate_equiv_classes): Likewise.
8165         (output_trans_table): Likewise.
8166         (output_state): Likewise.
8167         * gimplify.c (compare_case_labels): Likewise.
8168         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8169         * ipa.c (build_cdtor_fns): Likewise.
8170         * lto.c (lto_wpa_write_files): Likewise.
8171         * sel-sched.c (fill_vec_av_set): Likewise.
8172         * tree-predcom.c (determine_roots_comp): Likewise.
8173         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8174         (splice_param_accesses): Likewise.
8175         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8176         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8177         (reassociate_bb): Likewise.
8178         * tree-ssa-sccvn.c (sort_scc): Likewise.
8179         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8180
8181 2010-10-11  Ian Lance Taylor  <iant@google.com>
8182
8183         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8184         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8185         TREE_THIS_NOTRAP when appropriate.
8186         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8187         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8188         newly created MEM_REF.
8189
8190 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8191
8192         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8193         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8194         (picochip_incoming_function_arg): Delete.
8195         (picochip_arg_advance): Delete.
8196         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8197         (FUNCTION_INCOMING_ARG): Delete.
8198         (FUNCTION_ARG_ADVANCE): Delete.
8199         * config/picochip/picochip.c (picochip_function_arg): Take a
8200         const_tree and a bool.
8201         (picochip_incoming_function_arg): Likewise.
8202         (picochip_arg_advance): Likewise.
8203         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8204         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8205
8206 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8207
8208         PR middle-end/45955
8209         * ipa.c (build_cdtor): Delete endless loop.
8210
8211 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8212
8213         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8214         checksum-options.
8215         (checksum-options): Add.
8216         (cc1-dummy): Remove.
8217         (cc1-checksum): Change to run checksum over object files
8218         and options only.
8219         * dummy-checksum.c: Remove.
8220         * genchecksum.c: Update copyright.
8221         (usage): Allow multiple arguments.
8222         (BLOCKSIZE): Add.
8223         (dosum): Change for incremental checksum. Remove C output.
8224         (main): Iterate over all argument files. Add C output.
8225
8226 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8227
8228         * params.c (set_param_value_internal): New.
8229         (set_param_value): Use set_param_value_internal.
8230         (maybe_set_param_value, set_default_param_value): New.
8231         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8232         (maybe_set_param_value, set_default_param_value): Declare.
8233         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8234         * config/i386/i386.c (ix86_option_override_internal): Use
8235         maybe_set_param_value.
8236         * config/ia64/ia64.c (ia64_option_default_params,
8237         TARGET_OPTION_DEFAULT_PARAMS): New.
8238         (ia64_option_optimization): Move some code to
8239         ia64_option_default_params.
8240         * config/picochip/picochip.c (picochip_option_override): Use
8241         maybe_set_param_value.
8242         * config/rs6000/rs6000.c (rs6000_option_default_params,
8243         TARGET_OPTION_DEFAULT_PARAMS): New.
8244         (rs6000_option_override_internal): Use maybe_set_param_value.
8245         (rs6000_option_optimization): Move some code to
8246         rs6000_option_default_params.
8247         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8248         * config/sh/sh.c (sh_option_default_params,
8249         TARGET_OPTION_DEFAULT_PARAMS): New.
8250         (sh_option_optimization): Move some code to sh_option_default_params.
8251         * config/sparc/sparc.c (sparc_option_override): Use
8252         maybe_set_param_value.
8253         * config/spu/spu.c (spu_option_default_params,
8254         TARGET_OPTION_DEFAULT_PARAMS): New.
8255         (spu_option_optimization): Move some code to spu_option_default_params.
8256         (spu_option_override): Use maybe_set_param_value.
8257         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8258         * doc/tm.texi: Regenerate.
8259         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8260         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8261         compiler_params.
8262         (default_options_optimization): Use maybe_set_param_value.
8263         (finish_options): Use maybe_set_param_value.
8264         * target.def (target_option.default_params): New hook.
8265         * toplev.c (general_init): Call targetm.target_option.default_params.
8266
8267 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8268
8269         PR tree-optimization/45902
8270         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8271         vector type for constants, unless it's a pointer.
8272
8273 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8274
8275         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8276
8277 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8278
8279         PR target/45870
8280         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8281         (ix86_delegitimize_address): Use it.
8282
8283 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8284
8285         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8286
8287 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8288
8289         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8290         to cum struct in the call to function_arg_advance.
8291         (alpha_function_arg_advance): Mark named as unused.
8292
8293 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8294
8295         * config/mips/mips.c (mips_handle_option): Make "value" with
8296         ATTRIBUTE_UNUSED.
8297
8298 2010-10-09  Richard Henderson  <rth@redhat.com>
8299
8300         PR rtl-opt/33721
8301         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8302         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8303         required_align, tidy the code a bit.  Emit split_stack code in the
8304         right place.  Mark the return value with the alignment properly.
8305         * expr.h (allocate_dynamic_stack_space): Update decl.
8306         * builtins.c (expand_builtin_apply): Update call to
8307         allocate_dynamic_stack_space.
8308         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8309         * calls.c (initialize_argument_information): Update call to
8310         allocate_dynamic_stack_space.
8311         (expand_call): Likewise.
8312
8313         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8314         Don't update_stack_alignment here.
8315         (alloc_stack_frame_space): Make ALIGN unsigned.
8316         (stack_var_cmp): Sort by alignment too.
8317         (partition_stack_vars): Don't merge large and small alignment vars.
8318         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8319         Take care when BASE is not virtual_stack_vars_rtx.
8320         (expand_stack_vars): Allocate dynamic stack space for large
8321         alignment variables.
8322         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8323         (defer_stack_allocation): True for large alignment vars.
8324         (update_stack_alignment): Merge into ...
8325         (expand_one_var): ... here.
8326         (gimple_expand_cfg): Place code from expand_stack_vars.
8327
8328 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8329
8330         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8331         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8332         (pdp11_function_arg_advance): New function.
8333         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8334
8335 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8336
8337         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8338         * libgcc2.c: Likewise.
8339
8340 2010-10-09  Richard Guenther  <rguenther@suse.de>
8341
8342         PR lto/45956
8343         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8344         Properly check if a decl is an automatic var.
8345
8346 2010-10-09  Richard Guenther  <rguenther@suse.de>
8347
8348         PR lto/45947
8349         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8350
8351 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8352
8353         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8354         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8355         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8356         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8357         bool arguments.
8358         (mmix_function_arg): New function.
8359         (mmix_function_incoming_arg): New function.
8360         (mmix_function_arg_advance): New function.
8361         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8362         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8363
8364 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8365
8366         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8367         * config/vax/vax.c (vax_function_arg): New function.
8368         (vax_function_arg_advance): New function.
8369         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8370
8371 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8372
8373         * config/pa/pa-protos.h (function_arg): Delete.
8374         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8375         * config/pa/pa.c (function_arg): Rename to...
8376         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8377         a bool.
8378         (pa_function_arg_advance): New function.
8379         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8380
8381 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8382
8383         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8384         * config/m68k/m68k.c (m68k_function_arg): New function.
8385         (m68k_function_arg_advance): New function.
8386         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8387
8388 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8389
8390         * config/avr/avr-protos.h (function_arg): Delete.
8391         (function_arg_advance): Delete.
8392         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8393         * config/avr/avr.c (function_arg): Rename to...
8394         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8395         a bool.
8396         (function_arg_advance): Rename to...
8397         (avr_function_arg_advance): ...this.  Make static.  Take a
8398         const_tree and a bool.
8399         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8400
8401 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8402
8403         * config/alpha/alpha-protos.h (function_arg): Delete.
8404         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8405         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8406         * config/alpha/alpha.c (function_arg): Rename to...
8407         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8408         a bool.  Delete TARGET_ABI_UNICOSMK code.
8409         (alpha_function_arg_advance): New function.
8410         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8411
8412 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8413
8414         * config/mep/mep-protos.h (mep_function_arg): Delete.
8415         (mep_function_arg_advance): Delete.
8416         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8417         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8418         const_tree and a bool.
8419         (mep_function_arg_advance): Likewise.
8420         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8421
8422 2010-10-09  Richard Guenther  <rguenther@suse.de>
8423
8424         PR tree-optimization/45945
8425         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8426
8427 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8428
8429         PR tree-optimization/45612
8430         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8431         Test LABEL_DECLs as well.  Fix formatting issues.
8432         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8433         whose label is present in NON_SSA_VARS.
8434         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8435         as well.  Fix formatting issues.
8436         (visit_bb): Fix typos and formatting issue.
8437
8438 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8439
8440         PR tree-optimization/45950
8441         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8442         before initializing vno->op.
8443
8444 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8445
8446         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8447         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8448
8449 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8450
8451         PR target/45913
8452         * config/i386/i386.c (ix86_binary_operator_ok): Support
8453         "andhi/andsi/anddi" as a zero-extending move.
8454
8455 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8456
8457         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8458         into a temporary array.
8459
8460 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8461
8462         PR tree-optimization/45903
8463         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8464         of {A,L}SHIFTRT of MEM.
8465
8466 2010-10-08  Richard Guenther  <rguenther@suse.de>
8467
8468         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8469         Re-construct BLOCK_VARS.
8470         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8471         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8472         * tree.c (free_lang_data_in_block): Remove.
8473         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8474         Do not touch the BLOCK tree.
8475         * expr.c (expand_expr_real_1): Allow externals.
8476
8477 2010-10-08  Richard Guenther  <rguenther@suse.de>
8478
8479         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8480         Do not output BLOCK_SUBBLOCKS.
8481         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8482         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8483         Re-construct BLOCK_SUBBLOCKS of parent block.
8484         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8485         for BINFO_BASE_ACCESSES.
8486
8487 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8488
8489         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8490         (TREE_H): Include $(FLAGS_H) instead of options.h.
8491         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8492         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8493         * common.opt (flag_complex_method, flag_evaluation_order,
8494         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8495         Variable declarations.
8496         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8497         * configure: Regenerate.
8498         * flags.h: Condition out contents for target libraries.  Include
8499         options.h at end of file.
8500         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8501         flag_evaluation_order, flag_warn_unused_result): Remove.
8502         * gcc.c (main): Intialize global_options with global_options_init.
8503         * langhooks-def.h (lhd_init_options_struct): Declare.
8504         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8505         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8506         * langhooks.c (lhd_init_options_struct): New.
8507         * langhooks.h (struct lang_hooks): Add init_options_struct.
8508         Update comment on init_options.
8509         * optc-gen.awk: Generate initializer for global_options_init, not
8510         global_options.
8511         * opth-gen.awk: Condition out structure declarations for target
8512         libraries.  Declare global_options_init.
8513         * opts-common.c: Include flags.h instead of options.h.
8514         * opts.c (flag_warn_unused_result): Remove.
8515         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8516         read_cmdline_option.
8517         (initial_lang_mask, initial_min_crossjump_insns,
8518         initial_max_fields_for_field_sensitive,
8519         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8520         (init_options_once): New.  Split out of decode_options.
8521         (init_options_struct): New.  Split out of decode_options.
8522         (decode_cmdline_options_to_array_default_mask): New.
8523         (default_options_optimization): New.  Split out of decode_options.
8524         (decode_options): Move most code to other functions.  Update call
8525         to read_cmdline_options.
8526         (finish_options): New.  Split out of decode_options.
8527         * opts.h (decode_options): Add gcc_options parameters.
8528         (init_options_once, init_options_struct,
8529         decode_cmdline_options_to_array_default_mask): New.
8530         * toplev.c (flag_complex_method, flag_ira_algorithm,
8531         flag_ira_region, flag_evaluation_order): Remove.
8532         (general_init): Use global_options_init for initial flag values
8533         for global_dc.
8534         (toplev_main): Call init_options_once, init_options_struct,
8535         lang_hooks.init_options_struct,
8536         decode_cmdline_options_to_array_default_mask and
8537         lang_hooks.init_option before decode_options.  Update arguments to
8538         decode_options.
8539         * tree.h: Include flags.h instead of options.h.
8540
8541 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8542
8543         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8544
8545 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8546
8547         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8548         Delete.
8549         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8550         (FUNCTION_INCOMING_ARG): Delete.
8551         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8552         (function_arg_slotno): Likewise.  Take bool arguments.
8553         (sparc_arg_partial_bytes): Update call to it.
8554         (function_arg): Rename to...
8555         (sparc_function_arg_1): ...this.  Take bool arguments.
8556         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8557         (function_arg_advance): Rename to...
8558         (sparc_function_arg_advance): ...this.  Take bool argument.
8559         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8560         (TARGET_FUNCTION_INCOMING_ARG): Define.
8561
8562 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8563
8564         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8565         Delete.
8566         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8567         * config/bfin/bfin.c (function_arg_advance): Rename to...
8568         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8569         and bool arguments.
8570         (function_arg): Rename to...
8571         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8572         arguments.
8573         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8574
8575 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8576
8577         * config/score/score-protos.h (score_function_arg): Delete.
8578         (score_function_arg_advance): Delete.
8579         * config/score/score3.h (score3_function_arg_advance): Take a
8580         const_tree and a bool.
8581         (score3_function_arg): Likewise.
8582         * config/score/score7.h (score7_function_arg_advance): Likewise.
8583         (score7_function_arg): Likewise.
8584         * config/score/score3.c (score3_classify_arg): Likewise.
8585         (score3_function_arg_advance, score3_function_arg): Likewise.
8586         * config/score/score7.c (score7_classify_arg): Likewise.
8587         (score7_function_arg_advance, score7_function_arg): Likewise.
8588         * config/score/score.c (score_function_arg_advance): Likewise.
8589         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8590         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8591
8592 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8593
8594         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8595         (s390_function_arg): Delete.
8596         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8597         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8598         (s390_function_arg_integer): Likewise.
8599         (s390_function_arg_advance): Make static.  Take a const_tree and
8600         a bool.
8601         (s390_function_arg): Likewise.
8602         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8603
8604 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8605
8606         * config/spu/spu-protos.h (spu_function_arg): Delete.
8607         * config/spu/spu.h (FUNCTION_ARG): Delete.
8608         (FUNCTION_ARG_ADVANCE): Move code to ...
8609         * config/spu/spu.c (spu_function_arg_advance): New function.
8610         (spu_function_arg): Make static.  Take a const_tree and a bool.
8611         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8612         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8613
8614 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8615
8616         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8617
8618 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8619
8620         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8621         (init_vn_nary_op_from_op): New function.
8622         (init_vn_nary_op_from_stmt): New function.
8623         (vn_nary_op_lookup_1): New function.
8624         (sizeof_vn_nary_op): New function.
8625         (alloc_vn_nary_op_noinit): New function.
8626         (alloc_vn_nary_op): New function.
8627         (vn_nary_op_insert_into): New function.
8628         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8629         (vn_nary_op_lookup): Likewise.
8630         (vn_nary_op_lookup_stmt): Likewise.
8631         (vn_nary_op_insert_pieces): Likewise.
8632         (vn_nary_op_insert): Likewise.
8633         (vn_nary_op_insert_stmt): Likewise.
8634         (copy_nary): Likewise.
8635         (set_value_id_for_result): New function.
8636         (set_hashtable_value_ids): Call it.
8637
8638 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8639
8640         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8641         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8642
8643 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8644
8645         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8646         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8647
8648 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8649
8650         PR debug/45656
8651         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8652         debug isnsn.  Skip them when searching for cc0 setter.
8653         (set_live_p): Skip debug insns when searching for cc0 user.
8654
8655 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8656
8657         PR debug/45673
8658         PR debug/45604
8659         PR debug/45419
8660         PR debug/45408
8661         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8662         type of MEM_REFs to INTEGER_CSTs.
8663
8664 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8665
8666         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8667         m68hc11_print_operand_address.
8668
8669 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8670
8671         * builtins.c (rewrite_call_expr): Move code to...
8672         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8673         (rewrite_call_expr_array): New function.
8674         (fold_builtin_sprintf_chk_1): New function.
8675         (fold_builtin_sprintf_chk): Call it.
8676         (gimple_fold_builtin_sprintf_chk): Likewise.
8677         (fold_builtin_snprintf_chk_1): New function.
8678         (fold_builtin_snprintf_chk): Call it.
8679         (gimple_fold_builtin_snprintf_chk): Likewise.
8680         (gimple_rewrite_call_expr): Delete.
8681
8682 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8683
8684         * config.host: Update copyright year.
8685
8686 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8687
8688         * config.host (host_lto_plugin_soname): New shell variable.
8689         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8690         * config.in: Regenerate.
8691         * configure: Regenerate.
8692         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8693         LTO plugin shared library.
8694
8695 2010-10-07  Richard Henderson  <rth@redhat.com>
8696
8697         * target.h (enum unwind_info_type): Move ...
8698         * coretypes.h: ... here.
8699
8700 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8701
8702         * doc/objc.texi (Fast enumeration protocol): Mention that
8703         'unsigned int' can also be used instead of 'unsigned long' in
8704         countByEnumeratingWithState:objects:count:.
8705
8706 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8707
8708         * tree-sra.c (struct access): New field grp_assignment_write.
8709         (dump_access): Dump grp_assignment_write.
8710         (build_accesses_from_assign): Set grp_assignment_write.
8711         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8712         (mark_read_status): Renamed to mark_rw_status, individual values
8713         renamed too.
8714         (analyze_access_subtree): Changed type of mark_write to
8715         mark_read_status.  Fixed propagating of mark_read and
8716         mark_write.  Changed benefit estimate.  Updated comment.
8717
8718 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8719
8720         PR Tree-Vect/45847
8721         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8722         check for vectype_out returned by get_vectype_for_scalar_type().
8723
8724 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8725
8726         PR target/45805
8727         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8728         constraint, add register specifier in instruction template.
8729         (neon_vec_pack_trunc_<mode>): Likewise.
8730         (neon_vec_<US>mult_<mode>): Add register specifier to
8731         instruction template.
8732
8733 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8734
8735         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8736         cygwin2.o.
8737         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8738         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8739         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8740         (cygwin2.o): Likewise.
8741         * config/i386/cygwin1.c: Delete file.
8742         * config/i386/cygwin2.c: Likewise.
8743         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8744         make all {%!mno-cygwin} ones unconditional.
8745         (STARTFILE_SPEC): Likewise.
8746         (REAL_LIBGCC_SPEC): Likewise.
8747         (LIB_SPEC): Likewise.
8748         (CXX_WRAP_SPEC): Likewise.
8749         (LINK_SPEC): Likewise.
8750         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8751         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8752         (cygwin_gplusplus_include_dir): Delete now-unused array.
8753         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8754         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8755         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8756         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8757         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8758         (cygwin_local_include_dir): Delete now-unused array.
8759         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8760         (cygwin_cross_include_dir): Delete now-unused array.
8761         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8762         (cygwin_tool_include_dir): Delete now-unused array.
8763         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8764         (cygwin_standard_include_dir): Delete now-unused array.
8765         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8766         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8767         (cvt_to_mingw): Delete now-unused array.
8768         (mingw_scan): Remove prototype of deleted function.
8769         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8770         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8771         * doc/invoke.texi (-mcygwin): Don't document removed option.
8772         (-mno-cygwin): Likewise.
8773
8774 2010-10-07  Richard Guenther  <rguenther@suse.de>
8775
8776         * machmode.h (mode_for_vector): Declare.
8777         * stor-layout.c (mode_for_vector): New function, split out from ...
8778         (layout_type): ... here.
8779         * tree-vectorizer.h (current_vector_size): Declare.
8780         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8781         mask vector type is available.
8782         (get_vectype_for_scalar_type): Rename to ...
8783         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8784         size argument.
8785         (get_vectype_for_scalar_type): New wrapper around
8786         get_vectype_for_scalar_type_and_size using current_vector_size.
8787         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8788         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8789         of vect_analyze_loop here.
8790         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8791         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8792         to autodetect.
8793         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8794         V8SF to V8SI conversion builtin.
8795
8796 2010-10-07  Richard Guenther  <rguenther@suse.de>
8797
8798         * target.def (autovectorize_vector_sizes): New target hook.
8799         * targhooks.c (default_autovectorize_vector_sizes): New function.
8800         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8801         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8802         Document.
8803         * doc/tm.texi: Update.
8804         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8805         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8806
8807 2010-10-07  Richard Guenther  <rguenther@suse.de>
8808
8809         * target.def (units_per_simd_word): Rename to ...
8810         (preferred_simd_mode): ... this.  Return mode instead of size.
8811         * targhooks.c (default_units_per_simd_word): Rename to ...
8812         (default_preferred_simd_mode): ... this.  Return word_mode.
8813         * targhooks.h (default_preferred_simd_mode): Declare.
8814         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8815         (arm_preferred_simd_mode): ... this.  Re-implement.
8816         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8817         (ix86_preferred_simd_mode): ... this.  Re-implement.
8818         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8819         (sparc_preferred_simd_mode): ... this.  Re-implement.
8820         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8821         (mips_preferred_simd_mode): ... this.  Re-implement.
8822         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8823         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8824         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8825         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8826         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8827         * doc/tm.texi: Update.
8828
8829 2010-10-07  Richard Guenther  <rguenther@suse.de>
8830
8831         PR middle-end/45869
8832         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8833         of pointers.
8834
8835 2010-10-07  Alan Modra  <amodra@gmail.com>
8836
8837         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8838         rather than sign extension by hand.
8839
8840 2010-10-07  Jan Hubicka  <jh@suse.cz>
8841
8842         PR middle-end/45926
8843         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8844
8845 2010-10-07  Richard Guenther  <rguenther@suse.de>
8846
8847         PR bootstrap/45914
8848         * configure.ac: Fix typo.
8849         * configure: Regenerated.
8850
8851 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8852
8853         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8854         define_builtin_std where it's unnecessary.
8855         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8856
8857 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8858
8859         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8860         * doc/tm.texi.in: Regenerate.
8861         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8862         * targhooks.c (default_class_likely_spilled_p): Don't use the
8863         CLASS_LIKELY_SPILLED_P macro.
8864
8865         * config/arm/arm.md: Update comment.
8866
8867 2010-10-06  Jan Hubicka  <jh@suse.cz>
8868
8869         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8870         always be removed.
8871         (cgraph_externally_visible_p): We can not bring local comdats that
8872         are known to linker; fix handling of internal visibility.
8873         (function_and_variable_visibility): Likewise.
8874
8875 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8876
8877         PR rtl-optimization/45394
8878         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8879         (struct rtx_subst_pair): Remove AFTER field.
8880         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8881         (propagate_for_debug): Remove MOVE parameter and adjust.
8882         (try_combine): In the special case where I2 is a PARALLEL, combine only
8883         destinations of SETs and set I2SRC to the I2 source.
8884         Adjust calls to propagate_for_debug throughout.
8885         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8886         insns.
8887
8888 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8889
8890         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8891         switch on insn codes as sequence of ifs.
8892
8893 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8894
8895         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8896         be UI_NONE for picochip.
8897         (picochip_option_override): Do not disable exception flags.
8898         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8899         Declare.
8900
8901 2010-10-06  Richard Guenther  <rguenther@suse.de>
8902
8903         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8904
8905 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8906
8907         Implemented fast enumeration for Objective-C.
8908         * c-parser.c (objc_could_be_foreach_context): New.
8909         (c_lex_one_token): Recognize RID_IN keyword in a potential
8910         Objective-C foreach context.
8911         (c_parser_declaration_or_fndef): Added parameter.  Accept
8912         Objective-C RID_IN keyword as terminating a declaration; in that
8913         case, return the declaration in the new parameter.
8914         (c_parser_extenral_declaration): Updated calls to
8915         c_parser_declaration_or_fndef.
8916         (c_parser_declaration_or_fndef): Same change.
8917         (c_parser_compound_statement_nostart): Same change.
8918         (c_parser_label): Same change.
8919         (c_parser_objc_methodprotolist): Same change.
8920         (c_parser_omp_for_loop): Same change.
8921         (c_parser_for_statement): Detect and parse Objective-C foreach
8922         statements.
8923         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8924         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8925         fast enumeration parsing code to turn off the c99 error but still
8926         perform checks on the loop declarations.
8927         * c-tree.h (check_for_loop_decls): Updated declaration.
8928         * doc/objc.texi: Document fast enumeration.
8929
8930 2010-10-06  Nick Clifton  <nickc@redhat.com>
8931
8932         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8933         (MDR_REGNUM): Define.
8934         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8935         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8936         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8937         (REGISTER_NAMES): Add MDR.
8938         (DWARF2_DEBUGGING_INFO): Define to 1.
8939         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8940         (F): New function.  Sets RTX_FRAME_RELATED_P.
8941         (mn10300_gen_multiple_store): Use F.
8942         (expand_prologue): Use F.  Use gen_movsf() to push floating
8943         point registers.
8944         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8945         (mn10300_option_override): Disable combine stack adjust pass.
8946
8947 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8948
8949         PR target/45901
8950         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8951         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8952
8953 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8954
8955         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8956         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8957         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8958         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8959         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8960         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8961         BUILT_IN_TOUPPER): Mark as leaf.
8962
8963         PR middle-end/45838
8964         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8965         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8966         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8967         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8968         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8969         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8970         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8971
8972 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8973
8974         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8975         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8976         (m68hc11_class_likely_spilled_p): New function.
8977
8978 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8979
8980         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8981
8982 2010-10-05  Jan Hubicka  <jh@suse.cz>
8983
8984         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8985         Document.
8986         * opts.c (decode_options): Handle lto partitions.
8987         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
8988         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
8989
8990 2010-10-05  Jan Hubicka  <jh@suse.cz>
8991
8992         * cgraphunit.c (assemble_function): Output thunks and aliases before
8993         the function itself.
8994
8995 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
8996
8997         * config/picochip/picochip.c (picochip_option_override): Disable
8998         exception flags for picochip.
8999
9000 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9001
9002         * opts-common.c (handle_option, handle_generated_option,
9003         read_cmdline_option, set_option): Add diagnostic_context
9004         parameter.  Update calls among these functions.
9005         (set_option): Don't use global_dc.
9006         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9007         (decode_options): Pass global_dc to enable_warning_as_error.
9008         (common_handle_option): Pass global_dc to enable_warning_as_error.
9009         (enable_warning_as_error): Add diagnostic_context parameter.
9010         Document parameters.  Don't use global_dc.  Pass
9011         diagnostic_context parameter to handle_generated_option.
9012         * opts.h (set_option, handle_option, handle_generated_option,
9013         read_cmdline_option, enable_warning_as_error): Add
9014         diagnostic_context parameter.
9015         * Makefile.in (lto-opts.o): Update dependencies.
9016         * coretypes.h (struct diagnostic_context, diagnostic_context):
9017         Declare here.
9018         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9019         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9020         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9021         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9022         using diagnostic_context typedef.
9023         * langhooks.c (lhd_initialize_diagnostics): Declare using
9024         diagnostic_context typedef.
9025         * langhooks.h (struct diagnostic_context): Don't declare here.
9026         (initialize_diagnostics, print_error_function): Declare using
9027         diagnostic_context typedef.
9028         * lto-opts.c: Include diagnostic.h.
9029         (lto_reissue_options): Pass global_dc to set_option.  Pass
9030         DK_UNSPECIFIED not 0.
9031         * plugin.c (plugins_internal_error_function): Declare using
9032         diagnostic_context typedef.
9033         * plugin.h (struct diagnostic_context): Don't declare here.
9034         (plugins_internal_error_function): Declare using
9035         diagnostic_context typedef.
9036
9037 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9038             Nicolas Roche  <roche@adacore.com>
9039
9040         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9041         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9042
9043 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9044
9045         PR tree-optimization/45752
9046         * tree-vect-slp.c (vect_get_mask_element): Remove static
9047         variables, make them function arguments.
9048         (vect_transform_slp_perm_load): Pass new arguments to
9049         vect_get_mask_element.
9050
9051 2010-10-05  Richard Guenther  <rguenther@suse.de>
9052
9053         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9054         (gimple_mod_pow2): Likewise.
9055         (gimple_mod_subtract): Likewise.
9056         (gimple_ic): Likewise.
9057         (gimple_stringop_fixed_value): Likewise.
9058         * tree-profile.c (tree_init_edge_profiler): Mark profile
9059         functions nothrow and leaf.
9060         (add_abnormal_goto_call_edges): Remove.
9061         (tree_gen_edge_profiler): Work on SSA form.
9062         (tree_gen_ic_profiler): Likewise.  Simplify.
9063         (do_tree_profiling): Update SSA form.
9064         (pass_tree_profile): Remove.
9065         (do_tree_profiling): Likewise.
9066         (gate_tree_profile_ipa): New function.
9067         (pass_ipa_tree_profile): New.
9068         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9069         state of instrumented functions.
9070         * passes.c (init_optimization_passes): Remove early non-SSA
9071         inlining.  Move profiling after early optimizations.
9072         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9073         (pass_ipa_early_inline): Likewise.
9074         * tree-pass.h (pass_ipa_early_inline): Remove.
9075         (pass_tree_profile): Likewise.
9076         (pass_ipa_tree_profile): Declare.
9077
9078 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9079             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9080
9081         * config/s390/s390.c (z196_cost): New.
9082         (s390_handle_arch_option): Add -march=z196.
9083         (s390_option_override): Use the new cost function and use the z10
9084         defaults also for z196.
9085         (legitimate_reload_constant_p): Adjust comment.
9086         (legitimate_reload_fp_constant_p): New function.
9087         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9088         (preferred_la_operand_p): Avoid la with index on z196.
9089         (s390_adjust_priority): Trigger also for z196.
9090         (s390_issue_rate): Issue rate for z196 is 3.
9091         (s390_z10_fix_long_loop_prediction): Rename to ...
9092         (s390_fix_long_loop_prediction): ... this.
9093         (s390_reorg): Apply the z10 adjustments also for z196.
9094         (s390_loop_unroll_adjust): Do this also for z196.
9095         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9096         (enum processor_flags): Add PF_Z196.
9097         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9098         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9099         * config.gcc: Enable z196 for --with-arch.
9100         * config/s390/2817.md: New file.
9101         * config/s390/2084.md: New type for multiply and add.
9102         * config/s390/2097.md: Likewise.
9103         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9104         (UNSPECV_ATOMIC_OP): New constants.
9105         (fmadddf, fmaddsf): New values for type attribute.
9106         (z196prop): New insn attribute.
9107         (cpu, cpu_facility): Add z196.
9108         (ATOMIC_Z196): New code iterator.
9109         (noxa): New code attribute.
9110         (gk): New mode attribute.
9111         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9112         Support load zero for fp constants.
9113         (fixuns_truncdddi2, fixuns_trunctddi2)
9114         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9115         for z196.
9116         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9117         (popcounthi2, popcountqi2): New expander.
9118         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9119         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9120         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9121         insn definition.
9122         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9123         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9124         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9125         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9126         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9127         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9128         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9129         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9130         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9131         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9132         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9133         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9134         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9135         Support new z196 instructions.
9136
9137 2010-10-05  Richard Guenther  <rguenther@suse.de>
9138
9139         PR middle-end/45877
9140         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9141         case where gimplification optimizes away the stmt.
9142
9143 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9144
9145         PR debug/45849
9146         * var-tracking.c (strip_pointer_flags): New function.
9147         (emit_note_insn_var_location): If rtx_equal_p check failed,
9148         retry on locations simplified with simplify_replace_fn_rtx
9149         and strip_pointer_flags as its callback.
9150
9151 2010-10-04  Jan Hubicka  <jh@suse.cz>
9152
9153         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9154         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9155         value; handle comdats too.
9156         (canonicalize_constructor_val): Use it; handle function_decls
9157         correctly.
9158         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9159         * gimple.c (get_base_address): Accept all kinds of decls.
9160
9161 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9162
9163         * flags.h (g_switch_value, g_switch_set): Remove.
9164         * opts.c (g_switch_value, g_switch_set): Remove.
9165         * config/g.opt (G): Add Var(g_switch_value).
9166         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9167         (alpha_option_override): Check global_options_set.x_g_switch_value
9168         instead of g_switch_set.
9169         (alpha_in_small_data_p): Remove cast in comparison with
9170         g_switch_value.
9171         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9172         g_switch_value to unsigned HOST_WIDE_INT.
9173         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9174         with g_switch_value.
9175         (frv_handle_option): Don't handle -G here.
9176         (frv_option_override): Check global_options_set.x_g_switch_value
9177         instead of g_switch_set.  Don't modify g_switch_set.
9178         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9179         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9180         g_switch_value to unsigned HOST_WIDE_INT.
9181         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9182         (ia64_option_override): Check global_options_set.x_g_switch_value
9183         instead of g_switch_set.
9184         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9185         Remove.
9186         (lm32_in_small_data_p): Remove cast in comparison with
9187         g_switch_value.
9188         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9189         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9190         HOST_WIDE_INT.
9191         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9192         (m32r_init): Check global_options_set.x_g_switch_value instead of
9193         g_switch_set.
9194         (m32r_in_small_data_p): Remove cast in comparison with
9195         g_switch_value.
9196         (m32r_file_start): Format g_switch_value with %d.
9197         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9198         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9199         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9200         handle -G here.
9201         (microblaze_option_override): Check
9202         global_options_set.x_g_switch_value instead of g_switch_set.
9203         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9204         (mips_option_override): Check global_options_set.x_g_switch_value
9205         instead of g_switch_set.
9206         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9207         (rs6000_file_start): Format g_switch_value with %d.
9208         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9209         comparisons with g_switch_value.
9210         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9211         global_options_set.x_g_switch_value instead of g_switch_set.
9212         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9213         global_options_set.x_g_switch_value instead of g_switch_set.
9214         * config/score/score.c (score_handle_option): Don't handle -G here.
9215         * config/score/score3.c (score3_option_override): Check
9216         global_options_set.x_g_switch_value instead of g_switch_set.
9217         * config/score/score7.c (score7_option_override): Check
9218         global_options_set.x_g_switch_value instead of g_switch_set.
9219
9220 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9221
9222         * common.opt (fira-coalesce): Remove.
9223
9224         * doc/invoke.texi (flag_ira_coalesce): Remove.
9225
9226         * ira-color.c (allocno_coalesced_p): Move before
9227         copy_freq_compare_func.
9228         processed_coalesced_allocno_bitmap): Ditto.
9229         (update_conflict_hard_regno_costs): Don't use
9230         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9231         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9232         (assign_hard_reg): Assume no coalesced allocnos.
9233         (get_coalesced_allocnos_attributes): Remove.
9234         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9235         (push_allocno_to_stack): Ditto.
9236         (remove_allocno_from_bucket_and_push): Use
9237         ira_print_expanded_allocno instead of print_coalesced_allocno.
9238         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9239         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9240         all_conflicting_hard_regs.
9241         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9242         (setup_allocno_left_conflicts_size): Ditto.
9243         (put_allocno_into_bucket): Ditto.
9244         (copy_freq_compare_func): Remove.
9245         (copy_freq_compare_func, merge_allocnos): Move before
9246         coalesced_pseudo_reg_freq_compare.
9247         coalesced_allocno_conflict_p): Ditto.
9248         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9249         parameter.  Assume it true.
9250         (color_allocnos): Assume uncoalesced allocnos.  Use
9251         ira_print_expanded_allocno instead of print_coalesced_allocno.
9252         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9253         parameter.
9254
9255         * ira.c: Remove comment about coalescing.
9256
9257 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9258
9259         * config/mips/mips.h (target_flags_explicit): Declare for
9260         GENERATOR_FILE.
9261
9262 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9263
9264         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9265         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9266
9267 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9268
9269         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9270         multilib osdirname if it exists.
9271         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9272
9273 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9274
9275         PR middle-end/45876
9276         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9277         arg0's type or its unsigned counterpart as utype.  Convert
9278         arg1 to utype unconditionally.
9279
9280 2010-10-04  Julian Brown  <julian@codesourcery.com>
9281
9282         * expr.c (expand_assignment): Add assertion to prevent emitting
9283         null rtx for movmisalign pattern.
9284         (expand_expr_real_1): Likewise.
9285         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9286         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9287         (arm_vector_alignment_reachable): New.
9288         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9289         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9290         (arm_print_operand): Include alignment qualifier in %A.
9291         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9292         (movmisalign<mode>): New expander.
9293         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9294         insn patterns.
9295
9296 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9297
9298         * optc-gen.awk: Define global_options_set.  Don't define
9299         target_flags_explicit.
9300         * opth-gen.awk: Declare global_options_set.  Define
9301         target_flags_explicit as macro.
9302         * opts-common.c (handle_option): Take opts_set and generated_p
9303         parameters.
9304         (handle_generated_option, read_cmdline_option, set_option): Take
9305         opts_set parameter.
9306         (set_option): Use opts_set instead of hardcoding target_flags and
9307         target_flags_explicit.
9308         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9309         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9310         flag_value_profile_transformations_set, flag_peel_loops_set,
9311         flag_branch_probabilities_set, flag_inline_functions_set,
9312         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9313         flag_predictive_commoning_set, flag_unswitch_loops_set,
9314         flag_gcse_after_reload_set): Remove.
9315         (common_handle_option, lang_handle_option, target_handle_option):
9316         Take opts_set parameter.  Assert that it is &global_options_set.
9317         (common_handle_option): Don't set _set variables.  Check opts_set
9318         instead of such variables.
9319         (enable_warning_as_error): Pass &global_options_set to
9320         handle_generated_option.
9321         * opts.h (cl_option_handler_func.handler, set_option,
9322         handle_option, handle_generated_option, read_cmdline_option): Add
9323         opts_set parameters.
9324         (handle_option): Add generated_p parameter.
9325         * config/i386/i386.c (ix86_function_specific_save,
9326         ix86_function_specific_restore): Updat for renaming of
9327         target_flags_explicit field.
9328         * config/i386/i386.opt (target_flags_explicit): Rename to
9329         ix86_target_flags_explicit.
9330         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9331         global_options_set.x_flag_selective_scheduling and
9332         global_options_set.x_flag_selective_scheduling2, not
9333         sel_sched_switch_set.
9334         * flags.h (sel_sched_switch_set,
9335         flag_speculative_prefetching_set): Remove.
9336         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9337         that it is &global_options_set.
9338         (process_command): Pass &global_options_set to read_cmdline_option.
9339         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9340         set_option.
9341         * toplev.c (target_flags_explicit): Remove.
9342
9343 2010-10-04  Jan Hubicka  <jh@suse.cz>
9344
9345         PR middle-end/45871
9346         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9347         use get_ref_base_and_offset to handle references.
9348         (fold_const_aggregate_ref): Update.
9349
9350 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9351
9352         PR tree-optimization/45572
9353         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9354         ipa_check_create_node_params.
9355         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9356
9357 2010-10-04  Yao Qi  <yao@codesourcery.com>
9358
9359         * doc/passes.texi: Clean up.
9360
9361 2010-10-03  Ian Lance Taylor  <iant@google.com>
9362
9363         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9364         referring to a field using a typedef name.
9365         (find_anonymous_field_with_type): New static function.
9366         (convert_to_anonymous_field): New static function.
9367         (convert_for_assignment): If -fplan9-extensions, permit converting
9368         pointer to struct to pointer to anonymous field.
9369         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9370         (is_duplicate_field): New static function.
9371         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9372         typedef names duplicating field names.
9373         (detect_field_duplicates): Likewise.
9374         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9375         (C Dialect Options): Document -fplan9-extensions.
9376         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9377
9378 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9379
9380         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9381         revision 164914.
9382         (vect_create_data_ref_ptr): Likewise.
9383         * tree-vect-stmts.c (vectorizable_store): Likewise.
9384         (perm_mask_for_reverse): Likewise.
9385         (reverse_vec_elements): Likewise.
9386         (vectorizable_load): Likewise.
9387
9388 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9389
9390         * cppbuiltin.c: New file.
9391         * cppbuiltin.h: New file.
9392         * Makefile.in: Take into account cppbuiltin.{h,c}.
9393
9394 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9395
9396         * lto-cgraph.c (input_cgraph): Check for missing sections.
9397
9398 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9399
9400         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9401         to nonimmediate_operand.  Force operand 2 to register when allowed.
9402         (*<shiftrt_insn><mode>3_mask): Ditto.
9403         (*<rotate_insn><mode>3_mask): Ditto.
9404
9405 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9406
9407         PR tree-optimization/45720
9408         PR tree-optimization/45764
9409         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9410         Don't accept backwards consecutive accesses.
9411         (vect_create_data_ref_ptr): Disallow negative steps.
9412
9413         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9414         (perm_mask_for_reverse): Removed.
9415         (reverse_vec_elements): Likewise.
9416         (vectorizable_load): Don't handle negative steps.
9417
9418 2010-10-02  Jan Hubicka  <jh@suse.cz>
9419
9420         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9421         call destination is known.
9422
9423 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9424
9425         PR target/45820
9426         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9427         earlier.
9428
9429 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9430
9431         * doc/install.texi (Configuration): Document build_configargs,
9432         host_configargs, target_configargs.
9433
9434 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9435
9436         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9437         (*<shiftrt_insn><mode>3_mask): Ditto.
9438         (*<rotate_insn><mode>3_mask): Ditto.
9439
9440 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9441
9442         PR tree-optimization/44716
9443         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9444         (HOT_TEXT_SECTION_NAME): Define.
9445
9446 2010-10-01  Nick Clifton  <nickc@redhat.com>
9447
9448         * common.opt: Add -fcombine-stack-adjustments.
9449         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9450         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9451         flag_combine_stack_adjustments.
9452         * doc/invoke.texi: Document the new option.
9453
9454 2010-10-01  Richard Guenther  <rguenther@suse.de>
9455
9456         PR tree-optimization/45854
9457         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9458
9459 2010-10-01  Anthony Green  <green@moxielogic.com>
9460
9461         * config.gcc: Fix moxie-*-rtems* configuration.
9462
9463 2010-10-01  Richard Guenther  <rguenther@suse.de>
9464
9465         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9466         (gen_decl_die): Likewise.
9467
9468 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9469
9470         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9471         to the function code for SPU MD builtins.
9472         (spu_expand_builtin): Update.
9473         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9474
9475 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9476
9477         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9478         sjlj_except_unwind_info.
9479
9480 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9481
9482         * configure.ac: Define the nop insn for avr*-*-*
9483         * configure: Regenerate.
9484
9485 2010-10-01  Alan Modra  <amodra@gmail.com>
9486
9487         PR target/45807
9488         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9489         extend toc_restore_insn.
9490
9491 2010-09-30  Richard Guenther  <rguenther@suse.de>
9492
9493         PR tree-optimization/43959
9494         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9495         create_tmp_var.
9496
9497 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9498
9499         * config/sh/sh.c (sh_expand_prologue): Set
9500         current_function_static_stack_size.
9501
9502 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9503
9504         * configure.ac: Check for Solaris 8 ld with .hidden support.
9505         * configure: Regenerate.
9506
9507 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9508
9509         PR middle-end/45758
9510         * graphite.c (graphite_initialize): Call scev_reset.
9511
9512 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9513
9514         * sese.h (scev_analyzable_p): Return false for real or floating
9515         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9516
9517 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9518
9519         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9520         and ps.
9521         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9522         domain.
9523         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9524         Do not allocate ub_expr, it is passed in initialized.
9525
9526 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9527
9528         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9529         (build_cloog_prog): Dump CLooG input file when
9530         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9531         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9532
9533 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9534
9535         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9536         verify_dominators for CDI_POST_DOMINATORS.
9537         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9538         (recompute_all_dominators): Remove call to free_dominance_info
9539         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9540         for CDI_POST_DOMINATORS.
9541
9542 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9543
9544         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9545         over pbb_dim_iter_domain.
9546
9547 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9548
9549         * graphite-flattening.c: Fix comments.
9550
9551 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9552
9553         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9554         (graphite-flattening.o): New rule.
9555         * common.opt (floop-flatten): New flag.
9556         * doc/invoke.texi (-floop-flatten): Documented.
9557         * graphite-flattening.c: New.
9558         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9559         * graphite-poly.h (flatten_all_loops): Declared.
9560         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9561         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9562         is set, also set flag_graphite.
9563
9564 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9565
9566         * graphite-poly.c (cloog_checksum): New.
9567         * graphite-poly.h (cloog_checksum): Declared.
9568
9569 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9570
9571         * graphite-poly.c (pbb_number_of_iterations): Removed.
9572         (pbb_number_of_iterations_at_time): Correctly compute the number
9573         of iterations in the transformed loop.
9574         * graphite-poly.h (pbb_number_of_iterations): Removed.
9575
9576 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9577
9578         * graphite-poly.h (lst_update_scattering_seq): Removed.
9579         (lst_update_scattering): Correctly handle outermost loop dewey
9580         renumbering.
9581
9582 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9583
9584         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9585         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9586         * graphite-poly.h (lst_niter_for_loop): New.
9587
9588 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9589
9590         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9591         transform read from disk is not legal.  Call fatal_error instead.
9592
9593 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9594
9595         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9596         (print_scop_header): Removed.  Inlined in the only call place...
9597         (print_scop): ... here.
9598
9599 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9600
9601         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9602
9603 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9604
9605         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9606
9607 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9608
9609         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9610         (dot_deps_stmt): Same.
9611         * graphite-poly.c (dot_lst): Same.
9612
9613 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9614
9615         * graphite-blocking.c (scop_do_strip_mine): Do not call
9616         graphite_legal_transform.
9617         (scop_do_block): Same.
9618
9619 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9620
9621         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9622         description.
9623
9624 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9625
9626         * tree-scalar-evolution.c (instantiate_array_ref): New.
9627         (instantiate_scev_r): Also handle ARRAY_REFs.
9628
9629 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9630
9631         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9632         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9633         RESULT_DECL, and FIELD_DECL.  Return false for an
9634         SSA_NAME_IS_DEFAULT_DEF.
9635         (compute_scalar_evolution_in_loop): Do not further analyze the
9636         scalar evolution when no_evolution_in_loop_p returns true.
9637
9638 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9639
9640         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9641         whether CHREC_LEFT is invariant.  A function is affine when
9642         CHREC_RIGHT is invariant.
9643
9644 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9645
9646         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9647         is_gimple_reg.
9648         (rewrite_degenerate_phi): Same.
9649         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9650
9651 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9652
9653         * graphite-scop-detection.c (graphite_can_represent_scev,
9654         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9655         graphite_can_represent_loop): Remove outermost_loop.
9656
9657 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9658
9659         PR middle-end/45229
9660         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9661         handle GIMPLE_CALLs with no LHS.
9662
9663 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9664
9665         * graphite-poly.c (init_graphite_out_file): New.
9666         (init_graphite_in_file): New.
9667         (apply_poly_transforms): Updated to enable reading and writing of
9668         multiple scop files.
9669
9670 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9671
9672         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9673         redundant checks.
9674
9675 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9676
9677         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9678         computation of precision by 1.
9679
9680 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9681
9682         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9683         (openscop_read_polyhedron_matrix): New.
9684         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9685         (openscop_read_N_int): Same.
9686         * graphite-poly.c (openscop_read_N_int): New.
9687         (openscop_read_one_int): New.
9688         (openscop_read_N_string): New.
9689         (openscop_read_one_string): New.
9690         (openscop_read_powerset_matrix): New.
9691         (graphite_read_transforms): Remove.
9692         (graphite_read_scatt): New.
9693         (graphite_read_scop_file): New.
9694         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9695
9696 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9697
9698         * graphite-poly.c: Change include order.
9699
9700 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9701
9702         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9703         (cloog_matrix_nrows): New.
9704
9705 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9706
9707         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9708         from matrix lines.
9709         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9710         (print_scattering_function_1): Same.
9711         (openscop_print_pbb_domain): Same.
9712         (openscop_print_scop_context): Same.
9713         (print_scop_context): Same.
9714
9715 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9716
9717         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9718         (openscop_print_pdr_polyhedron): Print pph.
9719
9720 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9721
9722         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9723         priority signed types.
9724
9725 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9726
9727         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9728         the call to lang_hooks.types.type_for_size.  Call
9729         build_nonstandard_integer_type.
9730
9731 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9732
9733         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9734         (openscop_print_polyhedron_matrix): New.
9735         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9736         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9737         (openscop_print_pdr_powerset): New.
9738         (openscop_print_powerset_matrix): New.
9739         (openscop_print_scattering_function_1): New.
9740         (print_scattering_function): Add support for scattering names and
9741         OpenScop format.
9742         (graphite_write_transforms): Remove.
9743         (print_pdr_access_layout): Updated to support OpenScop format.
9744         (print_pdr): Same.
9745         (openscop_print_pbb_domain): New.
9746         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9747         is not provided.
9748         (print_pbb): Updated to call the new print_pbb_body.
9749         (openscop_print_scop_context): New.
9750         (print_scop_header): New.
9751         (print_scop): Updated to call print_scop_header.
9752         * graphite-poly.h: Document OpenScop format.
9753
9754 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9755
9756         * config/cris/m32c.c (cris_memory_move_cost): New.
9757         (cris_register_move_cost): Make static. Change arguments type from
9758         enum reg_class to reg_class_t.
9759         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9760         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9761         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9762
9763 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9764
9765         PR target/45843
9766         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9767         INTVAL (XEXP (slot, 1)) as prev_size.
9768
9769 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9770
9771         PR target/45837
9772         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9773         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9774         defined.
9775         * config/rs6000/option-defaults.h (toplevel): Change #if
9776         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9777         global option changes.
9778
9779 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9780
9781         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9782
9783         PR tree-optimization/31261
9784         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9785         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9786
9787 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9788
9789         PR bootstrap/45796
9790         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9791         special-casing for generators and turn into ...
9792         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9793         rule, for better error messages in case of toplevel dependency errors.
9794         (genprog): Add hooks, rename to ...
9795         (genprogerr): ... this, and let genprog also contain check,
9796         checksum, condmd.
9797         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9798         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9799         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9800
9801 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9802             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9803
9804         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9805         for GMP, MPFR and MPC.
9806
9807 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9808
9809         * config/sparc/sparc.opt (mimpure-text): Move ...
9810         * config/sol2.opt: ... here.  Correct description.
9811         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9812         * doc/invoke.texi (Option Summary, SPARC Options): Move
9813         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9814         (Option Summary, Solaris 2 Options): ... here.
9815         (Submodel Options, Solaris 2 Options): New menu entry.
9816         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9817         (Solaris 2 Options): ... here.
9818
9819 2010-09-30  Michael Eager  <eager@eagercon.com>
9820
9821         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9822         (save_volatiles): Describe option for MicroBlaze.
9823         * invoke.texi: Add MicroBlaze Options.
9824         * contrib.texi: Add acknowledgment.
9825         * md.texi: Add MicroBlaze d and z constraints.
9826         * install.texi: Add microblaze-*-elf.
9827         * configure.ac: Add microblaze-*-* to target list.
9828         * configure: Regenerate.
9829         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9830         * config/microblaze/microblaze-protos.h: New.
9831         * config/microblaze/crti.s: New.
9832         * config/microblaze/predicates.md: New.
9833         * config/microblaze/linux.h: New.
9834         * config/microblaze/microblaze.md: New.
9835         * config/microblaze/constraints.md: New.
9836         * config/microblaze/crtn.s: New.
9837         * config/microblaze/microblaze.opt: New.
9838         * config/microblaze/microblaze-c.c: New.
9839         * config/microblaze/t-microblaze: New.
9840         * config/microblaze/microblaze.c: New.
9841         * config/microblaze/microblaze.h: New.
9842
9843 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9844
9845         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9846         parse @optional/@required and set the flags as appropriate.
9847
9848 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9849
9850         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9851
9852 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9853
9854         * opt-functions.awk (static_var): Update comment.
9855         (var_ref): Return offsetof expression or -1, not variable address.
9856         * optc-gen.awk: Generate structure field initializers instead of
9857         static variables.  Expect -1 for missing variables instead of null
9858         pointer.  Add gcc_options parameters to generated functions.
9859         * opth-gen.awk: Generate structure fields for static variables.
9860         Add gcc_options parameters to generated functions.
9861         * common.opt (optimize, optimize_size): Add variables.
9862         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9863         &global_options to cl_target_option_restore.
9864         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9865         &global_options to cl_optimization_restore, cl_target_option_save
9866         and cl_target_option_restore.
9867         (ix86_set_current_function): Pass &global_options to
9868         cl_target_option_restore.
9869         * config/pdp11/pdp11.h (optimize): Remove.
9870         * config/rs6000/rs6000.h (optimize): Remove.
9871         * config/sh/sh.h (optimize): Remove.
9872         * config/xtensa/xtensa.h (optimize): Remove.
9873         * coretypes.h (struct gcc_options): Declare.
9874         * diagnostic.c (diagnostic_initialize): Initialize
9875         context->option_state.
9876         (diagnostic_report_diagnostic): Pass option_state to
9877         option_enabled hook.
9878         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9879         parameter.
9880         (diagnostic_context.option_state): New field.
9881         * final.c (final_start_function, final, final_scan_insn): Rename
9882         optimize parameter to optimize_p.
9883         * flags.h (optimize, optimize_size): Remove.
9884         * function.c (invoke_set_current_function_hook): Pass
9885         &global_options to cl_optimization_restore.
9886         * gcc.c (driver_handle_option): Take gcc_options parameter.
9887         Assert that it is &global_options.
9888         (process_command): Pass &global_options to read_cmdline_option.
9889         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9890         option_enabled.
9891         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9892         &global_options to set_option.
9893         * opts-common.c (handle_option, handle_generated_option,
9894         read_cmdline_option, set_option): Take explicit gcc_options
9895         parameters.  Use option_flag_var.
9896         (option_flag_var): New.
9897         * opts.c (common_handle_option, lang_handle_option,
9898         target_handle_option): Take gcc_options parameter.  Assert that it
9899         is &global_options.
9900         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9901         (print_filtered_help): Use option_flag_var.  Pass &global_options
9902         to option_enabled.
9903         (common_handle_option): Use option_flag_var.
9904         (option_enabled): Take opts parameter.  Use option_flag_var.
9905         (get_option_state): Take gcc_options parameter.  Use
9906         option_flag_var.  Pass gcc_options parameter to option_enabled.
9907         (enable_warning_as_error): Pass &global_options to
9908         handle_generated_option.
9909         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9910         (cl_option_handler_func.handler): Take gcc_options parameter.
9911         (option_enabled, get_option_state, set_option, handle_option,
9912         handle_generated_option, read_cmdline_option): Take gcc_options
9913         parameters.
9914         * toplev.c (optimize, optimize_size): Remove.
9915         (print_switch_values): Pass &global_options to option_enabled.
9916         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9917         to get_option_state.
9918         (general_init): Initialize global_dc->option_state.
9919         * tree.c (build_optimization_node): Pass &global_options to
9920         cl_optimization_save.
9921         (build_target_option_node): Pass &global_options to
9922         cl_target_option_save.
9923
9924 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9925
9926         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9927         zero sized bit-fields.
9928
9929 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9930
9931         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9932         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9933         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9934         (c_parser_objc_class_declaration): Same change.
9935         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9936         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9937         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9938         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9939         and RID_AT_PUBLIC instead of RID_PUBLIC.
9940         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9941         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9942
9943 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9944
9945         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9946         Add links to current providers of packages for Solaris and IRIX.
9947
9948 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9949
9950         Merge from 'apple/trunk' branch on FSF servers.
9951         * c-parser.c: Applied change originally in c-parse.in.
9952
9953         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9954
9955         Radar 4281748
9956         * c-decl.c (start_decl): Check for redeclaration of class name.
9957         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9958
9959 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9960
9961         * config/ia64/ia64.c (ia64_builtin_decl): New.
9962         (TARGET_BUILTIN_DECL): Define.
9963         (ia64_builtins): New.
9964         (ia64_init_builtins): Save decls in ia64_builtins.
9965
9966 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9967
9968         PR target/40457
9969         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9970         (move2add_use_add3_insn): Likewise.
9971         (reload_cse_move2add): Likewise.
9972         * rtlanal.c (get_full_rtx_cost): New function.
9973         * rtl.h (struct full_rtx_costs): New.
9974         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9975         costs_add_n_insns): New inline functions.
9976         (get_full_rtx_cost): Declare.
9977
9978         PR c/45054
9979         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9980         invariants.  Check for reg_equiv_invariant.
9981         (reload): Assert that spilled_pseudos is empty when returning.
9982
9983 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9984
9985         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9986         TARGET_64BIT_DEFAULT in #if check.
9987
9988 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
9989
9990         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
9991
9992 2010-09-29  Mike Stump  <mikestump@comcast.net>
9993
9994         * config/darwin.h (flag_mkernel): Remove.
9995         (flag_apple_kext): Likewise.
9996
9997 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
9998             Jack Howarth  <howarth@bromo.med.uc.edu>
9999
10000         * config/darwin.opt (undefined): Add.
10001
10002 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10003
10004         PR testsuite/45664
10005         * configure.ac: Add --enable-indirect-function option.
10006         * config.gcc: Add default_gnu_indirect_function.
10007         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10008         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10009         * varasm.c (do_assemble_alias): Adjust for macro name change.
10010         * configure: Rebuilt.
10011         * doc/install.texi: Document --enable-indirect-function.
10012
10013 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10014
10015         * doc/options.texi (Variable, Var, Init): Update documentation
10016         without reference to VarExists.
10017         (VarExists): Remove.
10018         * common.opt, config/i386/i386.opt, config/linux.opt,
10019         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10020         Don't use VarExists.
10021
10022 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10023
10024         * optc-gen.awk: Generate global_options initializer instead of
10025         individual variables.  Add x_ prefix to names of structure members.
10026         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10027         names of structure members.
10028         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10029         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10030         * doc/tm.texi: Regenerate.
10031         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10032         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10033         * c-parser.c (disable_extension_diagnostics,
10034         restore_extension_diagnostics): Update names of cpp_options members.
10035         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10036         * common.opt (fcompare-debug-second): Don't use Var.
10037         * config/alpha/alpha.h (target_flags): Remove.
10038         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10039         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10040         * config/bfin/bfin.h (target_flags): Remove.
10041         * config/cris/cris.h (target_flags): Remove.
10042         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10043         cl_target_option members.
10044         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10045         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10046         ix86_can_inline_p): Update names of cl_target_option members.
10047         * config/i386/i386.h (ix86_isa_flags): Remove.
10048         * config/lm32/lm32.h (target_flags): Remove.
10049         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10050         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10051         flag_omit_frame_pointer.
10052         * config/mep/mep.h (target_flags): Remove.
10053         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10054         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10055         * config/mmix/mmix.h (target_flags): Remove.
10056         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10057         flag_expensive_optimizations): Remove.
10058         * config/s390/s390.h (flag_pic): Remove.
10059         * config/score/score-conv.h (target_flags): Remove.
10060         * config/sh/sh.h (sh_fixed_range_str): Remove.
10061         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10062         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10063         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10064         * diagnostic.c (diagnostic_initialize): Update names of
10065         diagnostic_context members.
10066         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10067         warn_system_headers.
10068         (diagnostic_report_warnings_p): Update for new names.
10069         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10070         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10071         HARD_FRAME_POINTER_IS_ARG_POINTER.
10072         * flags.h (flag_compare_debug): Declare.
10073         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10074         * opts.c (flag_compare_debug): Define.
10075         (common_handle_option): Update names of diagnostic_context
10076         members.  Handle -fcompare-debug-second.
10077         (fast_math_flags_struct_set_p): Update names of cl_optimization
10078         members.
10079         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10080         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10081         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10082         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10083         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10084         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10085         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10086         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10087         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10088
10089 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10090
10091         * config/picochip/picochip.c (picochip_output_internal_label):
10092         This function can now be called for debug CFI labels, which can come
10093         in the middle of a vliw instruction.  Postpone until end of vliw.
10094
10095 2010-09-29  Richard Guenther  <rguenther@suse.de>
10096
10097         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10098         (DECL_FILE_SCOPE_P): Use it.
10099         (TYPE_FILE_SCOPE_P): New macro.
10100
10101 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10102
10103         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10104         a CPP_NAME which is a reserved word, clearly separate cases for
10105         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10106
10107 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10108
10109         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10110         token->value with the canonical spelling.  Do exactly like C and
10111         C++ and leave it as it is.
10112
10113 2010-09-28  Richard Henderson  <rth@redhat.com>
10114
10115         * config/alpha/alpha.c (alpha_builtins): New.
10116         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10117         (alpha_builtin_function): New.
10118         (alpha_add_builtins, alpha_init_builtins): Use it.
10119
10120 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10121
10122         * doc/standards.texi (Standards): Expanded the section on
10123         Objective-C and Objective-C++.
10124
10125 2010-09-28  DJ Delorie  <dj@redhat.com>
10126
10127         PR target/45800
10128         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10129         volatile MEMs.
10130
10131 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10132
10133         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10134         attributes on methods.
10135          (c_parser_objc_method_definition): Handle attributes.
10136         (c_parser_objc_methodproto): Likewise.
10137         (c_parser_objc_maybe_method_attributes): New.
10138         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10139         missing definition, similar to that in ObjC++.
10140
10141 2010-09-28  Richard Henderson  <rth@redhat.com>
10142
10143         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10144         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10145         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10146         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10147         (STACK_CHECK_PROTECT): Likewise.
10148         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10149         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10150         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10151         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10152         (dwarf2out_assembly_start): Likewise.
10153         * except.c (init_eh): Use targetm.except_unwind_info.
10154         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10155         (output_one_function_exception_table): Likewise.
10156         * final.c: Unconditionally include dwarf2out.h.
10157         (final_start_function): Unconditionally call dwarf2out routines.
10158         (final_end_function, final_scan_insn): Likewise.
10159         * function.c (expand_function_end): Use targetm.except_unwind_info.
10160         * opts.c (decode_options): Use targetm.except_unwind_info.
10161         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10162         * target.def (debug_unwind_info, except_unwind_info): New.
10163         * target.h (enum unwind_info_type): New.
10164         * targhooks.c (default_debug_unwind_info): New.
10165         (default_except_unwind_info): New.
10166         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10167         * targhooks.h: Declare them.
10168         * tree-tailcall.c: Include "target.h"
10169         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10170         * Makefile.in (tree-tailcall.o): Update.
10171         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10172         (lhd_gcc_personality): Likewise.
10173
10174         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10175         (TARGET_EXCEPT_UNWIND_INFO): New.
10176         (DWARF2_UNWIND_INFO): Update.
10177         (TARGET_DEBUG_UNWIND_INFO): New.
10178         * doc/tm.texi: Rebuild.
10179
10180         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10181         targetm.except_unwind_info.
10182
10183         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10184         (arm_except_unwind_info): New.
10185         (arm_compute_func_type): Use it.
10186         (arm_expand_prologue, thumb_pushpop): Likewise.
10187         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10188         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10189         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10190         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10191         (DWARF2_UNWIND_INFO): Remove.
10192         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10193         (ARM_EABI_UNWIND_TABLES): Remove.
10194
10195         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10196         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10197         (ia64_except_unwind_info): New.
10198         (ia64_output_function_prologue): Use it.
10199         (ia64_add_bundle_selector_before): Likewise.
10200         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10201         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10202         (TARGET_UNWIND_INFO): Remove.
10203
10204         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10205
10206 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10207
10208         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10209         (c_parser_objc_protocol_definition): Likewise.
10210         (c_parser_external_declaration): Provide dummy attribute arguments.
10211         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10212         (c_parser_objc_class_definition): Handle attributes.
10213         (c_parser_objc_protocol_definition): Likewise.
10214
10215 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10216
10217         PR fortran/40569
10218         PR fortran/40568
10219         * toplev.h (save_decoded_options, save_decoded_options_count):
10220         New global variables.
10221         * toplev.c (save_decoded_options, save_decoded_options_count):
10222         Export variables.
10223
10224 2010-09-28  Ian Lance Taylor  <iant@google.com>
10225
10226         * config/i386/i386.c (ix86_supports_split_stack): Test
10227         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10228
10229 2010-09-28  Ian Lance Taylor  <iant@google.com>
10230
10231         PR target/45815
10232         * opts.c (decode_options): Don't test whether the target supports
10233         split stack if flag_split_stack == 0.
10234
10235 2010-09-28  Jan Hubicka  <jh@suse.cz>
10236
10237         * builtin-attrs.def (ATTR_LEAF): New attribute.
10238         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10239         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10240         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10241         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10242         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10243         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10244         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10245         * sync-builtins.def: Annotate all builtins by leaf.
10246         * omp-builtins.def: Annotate all builtins by leaf.
10247         * builtins.def: Annotate relevant builtins with leaf attribute.
10248         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10249         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10250         leaf.
10251
10252 2010-09-28  Jan Hubicka  <jh@suse.cz>
10253
10254         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10255         (fold_const_aggregate_ref): Use it.
10256         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10257         into external static.
10258
10259 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10260
10261         PR target/44452
10262         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10263         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10264         (ix86_solaris_return_in_memory): Remove.
10265         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10266         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10267         (TARGET_SUBTARGET_DEFAULT): Redefine.
10268         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10269         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10270         (TARGET_SUBTARGET_DEFAULT): Redefine.
10271         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10272         -mvect8-ret-in-mem.
10273         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10274
10275 2010-09-29  Alan Modra  <amodra@gmail.com>
10276
10277         PR target/45807
10278         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10279         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10280         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10281         Delete.
10282         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10283         (rs6000_emit_prologue): Don't just create frame save info for r2,
10284         actually save r2.
10285
10286 2010-09-28  Richard Henderson  <rth@redhat.com>
10287
10288         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10289         when 8 bytes are requested.
10290
10291 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10292
10293         * config/avr/avr.c (expand_prologue): Set
10294         current_function_static_stack_size.
10295
10296 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10297
10298         * config/alpha/alpha.md: Change the initial condition of the
10299         probing loop.
10300
10301 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10302
10303         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10304         Split from *avx_<maxmin:code><mode>3.
10305         (*avx_<smaxmin:code><mode>3): Ditto.
10306         * config/i386/i386.md (maxmin): Remove code iterator.
10307
10308 2010-09-27  Ian Lance Taylor  <iant@google.com>
10309
10310         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10311         requires assembler support for CFI directives.
10312
10313 2010-09-27  Richard Henderson  <rth@redhat.com>
10314
10315         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10316
10317 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10318
10319         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10320         that AFTER is not in the range FROM..TO, inclusive.
10321
10322 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10323             Bernd Schmidt  <bernds@codesourcery.com>
10324
10325         PR rtl-optimization/45792
10326         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10327         If not all insns are to be merged, for each edge, stash the
10328         next candidate after the to-be-merged insns before doing the
10329         merge, and use them for the retry at the new insertion point.
10330         Handle CC0 targets when retrying.
10331
10332 2010-09-27  Ian Lance Taylor  <iant@google.com>
10333
10334         * common.opt (fsplit-stack): New option.
10335         * opts.c (decode_options): Set flag_split_stack to final value.
10336         * target.def (supports_split_stack): New hook.
10337         * gcc.c (STACK_SPLIT_SPEC): Define.
10338         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10339         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10340         (Code Gen Options): Document -fsplit-stack.
10341         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10342         (Function Attributes): Document no_split_stack.
10343         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10344         TARGET_SUPPORTS_SPLIT_STACK.
10345         * doc/tm.texi: Rebuild.
10346         * function.c (thread_prologue_and_epilogue_insns): If
10347         flag_split_stack, add split stack prologue.
10348         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10349         * varasm.c (saw_no_split_stack): New static variable.
10350         (assemble_start_function): Set saw_no_split_stack if the function
10351         has the no_split_stack attribute.
10352         (file_end_indicate_split_stack): New function.
10353         * output.h (file_end_indicate_split_stack): Declare.
10354         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10355         and function.
10356         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10357         routines.
10358         * config/i386/i386.c (ix86_option_override_internal): Don't set
10359         expand_builtin_va_start to NULL if -fsplit-stack.
10360         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10361         -fsplit-stack.
10362         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10363         scratch register set by prologue.
10364         (ix86_code_end): If -fsplit-stack, call
10365         file_end_indicate_split_stack.
10366         (ix86_supports_split_stack): New static function.
10367         (SPLIT_STACK_AVAILABLE): Define.
10368         (split_stack_prologue_scratch_regno): New static function.
10369         (split_stack_fn): New static variable.
10370         (ix86_expand_split_stack_prologue): New function.
10371         (ix86_live_on_entry): New static function.
10372         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10373         (output_pic_addr_const): Likewise.
10374         (i386_asm_output_addr_const_extra): Likewise.
10375         (ix86_expand_call): Change return type to rtx.  Return the new
10376         call instruction.
10377         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10378         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10379         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10380         (split_stack_prologue, split_stack_return): New insns.
10381         (split_stack_space_check): New insn.
10382         * config/i386/i386.h (struct machine_function): Add
10383         split_stack_varargs_pointer field.
10384         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10385         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10386         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10387         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10388         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10389         Declare.
10390         (ix86_expand_call): Update declaration.
10391
10392 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10393
10394         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10395         code.  Added byref, which was missing in the list of codes.
10396         Explain that enumeration values are encoded as the integer type
10397         that the compiler uses to store them.  Explain and make examples
10398         of how 'const' interacts with pointers, and the complication of
10399         the encoding of 'const char *'.
10400         (Legacy type encoding): New subsection, explaining that GCC emits
10401         incorrect type encodings for the NeXT runtime for compatibility
10402         reasons.
10403         (@@encode): New subsection, explaining @encode and particularly
10404         that protocol qualifiers are not recognized inside an @encode()
10405         expression.
10406         (Method signatures): New subsection, explaining how method
10407         signatures are encoded.
10408
10409 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10410
10411         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10412         change in build_conditional_expr that had been added when fixing
10413         PR objc/27377 and which did the same check in a less complete way.
10414
10415         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10416
10417         Radar 4229905
10418         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10419         looking for objective-c common pointer types.
10420
10421         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10422
10423         Radar 4154928
10424         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10425         use their ObjC common type.
10426
10427 2010-09-27  Richard Guenther  <rguenther@suse.de>
10428
10429         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10430
10431 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10432
10433         * print-tree.c (print_node): Print in-constant-pool.
10434
10435 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10436
10437         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10438         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10439         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10440         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10441
10442 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10443
10444         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10445         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10446         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10447         pro_epilogue_adjust_stack_<mode>_3.
10448         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10449         renamed pro_epilogue_adjust_stack_{si,di}_add.
10450         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10451         pro_epilogue_adjust_stack_{si,di}_sub.
10452
10453 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10454
10455         * config/i386/i386.md (movmsk_df): New insn.
10456         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10457         sequence for TARGET_SSE_MATH.
10458
10459 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10460
10461         * config/mips/mips.c (mips_builtin_decls): Declare.
10462         (mips_init_builtins): Store function declarations in
10463         mips_builtin_decls.
10464         (mips_builtin_decl): New function.
10465         (TARGET_BUILTIN_DECL): Define.
10466
10467 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10468             Richard Henderson  <rth@redhat.com>
10469
10470         * config/i386/cygwin.asm: Include auto-host.h.
10471         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10472         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10473         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10474         alignment code from the 64-bit path.  Use gas local labels.
10475         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10476         from _di_2.  Remove the useless constant integer argument.
10477         (pro_epilogue_adjust_stack_<mode>_3): New.
10478         (allocate_stack_worker_probe_<mode>): Macroize from
10479         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10480         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10481         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10482         (__chkstk_ms): New function.
10483         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10484         * config/i386/t-interix: Likewise.
10485         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10486         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10487         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10488         * configure, config.in: Rebuild.
10489
10490 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10491
10492         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10493         statements because of the return slot optimization.
10494
10495 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10496
10497         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10498         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10499         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10500         (class_likely_spilled_p): Rename to...
10501         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10502         type to reg_class_t.
10503
10504 2010-09-24  Jan Hubicka  <jh@suse.cz>
10505
10506         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10507         (lto_symtab_resolve_symbols): Set it.
10508         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10509         store resolution field in cgraph/varpool.
10510         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10511         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10512         (cgraph_dump_node): Drop used_from_object_file.
10513         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10514         (cgraph_function_body_availability): Use decl_replaceable_p.
10515         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10516         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10517         cgraph_used_from_object_file_p.
10518         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10519         cgraph_used_from_object_file_p.
10520         (resolution_used_from_other_file_p): New functoin.
10521         (cgraph_used_from_object_file_p): New predicate.
10522         * cgraph.h: Include plugin-api.h
10523         (struct cgraph_local_info): Remove used_from_object_file.
10524         (struct cgraph_node): Add resolution field.
10525         (struct varpool_node): Likewise; remove used_from_object_file;
10526         reove const_value_known.
10527         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10528         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10529         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10530         varpool_used_from_object_file_p): Declare.
10531         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10532         * tree.h (DECL_REPLACEABLE_P): Remove.
10533         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10534         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10535         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10536         input_overwrite_node, input_node, input_varpool_node): Stream
10537         resolution.
10538         * expr.c (expand_expr_real_1): Use const_value_known_p
10539         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10540         const_value_known.
10541         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10542         (function_and_variable_visibility): Set resolution for local vars
10543         and functions; use varpool_used_from_object_file_p.
10544         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10545         static functions.
10546         (default_binds_local_p_1): Use resolutoin info.
10547         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10548         * varpool.c (varpool_get_node): Constify.
10549         (const_value_known_p): Do not use vnode->const_value_known;
10550         use decl_replaceable_p.
10551         (varpool_finalize_decl): Do not set const_value_known.
10552         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10553         (varpool_extra_name_alias): Return new node.
10554         (varpool_used_from_object_file_p): New function.
10555
10556 2010-09-24  Richard Henderson  <rth@redhat.com>
10557
10558         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10559         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10560         (do_spill): Use REG_CFA_OFFSET.
10561         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10562         as appropriate.
10563         (ia64_expand_epilogue): Likewise.
10564         (process_set): Split into ...
10565         (process_cfa_adjust_cfa): this,
10566         (process_cfa_register): this,
10567         (process_cfa_offset): and this new function.
10568         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10569         instead of REG_FRAME_RELATED_EXPR.
10570
10571 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10572
10573         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10574
10575 2010-09-24  Jan Hubicka  <jh@suse.cz>
10576
10577         * doc/extend.texi: (attribute leaf): Document.
10578         * tree.c (local_define_builtin): Handle ECF_LEAF.
10579         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10580         * tree.h (ECF_LEAF): New.
10581         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10582         overwrittable and unavailable functions.
10583         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10584         (copy_global_bitmap): Do not copy all_module_statics.
10585         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10586         (propagate): Handle overwritable and unavailable leaf functions;
10587         initialize global info for overwritable and unavailable leaf functions;
10588         do not free all module statics.
10589         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10590         local statics.
10591         * calls.c (flags_from_decl_or_type): Handle leaf.
10592         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10593         abnormal gotos.
10594
10595 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10596
10597         * gengtype.c: Reindented.
10598         * gengtype.h: Reindented.
10599         * gengtype-parse.c: Reindented.
10600
10601 2010-09-24  Jan Hubicka  <jh@suse.cz>
10602
10603         PR tree-optimization/45738
10604         PR tree-optimization/45741
10605         * expr.c (string_constant): Allow CONST_DECL too;
10606         check that DECL_INITIAL is set.
10607         * varpool.c (const_value_known_p): Only look into VAR_DECL
10608         and CONST_DECL.
10609
10610 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10611
10612         * common.opt (undef): New.
10613
10614 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10615
10616         PR middle-end/45234
10617         * rtl.h (enum global_rtl_index): Add
10618         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10619         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10620         (virtual_preferred_stack_boundary_rtx,
10621         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10622         (LAST_VIRTUAL_REGISTER): Increase by one.
10623         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10624         instead of LAST_VIRTUAL_REGISTER.
10625         * function.c (instantiate_new_reg): Handle
10626         virtual_preferred_stack_boundary_rtx.
10627         * emit-rtl.c (init_virtual_regs): Handle
10628         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10629         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10630         * explow.c (round_push): If crtl->preferred_stack_boundary
10631         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10632         virtual_preferred_stack_boundary_rtx alignment instead of
10633         crtl->preferred_stack_boundary alignment.
10634         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10635         macros.  Never decrease crtl->preferred_stack_boundary,
10636         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10637         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10638         stack_pointer_delta in dynamic allocation, even when size
10639         is constant.
10640         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10641         macro.
10642         * print-rtl.c (print_rtx): Handle
10643         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10644         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10645         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10646         * config/frv/frv.c (frv_emit_movsi): Likewise.
10647         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10648         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10649         Likewise.
10650
10651         Revert:
10652         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10653
10654         PR middle-end/45234
10655         * calls.c (expand_call): Make sure that all variable sized
10656         adjustments are multiple of preferred stack boundary after
10657         stack alignment.
10658
10659 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10660             Dominique Dhumieres  <dominiq@lps.ens.fr>
10661
10662         PR bootstrap/45751
10663         * config/darwin-driver.c (darwin_default_min_version):
10664         Adjust size passed to memcpy in two places.
10665
10666 2010-09-24  Richard Guenther  <rguenther@suse.de>
10667
10668         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10669         Make sure to not call set_type_context with error_mark_node.
10670         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10671
10672 2010-09-24  Richard Guenther  <rguenther@suse.de>
10673
10674         * Makefile.in (OBJS-onestep): Remove.
10675         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10676         (libbackend.a): Remove onestep support.
10677         (libbackend.o): Remove.
10678         * configure.ac (--enable-intermodule): Remove.
10679         * configure: Regenerate.
10680
10681 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10682
10683         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10684         reaching the end of a block if it occurs at a DEBUG_INSN.
10685
10686 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10687
10688         PR target/44242
10689         * config/vms/vms-crt0-64.c: Removed.
10690         * config/vms/vms-crt0.c: Removed.
10691         * config/vms/vms-psxcrt0-64.c: Removed.
10692         * config/vms/vms-psxcrt0.c: Removed.
10693         * config/vms/vms-ucrt0.c: New file.
10694         * config/vms/t-vms64: Removed.
10695         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10696         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10697         * config.gcc (alpha-dec-vms): Use t-vms.
10698
10699 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10700
10701         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10702         underfull hbox in DVI output.
10703         (-fobjc-class-cxx-cdtors): Same change.
10704         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10705         option does, but moved the (lenghty) description of the exception
10706         syntax into objc.texi.
10707         (-fobjc-gc): Explain that the option is not useful with the GNU
10708         runtime.
10709         (-fzero-link): Explain that the GNU runtime always works in
10710         "zero-link" mode.
10711         * doc/objc.texi: All sections: simplified @node declarations
10712         removing specification of next, previous, up node.
10713         (Objective-C): Updated introduction.
10714         (Garbage Collection): Updated.  The bohem-gc library is now
10715         included in gcc itself.  Mention that this section only applies to
10716         the GNU Objective-C runtime.
10717         (compatibility_alias): Small tidy up.
10718         (Exceptions): New section mostly containing text previously in the
10719         description of the -fobjc-exception command-line option.
10720         (Synchronization): Same.
10721
10722 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10723
10724         * config/i386/i386.md (ix86_code_end): Move the initialization of
10725         xops array near the consumer.  Use AX_REG and SP_REG instead of
10726         numerical constants.
10727
10728 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10729
10730         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10731         method [methodname]' for an Objective-C method instead of the less
10732         satisfactory 'too many arguments to function' (with no method name).
10733
10734 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10735
10736         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10737         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10738         (execute_update_addresses_taken): Remove parameter.  Execute the
10739         optimization unconditionally.
10740         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10741         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10742         if TODO_update_address_taken is set.
10743
10744 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10745
10746         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10747         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10748         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10749         (arm_output_addr_const_extra): Make static.
10750
10751 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10752
10753         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10754         define as unspec_volatile.
10755         ("nops"): Define as unspec_volatile. Use fputs to write to
10756         asm_out_file directly.  Output NOPs on separate lines using while loop.
10757         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10758         asm_out_file directly.  Output NOPs on separate lines using while loop.
10759
10760 2010-09-23  Richard Guenther  <rguenther@suse.de>
10761
10762         PR tree-optimization/45565
10763         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10764         Make sure to adjust the fndecl before replacing the stmt.
10765
10766 2010-09-23  Richard Guenther  <rguenther@suse.de>
10767
10768         PR middle-end/45750
10769         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10770         gimplifying MEM_REF.
10771
10772 2010-09-23  Alan Modra  <amodra@gmail.com>
10773
10774         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10775         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10776
10777 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10778
10779         PR rtl-optimization/44374
10780         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10781         * df-core.c (df_set_bb_dirty): Set it.
10782         * ifcvt.c (find_memory): Remove function.
10783         (dead_or_predicable): Use can_move_insns_across.
10784         * df.h (can_move_insns_across): Declare function.
10785         * cfgcleanup.c (block_was_dirty): New static variable.
10786         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10787         than df_get_bb_dirty.
10788         (try_head_merge_bb): New static function.
10789         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10790         is set.
10791         * df-problems.c: Include "target.h"
10792         (df_simulate_find_uses): New static function.
10793         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10794         (find_memory, find_memory_store): New static functions.
10795         (can_move_insns_across): New function.
10796         * Makefile.in (df-problems.o): Update dependencies.
10797
10798 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10799
10800         PR java/44095
10801         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10802         is specified and the suffix of the file isn't ".c".
10803         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10804
10805 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10806
10807         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10808         * doc/cppopts.texi: Fix markup of index entry.
10809         * doc/extend.texi (Constructing Calls): Fix markup of
10810         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10811         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10812         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10813         keywords.
10814         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10815         avoid long lines.
10816         (C Dialect Options, C++ Dialect Options, Warning Options)
10817         (Debugging Options, Spec Files, Darwin Options)
10818         (i386 and x86-64 Options, MIPS Options)
10819         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10820         index entries, avoid abbreviations, allow URLs to wrap, avoid
10821         long lines, avoid overlong pages from long @itemx lists.
10822         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10823         * doc/standards.texi (Standards): Likewise.
10824         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10825
10826 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10827
10828         * opts-common.c (prune_options): Make static.  Work with decoded
10829         options.
10830         (decode_cmdline_options_to_array): Call prune_options.  Don't
10831         resize option array here.
10832         * opts.h (prune_options): Remove prototype.
10833         * gcc.c (process_command): Take decoded options; don't call
10834         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10835         (main): Call decode_cmdline_options_to_array here instead of
10836         prune_options.  Update call to process_command.
10837         * config/darwin-driver.c: Include opts.h.
10838         (darwin_default_min_version): Work with decoded options.  Don't
10839         handle -b or -V here.
10840         * config/darwin.h (darwin_default_min_version): Update prototype.
10841         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10842         darwin_default_min_version.
10843         * config/i386/cygwin.h (mingw_scan): Update prototype.
10844         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10845         * config/i386/cygwin1.c: Include opts.h.
10846         (mingw_scan): Work with decoded options.
10847         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10848         * config/t-darwin (darwin-driver.o): Update dependencies.
10849
10850 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10851
10852         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10853         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10854         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10855         -force-link, -force-link=, -language, -language=,
10856         -library-directory, -library-directory=, -no-canonical-prefixes,
10857         -no-standard-libraries, -no-warnings, -optimize, -output,
10858         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10859         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10860         -print-file-name=, -print-libgcc-file-name,
10861         -print-multi-directory, -print-multi-lib,
10862         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10863         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10864         -profile, -save-temps, -shared, -specs, -specs=, -static,
10865         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10866         symbolic): New.
10867         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10868         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10869         Remove comment.
10870         (cc1_options): Correct specs for passing down --help,
10871         --target-help and --help=*.  Add spec for passing down --version.
10872         (struct option_map, option_map, target_option_translations,
10873         translate_options): Remove.
10874         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10875         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10876         OPT_fhelp_ and OPT_ftarget_help.
10877         (process_command): Don't call translate_options.  Call
10878         decode_cmdline_options_to_array before checking for
10879         -no-canonical-prefixes using decoded options.
10880         * opts-common.c (tm.h): Update comment on #include.
10881         (find_opt): Allow abbreviations of long options.
10882         (struct option_map, option_map): New.
10883         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10884         and -mno handling.
10885         (target_option_translations): New.
10886         (decode_cmdline_options_to_array): Handle
10887         TARGET_OPTION_TRANSLATE_TABLE in driver.
10888         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10889         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10890
10891 2010-09-22  Richard Guenther  <rguenther@suse.de>
10892
10893         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10894         only if we inlined something.  Block compaction and conditional
10895         folding are done by cfg cleanup.  Schedule update-address-taken.
10896         (tree_function_versioning): Remove redundant call to number_blocks.
10897         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10898         folding is done by cfg cleanup.
10899         * passes.c (init_optimization_passes): Remove update-address-taken
10900         pass after IPA inlining.
10901
10902 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10903
10904         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10905         to update conditions. Fix reg_mode[] check.
10906
10907 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10908
10909         * config/picochip/picochip.md (movhicc): Use expand to check whether
10910         movhicc is available and split it after reload.
10911
10912 2010-09-22  Richard Guenther  <rguenther@suse.de>
10913
10914         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10915         callee edges here.
10916         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10917         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10918         (pass_cleanup_cfg): Likewise.
10919         (execute_fixup_cfg): Cleanup.
10920         * tree-pass.h (pass_cleanup_cfg): Remove.
10921
10922 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10923
10924         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10925         builtins if it is true.
10926         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10927         parameter.
10928
10929 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10930
10931         * tree-sra.c (struct access): New field grp_no_warning.
10932         (create_access_replacement): Set TREE_NO_WARNING according to
10933          grp_no_warning.
10934         (create_artificial_child_access): Use build_ref_for_model and set
10935         grp_no_warning if build_user_friendly_ref_for_offset fails.
10936         (propagate_subaccesses_across_link): Likewise.
10937
10938 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10939
10940         PR target/35664
10941         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10942         ('f'): Likewise.
10943
10944 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10945
10946         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10947
10948 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10949
10950         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10951         * config/i386/i386.c (decide_alg): Update for rename.
10952
10953 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10954
10955         PR rtl-optimization/45739
10956         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10957         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10958
10959 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10960
10961         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10962         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10963         Remove.
10964         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10965         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10966
10967 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10968
10969         PR objc/23710
10970         * c-parser.c (c_parser_objc_method_definition): Check the return
10971         value of objc_start_method_definition and if false is returned,
10972         parse the method definition but emit no code.
10973
10974 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10975
10976         PR objc/25965
10977         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10978         call objc_get_interface_ivars ().
10979
10980 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10981
10982         PR target/45694
10983         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10984         static chain-register is used for 64-bit.
10985
10986 2010-09-21  Richard Guenther  <rguenther@suse.de>
10987
10988         * dwarf2out.c (is_cu_die): New function.
10989         (add_pubtype): Use it.
10990         (gen_subprogram_die): Likewise.
10991         (gen_struct_or_union_type_die): Likewise.
10992         (dwarf2out_finish): Likewise.
10993         (comp_unit_die): Rename to ...
10994         (single_comp_unit_die): ... this.
10995         (comp_unit_die): New function lazily constructing and
10996         returning single_comp_unit_die.
10997         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
10998         base_type_die, subrange_type_die, modified_type_die,
10999         lower_bound_default, add_bound_info, add_prototyped_attribute,
11000         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11001         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11002         force_decl_die, gen_namespace_die, dwarf2out_decl,
11003         dwarf2out_start_source_file, dwarf2out_end_source_file,
11004         prune_unused_types, dwarf2out_finish): Use it.
11005         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11006         the global list of translation-unit decls.
11007         (dwarf2out_init): Do not create single_comp_unit_die here.
11008         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11009
11010 2010-09-21  Richard Guenther  <rguenther@suse.de>
11011
11012         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11013         for bool for C++.
11014
11015 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11016
11017         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11018         (qhs_extenddi_cstr): Likewise.
11019         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11020         them for the source operand.
11021
11022 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11023
11024         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11025         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11026         (ix86_split_ashr): Ditto.
11027         (ix86_split_lshr): Ditto.
11028
11029 2010-09-21  Richard Guenther  <rguenther@suse.de>
11030
11031         PR tree-optimization/45580
11032         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11033         regular uses.
11034         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11035         virtuals fold the call into a regular indirect one.
11036
11037 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11038
11039         PR rtl-optimization/42775
11040         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11041         scheduling is enabled.
11042
11043 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11044
11045         PR rtl-optimization/45728
11046         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11047         gen_lowpart_common first and if that fails, force_reg first
11048         before calling gen_lowpart.
11049
11050         PR middle-end/45678
11051         * cfgexpand.c (expand_one_stack_var_at): Use
11052         crtl->max_used_stack_slot_alignment as max_align, instead
11053         of maximum of that and PREFERRED_STACK_BOUNDARY.
11054         Don't call update_stack_alignment.
11055
11056 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11057
11058         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11059         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11060         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11061         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11062         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11063         (build_nonstandard_integer_type): Likewise.
11064         (build_range_type_1): New function, built from...
11065         (build_range_type): ...this.  Call build_range_type_1.
11066         (build_nonshared_range_type): New function.
11067         (build_array_type_1): New function, built from...
11068         (build_array_type: ...this.  Call build_array_type_1.
11069         (build_nonshared_array_type): New function.
11070         * tree.h (build_nonshared_range_type): Declare.
11071         (build_nonshared_array_type): Likewise.
11072
11073 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11074
11075         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11076         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11077         (arm_class_likely_spilled_p): New function.
11078
11079 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11080
11081         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11082         indirect functions.
11083         (ix86_split_ashl): Ditto.
11084         (ix86_split_ashr): Ditto.
11085         (ix86_split_lshr): Ditto.
11086         (ix86_adjust_counter): Ditto.
11087
11088 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11089
11090         * c-family/c-common.h (constant_string_class): Documented with
11091         comment identical to the one already in c-common.c.
11092
11093 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11094
11095         * dwarf2out.c (any_cfis_emitted): New static variable.
11096         (add_fde_cfi): Set it.
11097         (dwarf2out_frame_debug): Clear it before processing,
11098         if it is set afterwards, flush any queued reg saves.
11099
11100         PR debug/45124
11101         * dwarf2out.c (add_accessibility_attribute): Assume
11102         DW_ACCESS_private as the default for dwarf_version > 2
11103         and DW_TAG_class_type parent.
11104         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11105         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11106
11107 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11108
11109         PR target/45726
11110         * arm.md (arm_movt): Only enable on machines with MOVT.
11111
11112 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11113
11114         * config/arm/arm.c (arm_address_offset_is_imm): New.
11115         (arm_early_store_addr_dep): New.
11116         (arm_early_load_addr_dep): New.
11117         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11118         (arm_early_load_addr_dep): Declare.
11119         (arm_address_offset_is_imm): Declare.
11120         * config/arm/cortex-m4.md: New file.
11121         * config/arm/cortex-m4-fpu.md: New file.
11122         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11123         (attr generic_sched): Exclude cortexm4.
11124         (attr generic_vfp): Exclude cortexm4.
11125
11126 2010-09-20  Richard Guenther  <rguenther@suse.de>
11127
11128         PR middle-end/45704
11129         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11130
11131 2010-09-20  Jan Hubicka  <jh@suse.cz>
11132
11133         PR tree-optimize/45605
11134         * cgraph.h (const_value_known_p): Declare.
11135         (varpool_decide_const_value_known): Remove.
11136         * tree-ssa-ccp.c (get_base_constructor): Use it.
11137         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11138         * expr.c (string_constant): Likewise.
11139         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11140         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11141         function_and_variable_visibility): Likewise.
11142         * gimplify.c (gimplify_call_expr): Likewise.
11143         * gimple-fold.c (get_symbol_constant_value): Likewise.
11144         * varpool.c (varpool_decide_const_value_known): Replace by...
11145         (const_value_known_p): ... this one; handle other kinds of DECLs
11146         too and work for automatic vars.
11147         (varpool_finalize_decl): Use const_value_known_p.
11148
11149 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11150
11151         PR target/45726
11152         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11153
11154 2010-09-20  Richard Guenther  <rguenther@suse.de>
11155
11156         PR tree-optimization/45705
11157         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11158
11159 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11160
11161         PR rtl-optimization/45695
11162         * combine.c (try_combine): When splitting a two set pattern,
11163         make sure the pattern which will be put into i2 doesn't use REGs
11164         or MEMs set by insns in between i2 and i3.
11165
11166 2010-09-19  Jan Hubicka  <jh@suse.cz>
11167
11168         PR lto/44246
11169         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11170         processing same node twice.
11171
11172 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11173
11174         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11175         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11176         (bfin_class_likely_spilled_p): New function
11177
11178 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11179
11180         PR tree-optimization/45714
11181         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11182         created in vectorizable_call instead of the original statement in
11183         def stmt updates.
11184
11185 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11186
11187         * config/i386/i386-protos.h (split_double_mode): New prototype.
11188         (split_di, split_ti): Remove prototypes.
11189         * config/i386/i386.c (split_double_mode): New function.
11190         (split_di, split_ti): Remove.
11191         (ix86_expand_branch): Use split_double_mode.
11192         (ix86_split_to_parts): Ditto.
11193         (ix86_split_ashl): Ditto.
11194         (ix86_split_ashr): Ditto.
11195         (ix86_split_lshr): Ditto.
11196         (ix86_force_to_memory): Ditto.
11197         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11198
11199 2010-09-18  Jan Hubicka  <jh@suse.cz>
11200
11201         PR tree-optimization/45453
11202         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11203         virtual functions are reachable.
11204         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11205         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11206         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11207         when modifying function.
11208
11209 2010-09-18  Jan Hubicka  <jh@suse.cz>
11210
11211         PR tree-optimization/45605
11212         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11213         * gimple-fold.c (static_object_in_other_unit_p): New function.
11214         (canonicalize_constructor_val): Use it.
11215         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11216         returning NULL.
11217         (gimple_fold_obj_type_ref_known_binfo): Use
11218         static_object_in_other_unit_p.
11219
11220 2010-09-18  Richard Guenther  <rguenther@suse.de>
11221
11222         PR tree-optimization/45709
11223         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11224         insertions until after all PHI nodes of the block are processed.
11225
11226 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11227
11228         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11229
11230 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11231
11232         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11233
11234 2010-09-18  Richard Guenther  <rguenther@suse.de>
11235
11236         PR tree-optimization/45709
11237         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11238
11239 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11240
11241         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11242         (dot_deps_stmt): Same.
11243         * graphite-poly.c (dot_lst): Same.
11244         * graphite-scop-detection.c (dot_all_scops): Same.
11245         (dot_scop): Same.
11246
11247 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11248
11249         Revert:
11250         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11251
11252         * tree-data-ref.c (dot_rdg_1): Added back.
11253         (dot_rdg): Same.  Added "#if 0" around system call.
11254
11255 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11256             Richard Henderson  <rth@redhat.com>
11257
11258         * config/i386/i386.c (initial_ix86_tune_features): Add
11259         X86_TUNE_PAD_SHORT_FUNCTION.
11260         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11261         (ix86_count_insn): New.
11262         (ix86_pad_short_function): Likewise.
11263         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11264
11265         * config/i386/i386.h (ix86_tune_indices): Add
11266         X86_TUNE_PAD_SHORT_FUNCTION.
11267         (TARGET_PAD_SHORT_FUNCTION): New.
11268
11269         * config/i386/i386.md (UNSPEC_NOPS): New.
11270         (nops): Likewise.
11271
11272 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11273
11274         PR middle-end/45234
11275         * calls.c (expand_call): Make sure that all variable sized
11276         adjustments are multiple of preferred stack boundary after
11277         stack alignment.
11278
11279 2010-09-17  DJ Delorie  <dj@redhat.com>
11280
11281         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11282         passed an invalid value, print an error instead of ICEing.
11283         (valid_psw_flag): New.
11284         (rx_expand_builtin): Call it for setpsw/clrpsw.
11285         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11286
11287         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11288         (bitclr_in_memory): Likewise.
11289         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11290
11291 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11292
11293         PR middle-end/45678
11294         * cfgexpand.c (update_stack_alignment): New.
11295         (get_decl_align_unit): Use it.
11296         (expand_one_stack_var_at): Call update_stack_alignment.
11297
11298 2010-09-17  Richard Guenther  <rguenther@suse.de>
11299
11300         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11301         Properly copy the read string.
11302
11303 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11304
11305         * doc/options.texi (Variable): Document.
11306         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11307         generate target_flags declarations explicitly.  Don't define
11308         VarExists variables for the driver.
11309         * common.opt (target_flags): New Variable record.
11310         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11311         flag_var_tracking, flag_var_tracking_assignments,
11312         flag_var_tracking_assignments_toggle): Don't mark variables with
11313         VarExists.
11314         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11315         * config/i386/i386.opt (ix86_isa_flags): Define here.
11316         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11317         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11318         VarExists.
11319         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11320         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11321         Only define for generator programs.
11322         * rtlanal.c (target_flags): Remove.
11323         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11324         flag_var_tracking_assignments_toggle): Remove.
11325
11326 2010-09-17  Michael Matz  <matz@suse.de>
11327
11328         PR tree-optimization/43432
11329         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11330         Accept backwards consecutive accesses.
11331         (vect_create_data_ref_ptr): If step is negative generate
11332         decreasing IVs.
11333         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11334         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11335         (vectorizable_load): Handle loads with negative steps when easily
11336         possible.
11337
11338 2010-09-03  Jan Hubicka  <jh@suse.cz>
11339
11340         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11341
11342 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11343
11344         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11345         Adjust comments. Declare.
11346         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11347         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11348
11349 2010-09-17  Richard Guenther  <rguenther@suse.de>
11350
11351         * common.opt (combine): Remove.
11352         * gcc.c (default_compilers): Remove specs testing combine.
11353         The C compilers no longer can combine.
11354         (option_map): Remove -combine.
11355         (display_help): Remove -combine.
11356         (driver_handle_option): Remove OPT_combine handling.
11357         (compile_input_file_p): Remove.
11358         (do_spec): Remove code concerning combine.
11359         (main): Likewise.
11360         * doc/invoke.texi: Remove traces of -combine.
11361         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11362
11363 2010-09-17  Richard Guenther  <rguenther@suse.de>
11364
11365         PR middle-end/45678
11366         * builtins.c (fold_builtin_memory_op): Always properly adjust
11367         alignment of memory accesses.
11368
11369 2010-09-16  Jan Hubicka  <jh@suse.cz>
11370
11371         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11372         processing clone.
11373
11374 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11375
11376         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11377
11378         * config/i386/i386.c (predict_jump): Add prototype.
11379         (flag_opts): Add -m8bit-idiv.
11380         (ix86_split_idivmod): New.
11381
11382         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11383         Add 2 splitters for SI/DI mode divide.
11384         (divmod<mode>4_1): New pattern.
11385         (udivmod<mode>4_1): Likewise.
11386         (testdi_ccno_1): Likewise.
11387
11388         * config/i386/i386.opt (m8bit-idiv): New.
11389
11390         * doc/invoke.texi: Document -m8bit-idiv.
11391
11392 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11393
11394         PR bootstrap/45680
11395         * config/i386/i386.c (min_insn_size): Moved out of the
11396         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11397
11398 2010-09-16  Jan Hubicka  <jh@suse.cz>
11399
11400         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11401         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11402         unreachable clones with reachable clones.
11403         * tree-inline.c (copy_bb): Fix sanity checking when producing
11404         unreachable clone.
11405
11406 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11407
11408         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11409         (TARGET_MEMORY_MOVE_COST): Define.
11410         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11411
11412 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11413
11414         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11415         maybe_tidy_empty_bb.
11416
11417         Revert:
11418         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11419         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11420
11421 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11422
11423         * target.def (target_option.optimization): New hook.
11424         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11425         TARGET_OPTION_OPTIMIZATION hook.
11426         * doc/tm.texi: Regenerate.
11427         * hooks.c (hook_void_int_int): New.
11428         * hooks.h (hook_void_int_int): Declare.
11429         * opts.c: Don't include tm_p.h.
11430         (decode_options): Use targetm.target_option.optimization instead
11431         of OPTIMIZATION_OPTIONS.
11432         * system.h (OPTIMIZATION_OPTIONS): Poison.
11433         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11434         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11435         (arm_optimization_options): Rename to arm_option_optimization.
11436         Make static.
11437         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11438         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11439         (cris_option_optimization): New.
11440         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11441         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11442         (crx_option_optimization): New.
11443         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11444         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11445         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11446         (frv_optimization_options): Rename to frv_option_optimization.
11447         Make static.
11448         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11449         * config/h8300/h8300.c (h8300_option_optimization): New.
11450         (TARGET_OPTION_OPTIMIZATION): Define.
11451         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11452         * config/i386/i386-protos.h (optimization_options): Remove.
11453         * config/i386/i386.c (optimization_options): Rename to
11454         ix86_option_optimization.  Make static.
11455         (TARGET_OPTION_OPTIMIZATION): Define.
11456         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11457         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11458         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11459         (ia64_optimization_options): Rename to ia64_option_optimization.
11460         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11461         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11462         commented-out definition.
11463         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11464         instead of OPTIMIZATION_OPTIONS.
11465         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11466         (m32r_option_optimization): New.
11467         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11468         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11469         Remove.
11470         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11471         (mcore_option_optimization): New.
11472         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11473         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11474         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11475         (mep_optimization_options): Rename to mep_option_optimization.
11476         Make static.  Take unused level and size parameters.
11477         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11478         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11479         (mmix_option_optimization): New.
11480         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11481         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11482         (pdp11_option_optimization): New.
11483         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11484         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11485         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11486         (optimization_options): Rename to rs6000_option_optimization.
11487         Make static.
11488         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11489         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11490         * config/rx/rx.c (rx_set_optimization_options): Rename to
11491         rx_option_optimization.  Make static.  Take unused level and size
11492         parameters.
11493         (TARGET_OPTION_OPTIMIZATION): Define.
11494         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11495         * config/s390/s390-protos.h (optimization_options): Remove.
11496         * config/s390/s390.c (optimization_options): Rename to
11497         s390_option_optimization.  Make static.  Don't mark size parameter
11498         unused.
11499         (TARGET_OPTION_OPTIMIZATION): Define.
11500         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11501         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11502         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11503         (sh_optimization_options): Rename to sh_option_optimization.  Make
11504         static.  Don't mark parameters unused.
11505         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11506         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11507         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11508         (spu_optimization_options): Rename to spu_option_optimization.
11509         Make static.
11510         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11511         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11512         (v850_option_optimization): New.
11513         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11514         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11515         (xtensa_option_optimization): New.
11516         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11517
11518 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11519
11520         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11521         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11522         * doc/tm.texi: Regenerate.
11523         * system.h (OVERRIDE_OPTIONS): Poison.
11524         * target.def (override): Default to hook_void_void.
11525         * targhooks.c (default_target_option_override): Remove.
11526         * genmodes.c, machmode.def: Update comments mentioning
11527         OVERRIDE_OPTIONS.
11528         * config/alpha/alpha-modes.def: Update comment mentioning
11529         alpha_override_options.
11530         * config/alpha/alpha-protos.h (override_options): Remove.
11531         * config/alpha/alpha.c (override_options): Rename to
11532         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11533         (TARGET_OPTION_OVERRIDE): Define.
11534         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11535         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11536         of OVERRIDE_OPTIONS.
11537         * config/arc/arc-protos.h (arc_init): Remove.
11538         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11539         (arc_init): Rename to arc_option_override.  Make static.
11540         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11541         (OVERRIDE_OPTIONS): Remove.
11542         * config/arm/arm-protos.h (arm_override_options): Remove.
11543         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11544         (arm_override_options): Rename to arm_option_override.  Make
11545         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11546         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11547         * config/arm/arm.md: Update comment referring to arm_override_options.
11548         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11549         instead of OVERRIDE_OPTIONS.
11550         * config/avr/avr-protos.h (avr_override_options): Remove.
11551         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11552         (avr_override_options): Rename to avr_option_override.  Make static.
11553         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11554         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11555         * config/bfin/bfin.c (override_options): Rename to
11556         bfin_option_override.  Make static.
11557         (TARGET_OPTION_OVERRIDE): Define.
11558         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11559         * config/cris/cris-protos.h (cris_override_options): Remove.
11560         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11561         (cris_override_options): Rename to cris_option_override.  Make static.
11562         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11563         * config/frv/frv-protos.h (frv_override_options): Remove.
11564         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11565         (frv_override_options): Rename to frv_option_override.  Make static.
11566         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11567         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11568         * config/h8300/h8300.c (h8300_init_once): Rename to
11569         h8300_option_override.  Make static.
11570         (TARGET_OPTION_OVERRIDE): Define.
11571         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11572         * config/i386/i386-protos.h (override_options): Remove.
11573         * config/i386/i386.c (override_options): Rename to
11574         ix86_option_override_internal.  Make static.  Comments referring
11575         to this function and callers changed.
11576         (ix86_option_override): New.
11577         (TARGET_OPTION_OVERRIDE): Define.
11578         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11579         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11580         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11581         to ia64_override_options.
11582         * config/iq2000/iq2000-protos.h (override_options): Remove.
11583         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11584         (override_options): Rename to iq2000_option_override.  Make static.
11585         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11586         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11587         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11588         (lm32_override_options): Rename to lm32_option_override.  Make static.
11589         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11590         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11591         (m32r_option_override): New.
11592         (m32r_init): Update comment.
11593         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11594         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11595         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11596         (m68hc11_override_options): Rename to m68hc11_option_override.
11597         Make static.  Return void.
11598         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11599         * config/m68k/m68k-protos.h (override_options): Remove.
11600         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11601         (override_options): Rename to m68k_option_override.  Make static.
11602         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11603         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11604         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11605         (mcore_override_options): Rename to mcore_option_override.  Make
11606         static.
11607         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11608         * config/mep/mep-protos.h (mep_override_options): Remove.
11609         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11610         (mep_override_options): Rename to mep_option_override.  Make static.
11611         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11612         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11613         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11614         (mmix_override_options): Rename to mmix_option_override.  Make static.
11615         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11616         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11617         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11618         (mn10300_override_options): Rename to mn10300_option_override.
11619         Make static.
11620         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11621         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11622         * config/moxie/moxie.c (moxie_override_options): Rename to
11623         moxie_option_override.  Make static.
11624         (TARGET_OPTION_OVERRIDE): Define.
11625         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11626         * config/picochip/picochip-protos.h (picochip_override_options):
11627         Remove.  Update comment referring to picochip_override_options.
11628         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11629         (picochip_override_options): Rename to picochip_option_override.
11630         Make static.  Update comment and definition of
11631         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11632         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11633         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11634         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11635         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11636         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11637         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11638         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11639         instead of OVERRIDE_OPTIONS.
11640         * config/rs6000/rs6000-modes.def: Update comment referring to
11641         rs6000_override_options.
11642         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11643         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11644         (rs6000_override_options): Rename to
11645         rs6000_option_override_internal.  Make static.  Commented
11646         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11647         (rs6000_option_override): New.
11648         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11649         instead of OVERRIDE_OPTIONS.
11650         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11651         * config/s390/s390-protos.h (override_options): Remove.
11652         * config/s390/s390.c (override_options): Rename to
11653         s390_option_override.  Make static.
11654         (TARGET_OPTION_OVERRIDE): Define.
11655         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11656         * config/score/score-protos.h (score_override_options): Remove.
11657         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11658         (score_override_options): Rename to score_option_override.  Make
11659         static.
11660         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11661         Update comment referring to override_options.
11662         * config/score/score3.c (score3_override_options): Rename to
11663         score3_option_override.
11664         * config/score/score3.h (score3_override_options): Rename to
11665         score3_option_override.
11666         * config/score/score7.c (score7_override_options): Rename to
11667         score7_option_override.
11668         * config/score/score7.h (score7_override_options): Rename to
11669         score7_option_override.
11670         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11671         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11672         (sparc_override_options): Rename to sparc_option_override.  Make
11673         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11674         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11675         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11676         instead of OVERRIDE_OPTIONS.
11677         * config/spu/spu-protos.h (spu_override_options): Remove.
11678         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11679         (spu_override_options): Rename to spu_option_override.  Make
11680         static.
11681         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11682         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11683         OVERRIDE_OPTIONS.
11684         * config/vax/vax-protos.h (override_options): Remove.
11685         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11686         (override_options): Rename to vax_option_override.  Make static.
11687         Call SUBTARGET_OVERRIDE_OPTIONS.
11688         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11689         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11690         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11691         * config/xtensa/xtensa-protos.h (override_options): Remove.
11692         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11693         (override_options): Rename to xtensa_option_override.  Make static.
11694         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11695
11696 2010-09-16  Richard Guenther  <rguenther@suse.de>
11697
11698         PR tree-optimization/45623
11699         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11700         (get_constraint_for_component_ref): If computing a constraint
11701         for the rhs handle type punning through unions.
11702         (get_constraint_for_address_of): Adjust.
11703         (get_constraint_for_1): Likewise.
11704         (get_constraint_for): Likewise.
11705         (get_constraint_for_rhs): New function.
11706         (do_structure_copy): Adjust.
11707         (make_constraint_to): Likewise.
11708         (handle_const_call): Likewise.
11709         (find_func_aliases): Likewise.
11710         (process_ipa_clobber): Likewise.
11711         (create_variable_info_for): Likewise.
11712
11713 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11714
11715         * tree-vectorizer.c: Fix documentation.
11716         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11717         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11718         is_pattern_stmt_p, is_loop_header_bb_p,
11719         stmt_vinfo_set_inside_of_loop_cost,
11720         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11721         known_alignment_for_access_p): Likewise.
11722         * tree-vect-loop.c: Fix documentation.
11723         (vect_get_cost): Start function name from new line.
11724         * tree-vect-data-refs.c: Fix documentation.
11725         * tree-vect_stmts.c: Likewise.
11726         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11727         (vectorizable_store): Free vec_oprnds if allocated.
11728         (vectorizable_condition): Initialize several variables to avoid
11729         warnings.
11730         * tree-vect-slp.c: Fix documentation.
11731
11732 2010-09-16  Richard Guenther  <rguenther@suse.de>
11733
11734         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11735         is TS_TRANSLATION_UNIT_DECL.
11736         (initialize_tree_contains_struct): Adjust.
11737         (all_translation_units): New global vector.
11738         (build_translation_unit_decl): New function.
11739         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11740         (struct tree_translation_unit_decl): New.
11741         (all_translation_units): Declare.
11742         (union tree_node): Add translation_unit_decl member.
11743         (build_translation_unit_decl): Declare.
11744         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11745         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11746         New function.
11747         (pack_value_fields): Call it.
11748         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11749         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11750         (lto_output_tree_pointers): Call it.
11751         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11752         to TRANSLATION_UNIT_DECL.
11753         (unpack_ts_translation_unit_decl_value_fields): New function.
11754         (unpack_value_fields): Call it.
11755         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11756         (lto_input_tree_pointers): Call it.
11757         * lto-streamer.c (check_handled_ts_structures): Adjust.
11758         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11759         * c-decl.c (all_translation_units): Remove.
11760         (pop_scope): Use build_translation_unit_decl.
11761         (collect_all_refs): Adjust.
11762         (for_each_global_decl): Likewise.
11763         (c_write_global_declarations): Likewise.
11764
11765 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11766
11767         PR bootstrap/45686
11768         * fold-const.c (fold_checksum_tree): Change slot from const void **
11769         to void **, use CONST_CAST_TREE to store into *slot.
11770
11771 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11772
11773         * config/i386/i386.md: Remove unneeded empty conditions and
11774         preparation statements from expanders.
11775         * config/i386/mmx.md: Ditto.
11776         * config/i386/sse.md: Ditto.
11777
11778 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11779
11780         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11781
11782 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11783
11784         PR rtl-optimization/45593
11785         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11786         insns that were in delay slots as stand-alone insns.
11787
11788 2010-09-15  Ian Lance Taylor  <iant@google.com>
11789
11790         * incpath.c (remove_duplicates): If name is not a directory, issue
11791         a warning rather than an error.
11792
11793 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11794
11795         PR middle-end/45644
11796         * tree-sra.c (create_access): Check for bit-fields directly.
11797
11798 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11799
11800         PR tree-optimization/45633
11801         * tree-cfg.c (verify_gimple_assign_binary): Allow
11802         MINUS_EXPR with lhs and rhs1 pointer vector and
11803         rhs2 sizetype vector.
11804         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11805         or vector pointer use TER to optimize pointer subtraction.
11806
11807 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11808
11809         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11810         fcmpd to fcmps.
11811
11812 2010-09-15  Ian Lance Taylor  <iant@google.com>
11813
11814         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11815
11816 2010-09-15  Ian Lance Taylor  <iant@google.com>
11817
11818         * function.c (get_arg_pointer_save_area): Set
11819         arg_pointer_save_area_init to true.
11820
11821 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11822
11823         * tree-sra.c (generate_subtree_copies): Updated comment.
11824         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11825         obtained from the statement iterator instead.
11826         (load_assign_lhs_subreplacements): Removed parameters lhs and
11827         right_offset, which is obtained from top_racc instead.  Parameter lacc
11828         is now expected to be the root of the processed tree rather than root's
11829         first child.  Updated all callers.
11830
11831 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11832
11833         * config/pdp11/pdp11.c (register_move_cost): Rename to
11834         pdp11_register_move_cost.
11835         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11836         pdp11_register_move_cost.
11837         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11838         pdp11_register_move_cost instead of register_move_cost.
11839
11840 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11841
11842         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11843         pattern for vmovn. Expansion in case of non
11844         -mvectorize-with-neon-quad.
11845         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11846         non- -mvectorize-with-neon-quad case.
11847         (move_lo_quad_<mode>): New expansion to vmov into low part.
11848         (move_hi_quad_<mode>): New expansion to vmov into high part.
11849         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11850         (move_lo_quad_v4sf): Likewise.
11851         (move_lo_quad_v8hi): Likewise.
11852         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11853         low part.
11854         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11855         high part.
11856         * config/arm/iterators.md (ANY128): New mode iterator.
11857         (V_narrow_pack): New mode attribute.
11858         (V_HALF): Add attribute.
11859         (V_DOUBLE): Add attribute.
11860         (V_mode_nunits): Add attribute.
11861
11862 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11863
11864         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11865         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11866
11867 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11868             Jose Ruiz  <ruiz@adacore.com>
11869
11870         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11871         * config/alpha/osf5-unwind.h: New file.
11872
11873 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11874
11875         PR bootstrap/45672
11876         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11877         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11878         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11879
11880 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11881
11882         * c-lang.h (struct lang_type): Add variable_size GTY option.
11883
11884 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11885
11886         PR bootstrap/45672
11887         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11888
11889 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11890
11891         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11892         result isn't used in memory address.
11893
11894 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11895
11896         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11897         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11898         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11899         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11900         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11901         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11902
11903         * target.def: Add units_per_simd_word to vectorize.
11904
11905         * targhooks.c (default_units_per_simd_word): New.
11906         * targhooks.h (default_units_per_simd_word): Likewise.
11907         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11908         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11909         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11910         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11911         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11912         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11913         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11914         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11915
11916         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11917         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11918
11919         * tree-vect-stmts.c: Don't include "tm_p.h".
11920         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11921         with targetm.vectorize.units_per_simd_word.
11922
11923         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11924
11925         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11926
11927         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11928         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11929
11930         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11931         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11932
11933         * doc/tm.texi: Regenerated.
11934
11935 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11936
11937         * tree-vect-stmts.c: Include "tm_p.h".
11938
11939         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11940         out of RTX_CODE.
11941
11942 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11943
11944         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11945         location of generated statement.  Changed all callers.
11946         (build_ref_for_model): New parameter loc which used to set location of
11947         all generated expressions.  Changed all callers.
11948         (generate_subtree_copies): Likewise.
11949         (init_subtree_with_zero): Likewise.
11950         (sra_modify_expr): Set locations of all generated statements and
11951         expressions to the location the original statement.
11952         (handle_unscalarized_data_in_subtree): Likewise.
11953         (load_assign_lhs_subreplacements): Likewise.
11954         (sra_modify_constructor_assign): Likewise.
11955         (sra_modify_assign): Likewise.
11956
11957 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11958
11959         PR target/45277
11960         PR target/45363
11961         PR target/45407
11962         * doc/install.texi (sparc*-*-*): New section.
11963         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11964
11965 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11966
11967         PR middle-end/45567
11968         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11969         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11970         (expand_builtin): Adjust caller.
11971         (expand_builtin_unop): Only use subtarget if it has the right mode.
11972
11973 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11974
11975         * configure.ac (plugins): Fix typos.
11976         * configure: Regenerate.
11977
11978 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11979
11980         PR debug/45660
11981         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11982         gen_type_die for function/method return type.
11983
11984 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11985
11986         PR tree-optimization/45470
11987         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
11988         can throw an exception.
11989         * tree-vect-stmts.c (vectorizable_call): Likewise.
11990
11991 2010-09-14  DJ Delorie  <dj@redhat.com>
11992
11993         PR target/44749
11994         * config/mep/mep-protos.h (mep_save_register_info,
11995         mep_reinit_regs, mep_init_regs): Declare.
11996
11997         * config/mep/mep.c: Move all target definitions to the end of the
11998         file to avoid the need for duplicate declarations.
11999         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12000         (mep_reorg_erepeat): Remove unused variables.
12001         (mep_expand_builtin): Likewise.
12002
12003         * config/mep/mep-pragma.c: Don't include rtl.h.
12004         (INVALID_REGNUM): New.
12005         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12006         functions.
12007         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12008         Avoid enum/integer math.
12009
12010 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12011
12012         PR target/44749
12013         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12014         * config/mep/mep.c (mep_conditional_register_usage): Take no
12015         parameters.
12016         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12017         prototype.
12018         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12019         call to mep_conditional_register_usage.
12020
12021 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12022
12023         PR debug/43937
12024         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12025         the DECL as well.
12026
12027 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12028
12029         PR rtl-optimization/45617
12030         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12031         even if low N bits of X aren't known to be zero.
12032
12033 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12034
12035         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12036
12037         * config/i386/i386.c (initial_ix86_tune_features): Add
12038         X86_TUNE_VECTORIZE_DOUBLE.
12039         (ix86_units_per_simd_word): New.
12040
12041         * config/i386/i386.h (ix86_tune_indices): Add
12042         X86_TUNE_VECTORIZE_DOUBLE.
12043         (TARGET_VECTORIZE_DOUBLE): New.
12044         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12045
12046 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12047
12048         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12049         (new_temp_expr_table): Allocate call_cnt vector.
12050         (free_temp_expr_table): Free it.
12051         (process_replaceable): Add call_cnt parm and set in vector.
12052         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12053         (debug_ter): Dump call_cnt value, remove stderr uses.
12054
12055 2010-09-13  Jan Hubicka  <jh@suse.cz>
12056
12057         * tree.c (build_zero_cst): New.
12058         * tree.h (build_zero_cst): Declare.
12059         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12060         (get_base_constructor): Break out from ...
12061         (fold_const_aggregate_ref): Here; handle empty constructors.
12062
12063 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12064
12065         * config/arm/arm.md: (define_attr "conds"): Update comment.
12066         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12067         conds attribute to clob.
12068         (arm_sync_compare_and_swapsi): Likewise.
12069         (arm_sync_compare_and_swap<mode>): Likewise.
12070         (arm_sync_lock_test_and_setsi): Likewise.
12071         (arm_sync_lock_test_and_set<mode>): Likewise.
12072         (arm_sync_new_<sync_optab>si): Likewise.
12073         (arm_sync_new_nandsi): Likewise.
12074         (arm_sync_new_<sync_optab><mode>): Likewise.
12075         (arm_sync_new_nand<mode>): Likewise.
12076         (arm_sync_old_<sync_optab>si): Likewise.
12077         (arm_sync_old_nandsi): Likewise.
12078         (arm_sync_old_<sync_optab><mode>): Likewise.
12079         (arm_sync_old_nand<mode>): Likewise.
12080
12081 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12082
12083         * fwprop.c (forward_propagate_and_simplify): Only attach a
12084         REG_EQUAL note to an insn if the destination is a register.
12085         * gcse.c (try_replace_reg): Likewise.
12086
12087 2010-09-13  Richard Guenther  <rguenther@suse.de>
12088
12089         PR tree-optimization/45611
12090         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12091         (copy_ref_info): Likewise.
12092
12093 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12094
12095         PR debug/45604
12096         PR debug/45419
12097         PR debug/45408
12098         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12099         types of MEM_REF pointer types to the same type.
12100
12101 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12102
12103         PR rtl-optimization/41087
12104         * ifcvt.c (noce_get_condition): Don't allow conditions with
12105         side-effects.
12106
12107 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12108
12109         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12110         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12111         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12112         arguments type to reg_class_t. Add mode argument.
12113         (frv_memory_move_cost): New.
12114         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12115
12116 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12117
12118         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12119         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12120
12121 2010-09-10  Jan Hubicka  <jh@suse.cz>
12122
12123         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12124
12125 2010-09-10  Richard Guenther  <rguenther@suse.de>
12126
12127         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12128         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12129         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12130         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12131         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12132
12133 2010-09-10  Richard Guenther  <rguenther@suse.de>
12134
12135         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12136         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12137         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12138         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12139
12140 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12141
12142         PR middle-end/45634
12143         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12144         of string folding is of integral type.
12145
12146 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12147
12148         * doc/invoke.texi (-x): Fix typo.
12149
12150 2010-09-10  Richard Guenther  <rguenther@suse.de>
12151
12152         PR debug/44115
12153         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12154         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12155         Output DECL_DEBUG_EXPR.
12156         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12157         Input DECL_DEBUG_EXPR.
12158
12159 2010-09-10  Richard Guenther  <rguenther@suse.de>
12160
12161         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12162         (build_index_type): Implement in terms of build_range_type.
12163         (build_range_type): Do not allow NULL_TREE type, improve
12164         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12165         if we didn't hash.
12166         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12167         create a distinct copy of the type.
12168
12169 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12170
12171         * configure: Regenerated.
12172         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12173
12174 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12175
12176         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12177         * config/arm/cortex-a9-neon.md: New and partially generated.
12178         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12179
12180 2010-09-10  Richard Guenther  <rguenther@suse.de>
12181
12182         * tree.h (build_index_2_type): Remove.
12183         * tree.c (build_index_2_type): Remove.
12184
12185 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12186
12187         PR bootstrap/45630
12188         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12189         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12190         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12191
12192 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12193
12194         PR tree-optimization/44972
12195         * tree-sra.c: Include toplev.h.
12196         (build_ref_for_offset): Entirely reimplemented.
12197         (build_ref_for_model): New function.
12198         (build_user_friendly_ref_for_offset): New function.
12199         (analyze_access_subtree): Removed build_ref_for_offset check.
12200         (propagate_subaccesses_across_link): Likewise.
12201         (create_artificial_child_access): Use
12202         build_user_friendly_ref_for_offset.
12203         (propagate_subaccesses_across_link): Likewise.
12204         (ref_expr_for_all_replacements_p): Removed.
12205         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12206         (sra_modify_expr): Use build_ref_for_model.
12207         (load_assign_lhs_subreplacements): Likewise.
12208         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12209         checks for return values of build_ref_for_offset.
12210         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12211         build_ref_for_offset.
12212         * ipa-prop.h: Include gimple.h
12213         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12214         (ipa_analyze_indirect_call_uses): Update comment.
12215         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12216         (IPA_PROP_H): Likewise.
12217
12218 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12219
12220         PR tree-optimization/44972
12221         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12222         calling build_ref_for_offset.
12223
12224 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12225
12226         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12227         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12228         * config/arm/arm-tune.md: Regenerate.
12229         * doc/invoke.texi (ARM Options): Document it.
12230
12231 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12232
12233         * config/i386/i386.c: Include sched-int.h.
12234         (TARGET_SCHED_DISPATCH): Defined.
12235         (TARGET_SCHED_DISPATCH_DO): Defined.
12236         (DISPATCH_WINDOW_SIZE): Defined.
12237         (MAX_DISPATCH_WINDOWS): Defined.
12238         (MAX_INSN): Defined.
12239         (MAX_IMM): Defined.
12240         (MAX_IMM_SIZE): Defined.
12241         (MAX_IMM_32): Defined.
12242         (MAX_IMM_64): Defined.
12243         (MAX_LOAD): Defined.
12244         (MAX_STORE): Defined.
12245         (BIG): Defined.
12246         (dispatch_group): New.
12247         (num_allowable_groups): New.
12248         (group_name): New.
12249         (sched_insn_info_s): New.
12250         (dispatch_windows_s): New.
12251         (imm_info_s): New.
12252         (dispatch_window_list): New.
12253         (dispatch_window_list1): New.
12254         (get_mem_group): New.
12255         (is_cmp): New.
12256         (dispatch_violation): New.
12257         (is_branch): New.
12258         (is_prefetch): New.
12259         (init_window): New.
12260         (allocate_window): New.
12261         (init_dispatch_sched): New.
12262         (is_end_basic_block): New.
12263         (process_end_window): New.
12264         (allocate_next_window): New.
12265         (find_constant_1): New.
12266         (find_constant): New.
12267         (get_num_immediates): New.
12268         (has_immediate): New.
12269         (get_insn_path): New.
12270         (get_insn_group): New.
12271         (count_num_restricted): New.
12272         (fits_dispatch_window): New.
12273         (add_insn_window): New.
12274         (add_to_dispatch_window): New.
12275         (debug_dispatch_window_file): New.
12276         (debug_dispatch_window): New.
12277         (debug_insn_dispatch_info_file): New.
12278         (debug_ready_dispatch): New.
12279         (do_dispatch): New.
12280         (has_dispatch): New.
12281         * config/i386/i386.h (debug_ready_dispatch): Declared.
12282         (debug_dispatch_window): Declared.
12283         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12284         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12285         (TARGET_SCHED_DISPATCH_DO): New.
12286         * doc/tm.texi: Regererated.
12287         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12288         ready_remove_first_dispatch
12289         (schedule_block): Call targetm.sched.dispatch and
12290         targetm.sched.dispatch_do.
12291         (sched_init): Call targetm.sched.dispatch and
12292         targetm.sched.dispatch_do.
12293         (ready_remove_first_dispatch): New.
12294         (number_in_ready): New.
12295         (get_ready_element): New.
12296         * hooks.c (hook_bool_rtx_int_false): New.
12297         (hook_void_rtx_int): New.
12298         * hooks.h (hook_bool_rtx_int_false): Declared.
12299         (hook_void_rtx_int): Declared.
12300         * sched-int.h (IS_DISPATCH_ON): Defined.
12301         (IS_CMP): Defined.
12302         (DISPATCH_VIOLATION): Defined.
12303         (FITS_DISPATCH_WINDOW): Defined.
12304         (DISPATCH_INIT): Defined.
12305         (ADD_TO_DISPATCH_WINDOW): Defined.
12306         (get_ready_element): Declared.
12307         (number_in_ready): Declared.
12308         * target.def (dispatch): Defined.
12309         (dispatch_do): Defined.
12310
12311 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12312
12313         PR middle-end/45312
12314         * reload1.c (merge_assigned_reloads): Remove.
12315         (reload_as_needed): Don't call it.
12316
12317 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12318
12319         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12320         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12321         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12322
12323 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12324
12325         PR bootstrap/43847
12326         * configure.ac (--enable-plugin): Enhance for cross builds.
12327         * configure: Regenerate.
12328
12329 2010-09-09  Jan Hubicka  <jh@suse.cz>
12330
12331         PR tree-optimization/45598
12332         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12333         string folding is of integral type.
12334
12335 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12336
12337         * configure.ac (gnu_indirect_function): New test.
12338         * configure: Rebuilt.
12339         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12340         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12341
12342         * doc/extend.texi (Function Attributes): Document ifunc.
12343         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12344
12345 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12346
12347         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12348         epilogue instruction move.
12349
12350 2010-09-09  Jan Hubicka  <jh@suse.cz>
12351
12352         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12353         command line to allow more partitions than input files.
12354
12355 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12356
12357         PR middle-end/44554
12358         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12359
12360 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12361
12362         PR middle-end/40386
12363         * ira.c (pseudo_for_reload_consideration_p): Don't use
12364         flag_ira_share_spill_slots.
12365
12366 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12367
12368         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12369         point zero operands that fit into a single GPR.
12370         (s390_preferred_reload_class): Ensure we only return general-purpose
12371         register classes.
12372         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12373         floating-point zero operands into GPRs.
12374         ("*mov<mode>_64"): Likewise.
12375         ("mov<mode>"): Likewise using lhi.
12376
12377 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12378
12379         * config/s390/s390.c (s390_symref_operand_p): Return false for
12380         literal pool references.
12381         (s390_check_qrst_address): Update caller.
12382
12383 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12384
12385         * config/i386/predicates.md (ext_register_operand): Check that
12386         SUBREG_REG is really a register before looking for REGNO.
12387         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12388         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12389
12390 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12391
12392         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12393         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12394         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12395         * print-rtl.c (print_rtx): Likewise.
12396         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12397         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12398         for ADDR_EXPR with non-addressable object.
12399         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12400         (struct dw_val_struct): Add v.val_decl_ref.
12401         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12402         Handle DW_OP_GNU_implicit_pointer.
12403         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12404         (get_ref_die_offset_label): New function.
12405         (implicit_ptr_descriptor): New function.
12406         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12407         (loc_descriptor): Likewise.
12408         (gen_variable_die): Put even definitions into decl_die_table.
12409         (resolve_addr_in_expr): Resolve still unresolved
12410         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12411         return false.
12412         (dwarf2out_finish): Call output_location_lists after outputting
12413         .debug_info and .debug_abbrev instead of before.
12414
12415 2010-09-09  Roland McGrath  <roland@redhat.com>
12416
12417         * dwarf2out.c (DWARF_REF_SIZE): Define.
12418         (size_of_loc_descr): Use it for DW_OP_call_ref.
12419
12420 2010-09-09  Alan Modra  <amodra@gmail.com>
12421
12422         * doc/invoke.text: Reinstate mcmodel=medium.
12423         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12424         CMODEL_MEDIUM as default.
12425         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12426         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12427         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12428         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12429
12430 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12431
12432         PR target/45250
12433         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12434         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12435         (builtin_longjmp): Likewise.
12436         (allocate_stack): Use hard_frame_pointer_rtx instead of
12437         frame_pointer_rtx.
12438         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12439         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12440         (pa_can_eliminate): Likewise.
12441         (TARGET_INTERNAL_ARG_POINTER): Define.
12442         (TARGET_CAN_ELIMINATE): Define.
12443         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12444         pointer.
12445         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12446         (pa_internal_arg_pointer, pa_can_eliminate,
12447         pa_initial_elimination_offset): New.
12448         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12449         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12450         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12451         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12452         Define.
12453         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12454         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12455         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12456         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12457         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12458         new soft frame pointer.
12459         * config/pa/pa64-regs.h: Likewise.
12460
12461 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12462
12463         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12464         numerical constant.
12465         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12466
12467 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12468
12469         PR debug/45531
12470         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12471
12472 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12473
12474         PR debug/45419
12475         PR debug/45408
12476         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12477         qualifiers in otherwise equal MEM_REF pointer types.
12478         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12479         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12480
12481 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12482
12483         PR target/44392
12484         * config/arm/arm.md (bswapsi2): Handle condition correctly
12485         for armv6 and optimize_size.
12486
12487 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12488
12489         PR other/18555
12490         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12491
12492 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12493
12494         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12495         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12496         ix86_expand_strlen, legitimate_pic_address_disp_p,
12497         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12498         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12499         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12500         prototype to bool.
12501         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12502         return_in_memory_ms_64, ix86_check_movabs,
12503         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12504         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12505         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12506         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12507         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12508         ix86_secondary_memory_needed): Change to bool.  Return
12509         "true" and "false" values.
12510         * config/i386/i386.md: Return "true" and "false" values.
12511
12512 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12513
12514         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12515         run_expensive_tests.
12516
12517 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12518
12519         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12520
12521 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12522
12523         PR other/45443
12524         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12525         at -O3.
12526
12527 2010-09-08  Richard Guenther  <rguenther@suse.de>
12528
12529         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12530         (visit): Adjust.
12531         (iterative_hash_gimple_type): Likewise.
12532         (gimple_type_hash): Likewise.
12533         (gimple_register_type): Likewise.
12534         (print_gimple_types_stats): Likewise.
12535         (free_gimple_type_tables): Likewise.
12536
12537 2010-09-08  Michael Matz  <matz@suse.de>
12538
12539         PR tree-optimization/43430
12540         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12541         copies for conditional statements if it's not part of a reduction.
12542
12543 2010-09-08  Michael Matz  <matz@suse.de>
12544
12545         PR tree-optimization/33244
12546         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12547         empty loop latches.
12548
12549 2010-09-08  Richard Guenther  <rguenther@suse.de>
12550
12551         PR tree-optimization/45578
12552         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12553         Be more careful when transfering alignment information to
12554         the new induction variable.
12555         (copy_ref_info): Likewise.
12556
12557 2010-09-08  Richard Guenther  <rguenther@suse.de>
12558
12559         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12560         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12561
12562 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12563
12564         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12565         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12566
12567 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12568
12569         PR doc/45587
12570         * doc/md.texi: Fixed modes on several standard pattern names.
12571
12572 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12573
12574         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12575         (ashl<mode>3): ...this.
12576         (loongson_psra<V_suffix>): Rename to...
12577         (ashr<mode>3): ...this.
12578         (loongson_psrl<V_suffix>): Rename to...
12579         (lshr<mode>3): ...this.
12580         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12581         (CODE_FOR_loongson_psllw): Define.
12582         (CODE_FOR_loongson_psrlh): Define.
12583         (CODE_FOR_loongson_psrlw): Define.
12584         (CODE_FOR_loongson_psrah): Define.
12585         (CODE_FOR_loongson_psraw): Define.
12586
12587 2010-09-07  Richard Henderson  <rth@redhat.com>
12588
12589         * tree-vect-data-refs.c: Include tm_p.h.
12590         * Makefile.in (tree-vect-data-refs.o): Update deps.
12591         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12592         Move delarations outside #ifdef RTX_CODE.
12593
12594 2010-09-07  Richard Henderson  <rth@redhat.com>
12595
12596         * final.c (rest_of_handle_final): Unconditionally do
12597         output_function_exception_table before assemble_end_function.
12598
12599 2010-09-07  Jan Hubicka  <jh@suse.cz>
12600
12601         * tree-inline.c (tree_inlinable_function_p): Do not test
12602         DECL_REPLACEABLE_P.
12603         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12604         update_callee_keys, cgraph_decide_inlining): Test function availability.
12605         * cif-code.def (OVERWRITABLE): New code.
12606
12607 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12608             Jack Howarth  <howarth@bromo.med.uc.edu>
12609
12610         PR target/36502
12611         PR target/42313
12612         PR target/44651
12613         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12614         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12615         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12616         MAX macro.
12617
12618 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12619
12620         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12621         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12622
12623 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12624
12625         * config.gcc: Don't append t-android for Android targets.
12626
12627         * config/t-android: Removed.
12628
12629 2010-09-07  Richard Henderson  <rth@redhat.com>
12630
12631         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12632         * doc/tm.texi.in: Add doc marker.
12633         * doc/tm.texi: Rebuild.
12634         * except.c (switch_to_exception_section): Always build.
12635         (output_one_function_exception_table): Move section switch,
12636         personality output, and label output ...
12637         (output_function_exception_table): ... here.  Use the new
12638         personality hook.
12639
12640         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12641         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12642         TARGET_ASM_INIT_SECTIONS): New.
12643         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12644         make static.
12645         (TARGET_ASM_UNWIND_EMIT): Update to match.
12646         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12647
12648         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12649         (arm_asm_init_sections): New.
12650         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12651
12652 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12653
12654         * config/arm/arm.md: Remove unused variable.
12655
12656 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12657
12658         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12659         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12660         (m32r_memory_move_cost): New function.
12661
12662 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12663
12664         * config.gcc: Append t-android for Android targets.
12665
12666         * config/t-android: New.
12667
12668 2010-09-07  Richard Henderson  <rth@redhat.com>
12669
12670         * target.def (unwind_emit_before_insn): New hook.
12671         * doc/tm.texi.in: Add @hook marker for it.
12672         * doc/tm.texi: Rebuild.
12673         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12674
12675 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12676
12677         PR fortran/43665
12678         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12679         are any type attributes.
12680
12681 2010-09-07  Jan Hubicka  <jh@suse.cz>
12682
12683         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12684         array_ref_low_bound in string access folding.
12685
12686 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12687
12688         PR target/45206
12689         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12690         eh_return fixup sequence.
12691
12692 2010-09-07  Jan Hubicka  <jh@suse.cz>
12693
12694         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12695         gimple_min_invariant.
12696
12697 2010-09-07  Richard Guenther  <rguenther@suse.de>
12698
12699         PR middle-end/45569
12700         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12701         nor CONSTRUCTOR can trap.
12702         * tree-complex.c (update_complex_assignment): Update EH info.
12703
12704 2010-09-07  Richard Guenther  <rguenther@suse.de>
12705
12706         PR middle-end/45569
12707         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12708         * passes.c (execute_function_todo): Do not verify anything if
12709         we saw errors.
12710
12711 2010-09-07  Richard Guenther  <rguenther@suse.de>
12712
12713         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12714
12715 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12716
12717         PR target/43137
12718         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12719         New define_mode_attrs.
12720         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12721         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12722         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12723         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12724         Remove pool_range attribute.
12725         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12726         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12727         pool_range and neg_pool_range attributes.
12728         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12729         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12730         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12731
12732 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12733
12734         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12735         check glibc.
12736
12737 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12738
12739         PR target/22152
12740         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12741         *mov<mode>_internal_avx, *mov<mode>_internal,
12742         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12743         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12744
12745 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12746
12747         * c-typeck.c (do_warn_double_promotion): Remove.
12748         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12749         Objective-C++ too.
12750
12751 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12752
12753         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12754         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12755         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12756         argument type to reg_class_t. Change result type to bool.
12757         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12758
12759 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12760
12761         PR libobjc/19850
12762         * gthr-posix.h (__gthread_objc_thread_detach): Use
12763         _objc_thread_attribs when detaching a thread.
12764         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12765
12766 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12767
12768         PR target/45524
12769         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12770         * configure: Regenerated.
12771
12772 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12773
12774         * combine.c (try_combine): Set subst_low_luid to i0.
12775
12776 2010-09-06  Richard Guenther  <rguenther@suse.de>
12777
12778         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12779         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12780         (build_aligned_type): Declare.
12781         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12782         (check_aligned_type): New function.
12783         (build_aligned_type): Likewise.
12784         * expr.c (expand_assignment): Handle misaligned stores via
12785         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12786         (expand_expr_real_1): Likewise.
12787         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12788         * tree-vect-stmts.c (vectorizable_store): Do not build
12789         MISALIGNED_INDIRECT_REF but initialize alignment information.
12790         (vectorizable_load): Likewise.
12791         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12792         handling.
12793         * cfgexpand.c (expand_debug_expr): Likewise.
12794         * dwarf2out.c (loc_list_from_tree): Likewise.
12795         * fold-const.c (maybe_lvalue_p): Likewise.
12796         (operand_equal_p): Likewise.
12797         (build_fold_addr_expr_with_type_loc): Likewise.
12798         * gimplify.c (gimplify_addr_expr): Likewise.
12799         (gimplify_expr): Likewise.
12800         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12801         (verify_gimple_assign_single): Likewise.
12802         * tree-dump.c (dequeue_and_dump): Likewise.
12803         (tree_could_trap_p): Likewise.
12804         * tree-predcom.c (ref_at_iteration): Likewise.
12805         * tree-pretty-print.c (dump_generic_node): Likewise.
12806         (op_code_prio): Likewise.
12807         (op_symbol_code): Likewise.
12808         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12809         * tree-ssa-loop-im.c (for_each_index): Likewise.
12810         (gen_lsm_tmp_name): Likewise.
12811         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12812         (find_interesting_uses_address): Likewise.
12813         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12814         * tree-ssa-operands.c (get_expr_operands): Likewise.
12815         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12816         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12817         (ao_ref_init_from_vn_reference): Likewise.
12818         * tree.c (staticp): Likewise.
12819         (build1_stat): Likewise.
12820         (reference_alias_ptr_type): Likewise.
12821         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12822         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12823         MISALIGNED_INDIRECT_REF handling.
12824
12825 2010-09-06  Richard Guenther  <rguenther@suse.de>
12826
12827         PR tree-optimization/45534
12828         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12829         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12830         on the target.
12831         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12832         valid on the target.
12833
12834 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12835
12836         * configure.ac: Quote argument of AC_MSG_WARN.
12837         * configure: Regenerate.
12838
12839 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12840
12841         * sel-sched.c (move_cond_jump): Correct arguments to
12842         maybe_tidy_empty_bb.
12843         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12844
12845 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12846
12847         PR rtl-optimization/44919
12848         * sel-sched.c (move_cond_jump): Remove assert, check that
12849         the several blocks case can only happen with mutually exclusive
12850         insns instead.  Rewrite the movement code to support moving through
12851         several basic blocks.
12852
12853 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12854
12855         * config/i386/i386.md (iptrsize): New mode attribute.
12856         (tp_seg): Ditto.
12857         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12858         mode iterator.
12859         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12860         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12861         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12862         (stack_tls_protect_set_<mode>): Ditto from
12863         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12864         of thread base pointer load.
12865         (stack_tls_protect_test_<mode>): Ditto from
12866         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12867         of thread base pointer load.
12868         (stack_protect_set): Rewrite using indirect functions.
12869         (stack_protect_test): Ditto.
12870         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12871         (ix86_print_operand): Handle '@'.
12872
12873 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12874
12875         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12876         MINUS_EXPR.
12877
12878 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12879
12880         * doc/invoke.texi: Document -Wdouble-promotion.
12881         * c-typeck.c (convert_arguments): Check for implicit conversions
12882         from float to double.
12883         (do_warn_double_promotion): New function.
12884         (build_conditional_expr): Use it.
12885         (build_binary_op): Likewise.
12886
12887 2010-09-05  Richard Guenther  <rguenther@suse.de>
12888
12889         PR tree-optimization/45535
12890         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12891         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12892         dereferencing it.
12893         (indirect_refs_may_alias_p): Likewise.
12894
12895 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12896
12897         * config/sh/sh.c (sh_option_override): Make static.
12898         Adjust comments.  Declare.
12899         (sh_function_value_regno_p): Likewise.
12900         (sh_register_move_cost): Modify the arguments, make static.
12901         Adjust comments.  Declare.
12902         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12903         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12904         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12905         REGISTER_MOVE_COST): Delete.
12906         * config/sh/sh-protos.h (sh_override_options): Delete.
12907         (sh_register_move_cost): Delete.
12908         (sh_function_value_regno_p): Delete.
12909
12910 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12911
12912         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12913         m32r_function_value_regno_p): New functions.
12914         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12915         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12916         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12917         FUNCTION_VALUE_REGNO_P): Remove.
12918
12919 2010-09-04  Jan Hubicka  <jh@suse.cz>
12920
12921         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12922         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12923         fold_read_from_constant_string.
12924
12925         * gimple.h (canonicalize_constructor_val): Declare.
12926         * gimple-fold.c (canonicalize_constructor_val): New function.
12927         (get_symbol_constant_value):Use it.
12928         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12929
12930 2010-09-04  Jan Hubicka  <jh@suse.cz>
12931
12932         * tree-switch-conversion.c (build_one_array): Set constructor to be
12933         static.
12934         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12935
12936 2010-09-04  Richard Guenther  <rguenther@suse.de>
12937
12938         PR bootstrap/45519
12939         * tree-flow.h (force_gimple_operand_1): Declare.
12940         (force_gimple_operand_gsi_1): Likewise.
12941         * gimplify.c (force_gimple_operand_1): New worker taking a
12942         gimple predicate for ...
12943         (force_gimple_operand): ... which now wraps it.
12944         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12945         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12946         last change.
12947         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12948         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12949         (create_mem_ref): Likewise.
12950
12951 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12952
12953         * config/i386/predicates.md (sse_reg_operand): New predicate.
12954         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12955         predicate for operand 1.
12956         (XFmode push splitter): Use fp_register_operand predicate
12957         for operand 1.
12958         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12959         (SF-DF float_extend push splitter): Add reload_completed insn
12960         predicate.
12961         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12962         MODEF mode macro.  Add reload_completed insn predicate.
12963
12964 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12965
12966         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12967         (struct df_extract_ref): Remove.
12968         (union df_ref_d): Remove extract_ref member.
12969         (df_ref_create): Remove last three arguments.
12970         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12971         * df-scan.c (df_ref_record): Remove last three arguments, do not
12972         pass them to df_ref_create_structure.
12973         (df_uses_record): Remove first and last three arguments.  Replace
12974         first argument with DF_REF_REGULAR, adjust calls to remove the
12975         width, offset and mode.  Always call recursively on the second
12976         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12977         (df_ref_create_structure): Remove first argument.
12978         (struct df_scan_problem_data): Remove ref_extract_pool.
12979         (df_scan_free_internal): Do not free it.
12980         (df_scan_alloc): Do not allocate it.
12981         (df_ref_create): Remove last three arguments, do not pass them to
12982         df_ref_create_structure.
12983         (df_free_ref): Remove DF_REF_EXTRACT case.
12984         (df_notes_rescan): Adjust call to df_uses_record.
12985         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12986         Remove DF_REF_EXTRACT case.
12987         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
12988         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
12989         and SUBREG definitions.
12990         (df_get_conditional_uses): Remove references to width/offset/mode,
12991         adjust call to df_ref_create_structure.
12992         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
12993         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
12994         calls to df_uses_record and df_ref_record.
12995         * fwprop.c (update_df): Remove references to width/offset/mode,
12996         adjust call to df_ref_create.
12997
12998 2010-09-03  Jan Hubicka  <jh@suse.cz>
12999
13000         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13001         (build_cdtor_fns): Update use of build_cdtor.
13002
13003 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13004
13005         * doc/options.texi (SeparateAlias): Document.
13006         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13007         * opth-gen.awk: Generate enumeration names for options marked
13008         SeparateAlias, but not for those marked Ignore.
13009         * opts-common.c (generate_canonical_option): Don't output separate
13010         argument for options marked CL_SEPARATE_ALIAS.
13011         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13012         * opts.h (CL_SEPARATE_ALIAS): New.
13013         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13014         CL_COMMON): Adjust definitions.
13015         * config/i386/darwin.opt, config/mips/sde.opt: New.
13016         * common.opt (fdump-final-insns): New.
13017         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13018         i386/darwin.opt.
13019         (mips*-sde-elf*): Add mips/sde.opt.
13020         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13021         -mno-data-in-code and -mcode-xonly here.
13022         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13023         * gcc.c (option_map): Add "j" to --dump entry.
13024         (translate_options): Don't translate -d to -foutput-class-dir= here.
13025
13026 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13027
13028         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13029         DR_IS_WRITE.
13030         (compute_all_dependences): Same.
13031         (create_rdg_edge_for_ddr): Same.
13032         * tree-data-ref.h (DR_IS_WRITE): New.
13033         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13034         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13035         (write_memrefs_written_at_least_once): Same.
13036         * tree-predcom.c (suitable_component_p): Same.
13037         (determine_roots_comp): Same.
13038         (execute_load_motion): Same.
13039         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13040         (vect_enhance_data_refs_alignment): Same.
13041         (vect_analyze_group_access): Same.
13042
13043 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13044
13045         PR testsuite/42843
13046         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13047         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13048
13049 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13050
13051         * dwarf2out.c (file scope): Remove #if0'd code.
13052         (gen_subprogram_die): Same.
13053
13054 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13055
13056         PR middle-end/45484
13057         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13058         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13059         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13060         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13061         * config/i386/i386.c (output_set_got): Call it.
13062
13063 2010-09-03  Michael Matz  <matz@suse.de>
13064
13065         PR middle-end/45415
13066         * tree-sra.c (sra_modify_assign): If we modify the statement,
13067         say so.
13068
13069         * tree-ssa.c (verify_ssa): Check number of operands and links
13070         per statement to agree.
13071
13072 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13073             Iain Sandoe  <iains@gcc.gnu.org>
13074
13075         PR target/45476
13076         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13077         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13078         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13079
13080 2010-09-03  Richard Guenther  <rguenther@suse.de>
13081
13082         * lto-streamer-out.c (output_function): Output function
13083         start and end loci.
13084         * lto-streamer-in.c (input_function): Input function start
13085         and end loci.
13086
13087 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13088
13089         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13090         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13091         * configure: Regenerate.
13092         * aclocal.m4: Regenerate.
13093
13094 2010-09-03  Jan Hubicka  <jh@suse.cz>
13095
13096         PR lto/44812
13097         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13098         on functions/variables in other partition.
13099
13100 2010-09-03  Jan Hubicka  <jh@suse.cz>
13101
13102         * cgraph.h (struct varpool_node): Add const_value_known.
13103         (varpool_decide_const_value_known): Declare.
13104         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13105         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13106         (input_varpool_node): Restore const_value_known.
13107         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13108         initializer folding.
13109         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13110         function_and_variable_visibility): Compute const_value_known.
13111         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13112         initializer folding.
13113         * varpool.c (varpool_decide_const_value_known): New function.
13114
13115 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13116
13117         * config/i386/i386.md: Remove empty preparation statements
13118         from splitters.
13119
13120 2010-09-03  Jan Hubicka  <jh@suse.cz>
13121
13122         * passes.c (rest_of_decl_compilation): Do not add local vars into
13123         varpool.
13124         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13125         static or extern vars are in varpool.
13126         (varpool_finalize_decl): Sanity check that only static vars are
13127         finalized.
13128
13129 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13130
13131         PR debug/45500
13132         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13133         not just generic vectors with BLKmode.
13134
13135 2010-09-03  Richard Guenther  <rguenther@suse.de>
13136
13137         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13138         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13139         * tree.h (TMR_SYMBOL): Remove.
13140         (TMR_BASE, TMR_OFFSET): Adjust.
13141         (TMR_INDEX2): New.
13142         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13143         * builtins.c (get_object_alignment): Merge TMR_BASE and
13144         TMR_SYMBOL handling.
13145         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13146         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13147         handling.  Also allow TARGET_MEM_REF as base address.
13148         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13149         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13150         base.  Gimplify TMR_INDEX2.
13151         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13152         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13153         (get_addr_base_and_unit_offset): Likewise.
13154         * tree-eh.c (tree_could_trap_p): Likewise.
13155         * tree-pretty-print.c (dump_generic_node): Likewise.
13156         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13157         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13158         base to index2.
13159         (get_address_description): Reconstruct addres description
13160         from merged TMR_BASE and TMR_INDEX2.
13161         (maybe_fold_tmr): Fold propagated addresses.
13162         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13163         MEM_REF and TARGET_MEM_REF paths.
13164         (indirect_refs_may_alias_p): Likewise.
13165         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13166         instead of TMR_SYMBOL.
13167         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13168         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13169         according to changes ...
13170         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13171         Split TARGET_MEM_REF into two fields plus the base.
13172         * tree.c (mem_ref_offset): Simplify.
13173         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13174         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13175         Strip NOPs when folding MEM_REF addresses.
13176         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13177         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13178         (fold_gimple_assign): ... not here.
13179
13180 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13181
13182         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13183         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13184         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13185
13186 2010-09-02  Richard Henderson  <rth@redhat.com>
13187
13188         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13189         instead of readelf in the test.
13190         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13191         in the .debug_frame section for coff targets.
13192         * configure: Rebuild.
13193
13194 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13195
13196         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13197         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13198         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13199         (m32c_class_likely_spilled_p): Make static. Change argument type to
13200         reg_class_t. Change result type to bool.
13201
13202 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13203
13204         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13205         to convert (double)(long) into a single FRIZ instruction or not
13206         when -ffast-math is used.
13207
13208         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13209         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13210         or FRIZ instruction if -ffast-math.
13211         * config/rs6000/rs6000.md (friz): Ditto.
13212
13213         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13214
13215 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13216
13217         * opth-gen.awk (quote, comma): Remove unused variables.
13218
13219 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13220
13221         * arm.c (arm_override_options): Correct fall-back code to use
13222         SUBTARGET_CPU_DEFAULT.
13223
13224 2010-09-02  Julian Brown  <julian@codesourcery.com>
13225
13226         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13227         unspecs.
13228         (vcond<mode>, vcondu<mode>): New expanders.
13229         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13230         comparisons with zero.
13231         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13232         * config/arm/constraints.md (Dz): New constraint.
13233
13234 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13235
13236         * target.def (class_likely_spilled_p): New hook.
13237         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13238         * doc/tm.texi: Regenerate.
13239         * targhooks.c (default_class_likely_spilled_p): New function.
13240         * targhooks.h (default_class_likely_spilled_p): Declare.
13241         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13242         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13243         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13244         Use fixed_reg_set instead of fixed_regs.
13245         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13246         * calls.c (avoid_likely_spilled_reg): Ditto.
13247         * ira-conflicts.c (ira_build_conflicts): Ditto.
13248         * ira.c (update_equiv_regs): Ditto.
13249         * mode-switching.c (create_pre_exit): Ditto.
13250         * regmove.c (find_matches): Ditto.
13251         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13252         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13253         (small_register_class_p): New inline function.
13254         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13255         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13256
13257         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13258         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13259         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13260
13261 2010-09-02  Richard Guenther  <rguenther@suse.de>
13262
13263         PR tree-optimization/44937
13264         PR tree-optimization/45412
13265         * ipa-split.c (split_function): Properly remove PHI nodes.
13266
13267 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13268
13269         * opts.h (struct cl_option): Add warn_message field.
13270         (struct cl_decoded_option): Add warn_message field.
13271         * doc/options.texi (Ignore, Warn): Document.
13272         * opt-functions.awk (needs_state_p): Don't consider aliases or
13273         ignored options to need state saved.
13274         * optc-gen.awk: Handle Warn and Ignore.
13275         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13276         * opts-common.c (decode_cmdline_option): Set warn_message field.
13277         Handle ignored options.
13278         (decode_cmdline_options_to_array, generate_option,
13279         generate_option_input_file): Set warn_message field.
13280         (read_cmdline_option): Generate warnings from warn_message field.
13281         Handle ignored options.
13282         * common.opt (Wunreachable-code, fargument-alias,
13283         fargument-noalias, fargument-noalias-global,
13284         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13285         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13286         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13287         ftree-salias): Mark Ignore.
13288         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13289         -mintel-syntax and -mno-intel-syntax here.
13290         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13291         using Warn.
13292         * opts.c (common_handle_option): Don't handle options marked as
13293         ignored.
13294         (enable_warning_as_error): Handle ignored options.
13295
13296 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13297
13298         PR driver/44076
13299         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13300         alias_target fields.
13301         * opt-functions.awk (opt_sanitized_name): Don't handle
13302         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13303         * optc-gen.awk: Generate alias fields.
13304         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13305         Don't generate such constants for aliases.
13306         * opts-common.c (generate_canonical_option): New.
13307         (decode_cmdline_option): Handle aliases.  Use
13308         generate_canonical_option for known options instead of copying the
13309         input option text.
13310         * doc/options.texi (Alias): Document.
13311         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13312         fstack-check, specs): Mark as aliases.
13313         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13314         arguments.
13315         (driver_handle_option): Don't handle OPT_specs.
13316         * opts.c (common_handle_option): Don't handle options marked as
13317         aliases.
13318         (enable_warning_as_error): Handle aliases.
13319         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13320         OPT_Wlarger_than_eq.
13321         * tree-optimize.c (tree_rest_of_compilation): Use
13322         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13323
13324 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13325
13326         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13327         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13328         (move immediate to memory peephole2): Macroize peepholes using
13329         SWI124 mode iterator.
13330         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13331         mode iterator.
13332         (simple lea add peephole2): Macroize peepholes using SWI48
13333         mode iterator.
13334         (simple lea mult peephole2): Ditto.
13335         (imul by 3,5,9 to lea peephole2): Ditto.
13336         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13337         mode iterator.
13338         (imul $32bit_imm,mem,reg peephole2): Ditto.
13339         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13340
13341 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13342
13343         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13344
13345 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13346
13347         PR middle-end/44763
13348         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13349         (allocno_priority_compare_func): Use it instead of a straight
13350         difference computation over priorities.
13351
13352 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13353
13354         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13355
13356 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13357
13358         * tree-vectorizer.h (get_later_stmt): New function.
13359         (vect_analyze_data_ref_dependences): Add argument.
13360         * tree-vect-loop.c (vect_analyze_loop): Update call to
13361         vect_analyze_data_ref_dependences.
13362         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13363         New function.
13364         (vect_analyze_data_ref_dependence): Add argument for basic block
13365         dependencies. Check dependencies in basic block vectorization.
13366         (vect_analyze_data_ref_dependences): Add argument and update call to
13367         vect_analyze_data_ref_dependences.
13368         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13369         (vect_bb_vectorizable_with_dependencies): New.
13370         (vect_slp_analyze_bb): Check dependencies in basic block.
13371         (vect_schedule_slp_instance): Insert stores before the last store in
13372         SLP instance.
13373
13374 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13375
13376         PR target/45476
13377         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13378         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13379
13380 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13381
13382         PR middle-end/45458
13383         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13384         bbs ending with throwing insns like blocks ending with a call.
13385         (fix_up_fall_thru_edges): Likewise.
13386
13387 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13388
13389         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13390         (m32c_function_arg_advance): Delete.
13391         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13392         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13393         comments.  Take a const_tree and a bool.  Declare.
13394         (m32c_function_arg_advance): Likewise.
13395         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13396
13397 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13398
13399         PR target/45476
13400         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13401         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13402         * config/i386/mingw32.h: ... here.
13403
13404 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13405
13406         PR lto/45475
13407         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13408         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13409         * lto-streamer-out (lto_output_ts_target_option): Add.
13410         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13411
13412 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13413
13414         PR/target 45452
13415         * config/i386/cygwin.h: Change order of specified import libraries.
13416         * config/i386/mingw32.h: Likewise.
13417         * config/i386/t-cygwin: Likewise.
13418         * config/i386/t-mingw32: Likewise.
13419         * config/i386/t-mingw-w32: Likewise.
13420         * config/i386/t-mingw-w64: Likewise.
13421
13422 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13423
13424         * config/arm/neon-schedgen.ml (core): New type.
13425         (allCores): List of supported cores.
13426         (availability_table): Add supported cores.
13427         (collate_bypasses): Accept core as a parameter.
13428         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13429         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13430         and coreStr to get tune attribute and prefix for functional units.
13431         (emit_bypasses): Accept core name and use it.
13432         (calculate_per_core_availability_table): New.
13433         (filter_core): New.
13434         (calculate_core_availability_table): New.
13435         (main): Use calculate_core_availablity_table.
13436         * config/arm/cortex-a8-neon.md: Update copyright year.
13437         Regenerated from ml file and merged in.
13438         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13439         cortex_a8_neon_mrc.
13440
13441 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13442
13443         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13444
13445 2010-09-01  Richard Guenther  <rguenther@suse.de>
13446
13447         * alias.c (ao_ref_from_mem): Adjust.
13448         * builtins.c (get_object_alignment): Likewise.
13449         * cfgexpand.c (expand_debug_expr): Likewise.
13450         * gimple.c (get_base_address): Likewise.
13451         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13452         (get_addr_base_and_unit_offset): Likewise.  Fix for
13453         both TMR_SYMBOL and TMR_BASE being set.
13454         * tree-eh.c (tree_could_trap_p): Likewise.
13455         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13456         TMR_SYMBOL.  Always gimplify TMR_BASE.
13457         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13458         TMR_BASE if there is a TMR_SYMBOL.
13459         * tree-pretty-print.c (dump_generic_node): Adjust.
13460         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13461         (tree_mem_ref_addr): Likewise.
13462         (create_mem_ref_raw): Likewise.
13463         (move_fixed_address_to_symbol): Likewise.
13464         (create_mem_ref): Likewise.
13465         (dump_mem_address): Likewise.
13466         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13467         Fix for both TMR_SYMBOL and TMR_BASE being set.
13468         (indirect_refs_may_alias_p): Likewise.
13469         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13470         * tree.def (TARGET_MEM_REF): Adjust documentation.
13471
13472 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13473
13474         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13475         Rename from X86_TUNE_ADD_ESP_4.
13476         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13477         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13478         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13479         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13480         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13481         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13482         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13483         * config/i386/i386.c (initial_ix86_tune_features)
13484         <X86_TUNE_SINGLE_POP>: Invert members.
13485         <X86_TUNE_DOUBLE_POP>: Ditto.
13486         <X86_TUNE_SINGLE_PUSH>: Ditto.
13487         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13488         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13489         No longer exported.
13490         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13491         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13492         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13493         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13494
13495 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13496
13497         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13498         a volatile LHS if the constructor has only one element.
13499
13500 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13501
13502         PR bootstrap/45321
13503         * tree.c (stdarg_p): Make fntype parameter const.
13504         * tree.h (stdarg_p): Likewise.
13505         (function_args_iterator): Remove unused fntype field.
13506         (function_args_iter_init): Do not initialize fntype
13507         field.  Make fntype parameter const.
13508
13509 2010-09-01  Richard Guenther  <rguenther@suse.de>
13510
13511         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13512         estimate.
13513         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13514         (execute_vrp): Compute number of iteration estimates.
13515         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13516         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13517         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13518         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13519         Infer loop bounds from undefined behavior based on a new parameter.
13520         (estimate_numbers_of_iterations): Likewise.
13521         (scev_probably_wraps_p): Adjust.
13522         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13523
13524 2010-09-01  Nick Clifton  <nickc@redhat.com>
13525
13526         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13527         where appropriate.
13528         (xstormy16_legitimate_address_p): Use true and false instead of 1
13529         and 0.
13530         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13531         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13532         magic constant 2.
13533         (xstormy16_expand_call): Fix comment at start of function.
13534
13535 2010-09-01  Nick Clifton  <nickc@redhat.com>
13536
13537         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13538         when pushing accumulator register.
13539         (rx_get_stack_layout): Always save call clobbered registers inside
13540         interrupt handlers.
13541         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13542
13543 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13544
13545         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13546         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13547
13548         * libgcc-std.ver (GCC_4.6.0): Define version.
13549
13550 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13551
13552         * tree-nested.c (convert_all_function_calls): Iterate until after the
13553         sum of static chains in the nest doesn't change.
13554
13555 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13556
13557         * config/m32c/m32c.c (classes_intersect): Remove.
13558         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13559         reg_classes_intersect_p instead of classes_intersect.
13560         (class_can_hold_mode): Change arguments type from enum reg_class to
13561         reg_class_t.  Use reg_class_contents instead of class_contents.
13562         (m32c_register_move_cost): Make static. Change arguments type from
13563         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13564         classes_intersect. Use reg_class_contents instead of class_contents.
13565         (m32c_memory_move_cost): Make static. Change arguments type from
13566         enum reg_class to reg_class_t.
13567         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13568         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13569         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13570         m32c_memory_move_cost): Remove.
13571
13572 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13573
13574         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13575         (arm_function_arg): Delete.
13576         (arm_needs_doubleword_align): Take a const_tree.
13577         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13578         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13579         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13580         (arm_function_arg): Make static.  Take a const_tree and a bool.
13581         (arm_function_arg_advance): Likewise.
13582         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13583
13584 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13585
13586         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13587         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13588         * lto-wrapper.c (run_gcc): Add jobserver mode.
13589         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13590         argument.
13591
13592 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13593
13594         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13595         (popsi1): Ditto.
13596         (*popdi1_epilogue): Ditto.
13597         (*popsi1_epilogue): Ditto.
13598         (popsi, popdi peephole2 patterns): Update peepholes for changed
13599         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13600
13601         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13602         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13603
13604         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13605         (override_options): Do not initialize removed ix86_gen_pop1.
13606         (gen_pop): New static function.
13607         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13608         (release_scratch_register_on_entry): Ditto.
13609         (ix86_restore_reg_using_pop): Ditto.
13610         (ix86_expand_epilogue): Ditto.
13611
13612 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13613
13614         PR middle-end/45461
13615         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13616
13617 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13618
13619         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13620         semicolons.
13621
13622 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13623
13624         * doc/extend.texi: Fix documentation of the return value of
13625         __builtin_choose_expr.
13626
13627 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13628
13629         * config/v850/v850-protos.h (function_arg): Delete.
13630         * config/v850/v850.h (FUNCTION_ARG): Delete.
13631         (FUNCTION_ARG_ADVANCE): Move code to...
13632         * config/v850/v850.c (v850_function_arg_advance): ...here.
13633         (v850_function_arg): Make static.  Take a const_tree and a bool.
13634         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13635
13636 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13637
13638         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13639         these...
13640         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13641         ...and these...
13642         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13643         ..to here..
13644         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13645         ...and here.
13646         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13647
13648 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13649
13650         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13651         Delete.
13652         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13653         * config/rx/rx.c (rx_function_arg_size): Make static.
13654         (rx_function_arg): Likewise.
13655         (rx_function_arg_advance): New function.
13656         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13657
13658 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13659
13660         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13661         Fix indentation.
13662
13663 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13664
13665         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13666         (dwarf2out_decl) <CONST_DECL>: Likewise.
13667
13668 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13669
13670         Stack usage support
13671         * common.opt (-fstack-usage): New option.
13672         * doc/invoke.texi (Debugging options): Document it.
13673         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13674         allocate_dynamic_stack_space.
13675         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13676         and propagate it to allocate_dynamic_stack_space.
13677         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13678         * calls.c (initialize_argument_information): Pass TRUE as 4th
13679         argument to allocate_dynamic_stack_space.
13680         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13681         to 1 when pushing a variable-sized argument onto the stack.  Pass
13682         TRUE as 4th argument to allocate_dynamic_stack_space.
13683         Update current_function_pushed_stack_size.
13684         (emit_library_call_value_1): Likewise.
13685         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13686         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13687         attempt to find an upper bound.  Remove redundant code for the
13688         SETJMP_VIA_SAVE_AREA case.
13689         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13690         * function.h (struct stack_usage): New structure.
13691         (current_function_static_stack_size): New macro.
13692         (current_function_dynamic_stack_size): Likewise.
13693         (current_function_pushed_stack_size): Likewise.
13694         (current_function_dynamic_alloc_count): Likewise.
13695         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13696         (current_function_allocates_dynamic_stack_space): Likewise.
13697         (struct function): Add new field 'su'.
13698         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13699         add the value of the dynamic offset to the dynamic stack usage.
13700         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13701         for variable-sized objects.
13702         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13703         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13704         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13705         BUILT_IN_ALLOCA for variable-sized objects.
13706         * output.h (output_stack_usage): Declare.
13707         * toplev.c (stack_usage_file): New file pointer.
13708         (output_stack_usage): New function.
13709         (open_auxiliary_file): Likewise.
13710         (lang_dependent_init): Open file if flag_stack_usage is set.
13711         (finalize): Close file if stack_usage_file is not null.
13712         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13713         * config/alpha/alpha.c (compute_frame_size): New function.
13714         (alpha_expand_prologue): Use it.
13715         (alpha_start_function): Likewise.
13716         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13717         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13718         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13719         * config/mips/mips.c (mips_expand_prologue): Likewise.
13720         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13721         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13722         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13723
13724 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13725
13726         PR tree-optimization/45427
13727         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13728         Handle the case that the exit is never taken correctly.
13729         (number_of_iterations_ne): Pass exit_must_be_taken to
13730         number_of_iterations_ne_max.
13731
13732 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13733
13734         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13735         Infer -mdspr2 for the the 74K.
13736
13737 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13738
13739         PR debug/45419
13740         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13741
13742         PR middle-end/45423
13743         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13744         and TRUTH_{AND,OR,XOR}_EXPR.
13745         * c-parser.c (c_parser_omp_atomic): Handle boolean
13746         {PRE,POST}_{INC,DEC}REMENT.
13747
13748 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13749
13750         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13751         (function_arg): Delete.
13752         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13753         (FUNCTION_INCOMING_ARG): Delete.
13754         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13755         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13756         and a bool.
13757         (function_arg): Rename to...
13758         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13759         a bool.
13760         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13761         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13762         (TARGET_FUNCTION_INCOMING_ARG): Define.
13763
13764 2010-08-30  Richard Guenther  <rguenther@suse.de>
13765
13766         PR tree-optimization/21602
13767         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13768         using points-to information.
13769
13770 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13771
13772         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13773
13774 2010-08-30  Richard Guenther  <rguenther@suse.de>
13775
13776         PR tree-optimization/45449
13777         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13778         variables.
13779
13780 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13781
13782         * opts.h (CL_ERR_NEGATIVE): Define.
13783         * opts.c (unknown_option_callback): Don't postpone warnings for
13784         options marked with CL_ERR_NEGATIVE.
13785         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13786         for negative versions of CL_REJECT_NEGATIVE options.
13787
13788 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13789
13790         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13791         zero_extendsidi2_32.
13792         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13793         using SWI12 mode iterator.
13794         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13795         to define_insn_and_split pattern.
13796         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13797         using SWI24 mode iterator.
13798         (*zero_extendqi<mode>2_and): Macroize insn from
13799         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13800         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13801         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13802         SWI24 mode iterator.
13803         (*zero_extendqi<mode>2_movzbl): Ditto from
13804         *zero_extendqi{hi,si}2_movzbl.
13805         (extendsidi2_1): Rename from extendsidi2_32.
13806         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13807         SWI12 mode iterator.
13808
13809 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13810
13811         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13812         general purpose registers.
13813         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13814         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13815         with general purpose registers and memory operands.  Add associated
13816         CCImode post-reload splitter.
13817         * config/ia64/div.md: Change BImode to CCImode throughout.
13818
13819 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13820
13821         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13822
13823 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13824
13825         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13826         function was dropping debug insns which caused PR45299.
13827
13828 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13829
13830         * config/i386/sse.md (extsuffix): New code attribute.
13831         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13832         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13833         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13834         and sse4_1_zero_extendv4qiv4si2.
13835         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13836         and sse4_1_zero_extendv2qiv2di2.
13837         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13838         and sse4_1_zero_extendv4hiv4si2.
13839         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13840         and sse4_1_zero_extendv2hiv2di2.
13841         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13842         and sse4_1_zero_extendv2siv2di2
13843
13844         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13845         using any_extend code iterator.
13846         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13847         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13848         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13849
13850         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13851         gen_sse4_1_sign_extend* functions.
13852         (struct builtin_description bdesc_args): Ditto.
13853
13854 2010-08-27  Xinliang David Li  <davidxl@google.com>
13855
13856         PR/45422
13857         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13858         (iv_ca_set_no_cp): Update used inv expr count.
13859         (iv_ca_set_cp): Ditto.
13860         (iv_ca_new): Initialize new member.
13861         (iv_ca_free): Free memory.
13862
13863 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13864
13865         * config/sh/sh-protos.h (sh_function_arg): Delete.
13866         (sh_function_arg_advance): Delete.
13867         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13868         (PASS_IN_REG_P): Eliminate cast.
13869         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13870         const_tree and a bool.
13871         (sh_function_arg): Likewise.
13872         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13873         sh_function_arg.
13874         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13875
13876 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13877             Kaz Kojima  <kkojima@gcc.gnu.org>
13878
13879         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13880         when possible.
13881         (sh_expand_epilogue): Likewise.
13882         * config/sh/sh.md (movml_push_banked): New insn.
13883         (movml_pop_banked): Likewise.
13884
13885 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13886
13887         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13888         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13889         in vector element 0 rather than the original string when there's
13890         only one element.
13891         (gen_regexp): Remove extra semicolon.
13892
13893         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13894         thumb2_movsf_vfp): Set attribute "insn".
13895         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13896         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13897         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13898         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13899         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13900         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13901         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13902         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13903         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13904         if_not_arith, if_arith_not, cond_move_not): Likewise.
13905
13906 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13907
13908         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13909         New declaration.
13910         (rs6000_allocate_stack_temp): Ditto.
13911         (rs6000_expand_convert_si_to_sfdf): Ditto.
13912
13913         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13914         line.  Update the options set if power6 or power7 server/embedded
13915         type options are used.  If we give a warning for no vsx under
13916         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13917         (rs6000_allocate_stack_temp): New function to allocate a stack
13918         tempoary and adjust the address so it meets either REG+OFFSET or
13919         REG+REG addressing requirements.
13920         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13921         that they can be used with the LFIWAX/LFIWZX instrucitons.
13922         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13923         converting signed/unsigned SImode to either SFmode/DFmode.
13924
13925         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13926         whether certain instructions can be generated.
13927         (TARGET_FCTIDZ): Ditto.
13928         (TARGET_STFIWX): Ditto.
13929         (TARGET_LFIWAX): Ditto.
13930         (TARGET_LFIWZX): Ditto.
13931         (TARGET_FCFIDS): Ditto.
13932         (TARGET_FCFIDU): Ditto.
13933         (TARGET_FCFIDUS): Ditto.
13934         (TARGET_FCTIDUZ): Ditto.
13935         (TARGET_FCTIWUZ): Ditto.
13936
13937         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13938         (UNSPEC_FCTID): Ditto.
13939         (UNSPEC_LFIWAX): Ditto.
13940         (UNSPEC_LFIWZX): Ditto.
13941         (UNSPEC_FCTIWUZ): Ditto.
13942         (rreg): Use correct constraints.
13943         (SI_CONVERT_FP): New mode attribute for floating point conversion
13944         tests.
13945         (E500_CONVERT): Ditto.
13946         (lfiwax): New insns for converting from integer to floating point
13947         utilizing newer instructions.  Attempt to optimize conversions
13948         that come from memory so that we don't load the value into a GPR,
13949         spill it to the stack and reload it into a FPR.
13950         (floatsi<mode>2_lfiwax): Ditto.
13951         (floatsi<mode>2_lfiwax_mem): Ditto.
13952         (floatsi<mode>2_lfiwax_mem2): Ditto.
13953         (lfiwzx): Ditto.
13954         (floatunssi<mode>2_lfiwzx): Ditto.
13955         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13956         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13957         (floatdidf2_mem): Ditto.
13958         (floatunsdidf2_fcfidu): Ditto.
13959         (floatunsdidf2_mem): Ditto.
13960         (floatunsdisf2): Ditto.
13961         (floatunsdisf2_fcfidus): Ditto.
13962         (floatunsdisf2_mem): Ditto.
13963         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13964         Use FCFID on 32-bit hosts that support it.
13965         (floatsidf2_internal): Ditto.
13966         (floatunssisf2): Ditto.
13967         (floatunssidf2): Ditto.
13968         (floatunssidf2_internal): Ditto.
13969         (floatsisf2): Ditto.
13970         (floatdidf2): Ditto.
13971         (floatdidf2_fpr): Ditto.
13972         (floatunsdidf2): Ditto.
13973         (floatdisf2): Ditto.
13974         (floatdisf2_fcfids): Ditto.
13975         (floatdisf2_internal1): Ditto.
13976         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13977         SF/DF.  Add power7 support.
13978         (fix_truncsfsi2): Ditto.
13979         (fixuns_truncdfsi2): Ditto.
13980         (fixuns_truncdfdi2): Ditto.
13981         (fix_truncdfsi2): Ditto.
13982         (fix_truncdfsi2_internal): Ditto.
13983         (fix_truncdfsi2_internal_gfxopt): Ditto.
13984         (fix_truncdfsi2_mfpgpr): Ditto.
13985         (fctiwz): Ditto.
13986         (btruncdf2): Ditto.
13987         (btruncdf2_fpr): Ditto.
13988         (btructsf2): Ditto.
13989         (ceildf2): Ditto.
13990         (ceildf2_fpr): Ditto.
13991         (ceilsf2): Ditto.
13992         (floordf2): Ditto.
13993         (floordf2_fpr): Ditto.
13994         (floorsf2): Ditto.
13995         (rounddf2): Ditto.
13996         (rounddf2_fpr): Ditto.
13997         (roundsf2): Ditto.
13998         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
13999         (fix_trunc<mode>di2): Ditto.
14000         (fixuns_trunc<mode>si2): Ditto.
14001         (fixuns_trunc<mode>di2): Ditto.
14002         (fctiwz_<mode>): Ditto.
14003         (btrunc<mode>2): Ditto.
14004         (btrunc<mode>2_fpr): Ditto.
14005         (ceil<mode>2): Ditto.
14006         (ceil<mode>2_fpr): Ditto.
14007         (floor<mode>2): Ditto.
14008         (float<mode>2_fpr): Ditto.
14009         (round<mode>2): Ditto.
14010         (round<mode>2_fpr): Ditto.
14011         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14012         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14013         (fix_truncdfsi2_internal): Ditto.
14014         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14015         converted value on stack, loaded into GPR, and then stored into
14016         the final destination.
14017         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14018         FCTIDZ.
14019         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14020         (ftruncdf2): Delete, unused.
14021         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14022
14023         * config/rs6000/vsx.md (toplevel): Update copyright year.
14024         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14025         (VSr3): Ditto.
14026
14027 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14028             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14029
14030         * gengtype.c (output_type_enum): Test the right union member.
14031
14032 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14033
14034         PR target/41484
14035         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14036         operands for operand 1.
14037         (sse4_1_extendv4qiv4si2): Ditto.
14038         (sse4_1_extendv2qiv2di2): Ditto.
14039         (sse4_1_extendv4hiv4si2): Ditto.
14040         (sse4_1_extendv2hiv2di2): Ditto.
14041         (sse4_1_extendv2siv2di2): Ditto.
14042         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14043         (sse4_1_zero_extendv4qiv4si2): Ditto.
14044         (sse4_1_zero_extendv2qiv2di2): Ditto.
14045         (sse4_1_zero_extendv4hiv4si2): Ditto.
14046         (sse4_1_zero_extendv2hiv2di2): Ditto.
14047         (sse4_1_zero_extendv2siv2di2): Ditto.
14048         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14049         (*sse4_1_extendv4qiv4si2): Ditto.
14050         (*sse4_1_extendv2qiv2di2): Ditto.
14051         (*sse4_1_extendv4hiv4si2): Ditto.
14052         (*sse4_1_extendv2hiv2di2): Ditto.
14053         (*sse4_1_extendv2siv2di2): Ditto.
14054         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14055         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14056         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14057         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14058         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14059         (*sse4_1_zero_extendv2siv2di2): Ditto.
14060
14061 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14062
14063         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14064         (mips_function_arg): Delete.
14065         (mips_function_arg_boundary): Take a const_tree.
14066         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14067         (mips_arg_info): Likewise.
14068         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14069         instead of FUNCTION_ARG_ADVANCE.
14070         (mips_function_arg_advance): Adjust prototype.  Make static.
14071         (mips_function_arg): Likewise.
14072         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14073         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14074
14075 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14076
14077         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14078         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14079         (function_arg): Delete.
14080         (function_arg_boundary): Take a const_tree.
14081         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14082         (rs6000_spe_function_arg): Likewise.
14083         (rs6000_parm_start): Likewise.
14084         (rs6000_arg_size): Likewise.
14085         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14086         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14087         (rs6000_mixed_function_arg): Likewise.
14088         (function_arg): Rename to...
14089         (rs6000_function_arg): ...this.
14090         (function_arg_advance): Rename to...
14091         (rs6000_function_arg_advance_1): ...this
14092         (rs6000_function_arg_advance): New function.  Call it.
14093         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14094         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14095         (rs6000_function_value): Likewise.
14096         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14097
14098 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14099
14100         * config/arm/arm.md (enabled): Test the value of arch_enabled
14101         rather than just using it.
14102
14103 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14104             Eric Botcazou  <ebotcazou@adacore.com>
14105
14106         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14107         cover all the possible offsets from this base.
14108         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14109
14110 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14111
14112         PR tree-optimization/44485
14113         * calls.c (flags_from_decl_or_type): For const or pure
14114         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14115         together with ECF_CONST resp. ECF_PURE.
14116         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14117         instead of querying flags directly.
14118         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14119         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14120
14121 2010-08-26  Richard Guenther  <rguenther@suse.de>
14122
14123         PR tree-optimization/45255
14124         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14125         and externals are also invariant.
14126
14127 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14128
14129         PR rtl-optimization/44858
14130         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14131         newi2pat, make sure they don't affect newpat.
14132
14133         PR rtl-optimization/45400
14134         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14135         SUBREG_REG if both modes are of MODE_INT class.
14136
14137 2010-08-25  Julian Brown  <julian@codesourcery.com>
14138
14139         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14140         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14141         (generic_vfp): Likewise.
14142         (cortex-a5.md): Include.
14143         * config/arm/cortex-a5.md: New.
14144
14145 2010-08-25  Richard Guenther  <rguenther@suse.de>
14146
14147         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14148         * gimple.c (gimple_get_alias_set): Remove special handling
14149         for pointers.
14150
14151 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14152
14153         PR middle-end/45355
14154         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14155         dead_or_set_p when computing i0_feeds_i2_n.
14156
14157         * combine.c (find_split_point): Undo canonicalization of multiply-add
14158         to (minus x (mult)) when it seems likely that this will increase the
14159         chances of a split.
14160
14161 2010-08-25  Richard Guenther  <rguenther@suse.de>
14162
14163         PR lto/44562
14164         * lto-streamer.c (lto_record_common_node): Do not mess with
14165         TYPE_CANONICAL when not in lto.
14166         * gimple.c (gimple_register_type): Likewise.
14167
14168 2010-08-25  Richard Guenther  <rguenther@suse.de>
14169
14170         PR tree-optimization/45316
14171         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14172
14173 2010-08-25  Richard Guenther  <rguenther@suse.de>
14174
14175         PR tree-optimization/45393
14176         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14177         and clean EH info.  Avoid SSA update.
14178         (execute_cse_sincos): Cleanup the CFG if it has changed.
14179
14180 2010-08-25  Richard Guenther  <rguenther@suse.de>
14181
14182         PR middle-end/45379
14183         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14184         TARGET_MEM_REF in alignment computation.
14185
14186 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14187
14188         PR tree-optimization/45059
14189         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14190         type conversions from newop{1,2}.  Assert t is a comparison and
14191         newop{1,2} after the stripping are gimple vals.
14192
14193 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14194
14195         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14196         (V_unpack, US): New.
14197         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14198         (vec_unpack<US>_lo_<mode>): Likewise.
14199         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14200         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14201         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14202         (vec_widen_<US>mult_hi_<mode>): Likewise.
14203         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14204         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14205         (neon_unpack<US>_<mode>): Widening move intermediate step for
14206         vectorizing without -mvectorize-with-neon-quad.
14207         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14208         for vectorizing without -mvectorize-with-neon-quad.
14209         * config/arm/predicates.md (vect_par_constant_high): Check for
14210         high-half lanes of a vector.
14211         (vect_par_constant_low): Check for low-half lanes of a vector.
14212
14213 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14214
14215         * tree-if-conv.c (struct ifc_dr): New.
14216         (IFC_DR): New.
14217         (DR_WRITTEN_AT_LEAST_ONCE): New.
14218         (DR_RW_UNCONDITIONALLY): New.
14219         (memref_read_or_written_unconditionally): Use the cached values
14220         when possible.
14221         (write_memref_written_at_least_once): Same.
14222         (if_convertible_loop_p): Initialize and free DR->aux fields.
14223
14224 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14225
14226         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14227         Pass an extra bool parameter include_mem.
14228         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14229         (gimple_assign_rhs_could_trap_p): Same.
14230         * gimple.h (gimple_could_trap_p_1): Declared.
14231         * tree-data-ref.h (same_data_refs_base_objects): New.
14232         (same_data_refs): New.
14233         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14234         (write_memrefs_written_at_least_once): New.
14235         (ifcvt_memrefs_wont_trap): New.
14236         (operations_could_trap): New.
14237         (ifcvt_could_trap_p): New.
14238         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14239         Gets a vector of data refs.
14240         (if_convertible_stmt_p): Same.
14241         (if_convertible_loop_p_1): New.
14242         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14243
14244 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14245
14246         * common.opt (ftree-loop-if-convert-stores): New flag.
14247         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14248         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14249         the created statement before GSI.
14250         (if_convertible_phi_p): Allow virtual phi nodes when
14251         flag_loop_if_convert_stores is set.
14252         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14253         Do not handle types that do not match is_gimple_reg_type.
14254         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14255         when flag_loop_if_convert_stores is set, as LHS can contain
14256         memory refs.
14257         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14258         to if_convertible_gimple_assign_stmt_p.
14259         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14260         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14261         predicate_scalar_phi.  Do not handle virtual phi nodes.
14262         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14263         Call predicate_scalar_phi.
14264         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14265         just after the labels for flag_loop_if_convert_stores, otherwise
14266         insert the predicate in the end of the BB.
14267         (predicate_mem_writes): New.
14268         (combine_blocks): Call predicate_all_scalar_phis.  When
14269         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14270         (tree_if_conversion): Call mark_sym_for_renaming when
14271         flag_loop_if_convert_stores is set.
14272         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14273         flag_loop_if_convert_stores is set.
14274
14275 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14276
14277         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14278         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14279         (pa_function_value): Make static.
14280         (override_options): Rename to...
14281         (pa_option_override): ...this. Make static.
14282         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14283         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14284         TARGET_OPTION_OVERRIDE): Define.
14285         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14286         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14287         Remove.
14288         * config/pa/pa-protos.h (override_options): Remove.
14289
14290 2010-08-24  Richard Guenther  <rguenther@suse.de>
14291
14292         PR middle-end/45379
14293         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14294         if addr->index is NULL or zero.
14295         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14296         TARGET_MEM_REF more properly.
14297         (indirect_ref_may_alias_decl_p): Likewise.
14298         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14299         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14300
14301 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14302
14303         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14304         (m32c_override_options): Rename to...
14305         (m32c_option_override): ...this. Make static.
14306         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14307         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14308         Remove.
14309         * config/m32c/m32c-protos.h (m32c_override_options,
14310         m32c_function_value_regno_p): Remove.
14311
14312 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14313
14314         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14315         Fix a typo in a previous commit.
14316
14317 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14318
14319         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14320         Pre-initialize innerloop_iters to one.
14321
14322 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14323
14324         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14325         existing static function global.
14326
14327         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14328         is changed to global.
14329
14330         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14331         may_be_nonaddressable_p on base, and don't collect this reference
14332         if the address of the base could not be taken.
14333
14334 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14335
14336         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14337         enable the compiler to autovectorize mathmetical functions for
14338         power7 using the Mathematical Acceleration Subsystem library.
14339
14340         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14341         handle which vector math library we have.
14342         (rs6000_override_options): Add -mveclibabi=mass support.
14343         (rs6000_builtin_vectorized_libmass): New function to handle auto
14344         vectorizing math functions that are in the MASS library.
14345         (rs6000_builtin_vectorized_function): Call it.
14346
14347         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14348         -mveclibabi=mass.
14349
14350 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14351
14352         PR boehm-gc/34544
14353         * gthr-posix.h (__gthread_active_init): Delete.
14354         (__gthread_active_p): Do activity check here.
14355         Don't include errno.h on hppa-hpux.  Update comment.
14356         * gthr-posix95.h (__gthread_active_init): Delete.
14357         (__gthread_active_p): Do activity check here.
14358         Don't include errno.h on hppa-hpux.  Update comment.
14359         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14360         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14361         add -lpthread when -mt or -pthread is specified.
14362         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14363         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14364         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14365         (stublib.c, pthread_default_stacksize_np-stub.o,
14366         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14367         $(T)libgcc_stub.a): Add methods.
14368         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14369         (stublib.c, pthread_default_stacksize_np-stub.o,
14370         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14371         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14372         pthread_mutex_unlock): New stubs.
14373
14374 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14375
14376         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14377         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14378         options.
14379         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14380         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14381         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14382         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14383         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14384         "-l".
14385         * cppspec.c: Include opts.h.
14386         (lang_specific_driver): Use cl_decoded_option structures.
14387         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14388         * doc/tm.texi: Regenerate.
14389         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14390         (driver_handle_option): Allow driver options needing no special
14391         processing.
14392         (process_command): Decode options before call to
14393         lang_specific_driver.  Pass decoded options to
14394         lang_specific_driver.
14395         * gcc.h (lang_specific_driver): Update prototype.
14396         * gccspec.c: Include opts.h.
14397         (lang_specific_driver): Use cl_decoded_option structures.
14398         * opts-common.c (option_ok_for_language, generate_option,
14399         generate_option_input_file): New.
14400         (decode_cmdline_option): Use option_ok_for_language.
14401         (decode_cmdline_options_to_array): Use generate_option_input_file.
14402         (handle_generated_option): Use generate_option.
14403         * opts.h (generate_option, generate_option_input_file): Declare.
14404
14405 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14406
14407         * config/mips/mips.c (mips_override_options): Rename to...
14408         (mips_option_override): ...this. Make static.
14409         (TARGET_OPTION_OVERRIDE): Define.
14410         (mips_in_small_data_p): Update comment.
14411         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14412         (FIXED_REGISTERS): Update comment.
14413         * config/mips/mips-protos.h (mips_override_options): Remove.
14414
14415 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14416
14417         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14418
14419 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14420
14421         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14422         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14423
14424 2010-08-20  Jan Hubicka  <jh@suse.cz>
14425
14426         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14427         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14428         heap allocated.
14429         (record_cdtor_fn): Move to ipa.c; do not test for
14430         have_ctors_dtors.
14431         (build_cdtor): Move to ipa.c; add code avoiding construction
14432         when target have ctors/dtors and there is only one ctor/dtor at given
14433         priority.
14434         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14435         sort; reverse order of constructors.
14436         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14437         (cgraph_finalize_function): Do not call record_cdtor_fn.
14438         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14439         (cgraph_build_static_cdtor): Move to ipa.c.
14440         * ipa.c: Include target.h and tree-iterator.h.
14441         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14442         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14443         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14444         pass_ipa_cdtor_merge): New.
14445         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14446         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14447         bounds access.
14448
14449 2010-08-20  Jan Hubicka  <jh@suse.cz>
14450
14451         PR c++/45307
14452         PR c++/17736
14453         * cgraph.h (cgraph_only_called_directly_p,
14454         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14455         static cdtors.
14456         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14457         are not needed.
14458         (cgraph_finalize_function): Static cdtors are reachable.
14459         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14460
14461 2010-08-20  Jan Hubicka  <jh@suse.cz>
14462
14463         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14464         flag_wpa.
14465         * lto-streamer-out.c (lto_output): Likewise.
14466         * passes.c (ipa_write_optimization_summaries): Initialize statement
14467         uids.
14468
14469 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14470
14471         * tree.h (alias_diag_flags): New enum.
14472         (alias_pair): Add an 'emitted_diags' field.
14473         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14474         (assemble_alias): Initialize emitted_diags of new pairs.
14475
14476 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14477
14478         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14479         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14480         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14481         (STACK_CHECK_PROTECT): Define.
14482         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14483         (output_probe_stack_range): Likewise.
14484         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14485         builtin stack checking is enabled.
14486         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14487         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14488         (probe_stack_range): New insn.
14489
14490 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14491
14492         PR target/45336
14493         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14494         short first.
14495
14496         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14497         char first.
14498
14499 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14500
14501         PR target/45336
14502         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14503         to cover zero extension into 64-bit register.
14504         (*sse2_pextrw): Likewise.
14505         (*sse4_1_pextrd_zext): New insn.
14506
14507 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14508
14509         revert r163410, partially revert r163267.
14510         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14511         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14512         Darwin versions.
14513
14514 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14515
14516         PR middle-end/44974
14517         * builtins.c (expand_builtin): Don't optimize away
14518         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14519
14520 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14521
14522         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14523         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14524         alternative 1 of operand 2.
14525
14526 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14527             Paolo Bonzini  <bonzini@gnu.org>
14528
14529         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14530         (sign_extend (zero_extend (...)) and
14531         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14532
14533 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14534
14535         PR rtl-optimization/45353
14536         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14537         after bb_note is a BARRIER.
14538
14539 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14540
14541         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14542         linking libgcc.a.
14543
14544 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14545             Michael Matz  <matz@suse.de>
14546
14547         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14548
14549 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14550
14551         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14552         (ggc_mark_roots): ...here.
14553
14554 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14555
14556         * vec.h (FOR_EACH_VEC_ELT): Define.
14557         * c-decl.c: Use it.
14558         * cfgloop.c: Likewise.
14559         * cfgloopmanip.c: Likewise.
14560         * cgraph.c: Likewise.
14561         * cgraphunit.c: Likewise.
14562         * combine.c: Likewise.
14563         * config/bfin/bfin.c: Likewise.
14564         * config/mips/mips.c: Likewise.
14565         * config/rs6000/rs6000.c: Likewise.
14566         * dbxout.c: Likewise.
14567         * df-scan.c: Likewise.
14568         * dominance.c: Likewise.
14569         * dse.c: Likewise.
14570         * dwarf2out.c: Likewise.
14571         * except.c: Likewise.
14572         * expr.c: Likewise.
14573         * function.c: Likewise.
14574         * gcse.c: Likewise.
14575         * genattr.c: Likewise.
14576         * ggc-common.c: Likewise.
14577         * gimplify.c: Likewise.
14578         * graphite-blocking.c: Likewise.
14579         * graphite-clast-to-gimple.c: Likewise.
14580         * graphite-dependences.c: Likewise.
14581         * graphite-interchange.c: Likewise.
14582         * graphite-poly.c: Likewise.
14583         * graphite-scop-detection.c: Likewise.
14584         * graphite-sese-to-poly.c: Likewise.
14585         * graphite.c: Likewise.
14586         * haifa-sched.c: Likewise.
14587         * ifcvt.c: Likewise.
14588         * implicit-zee.c: Likewise.
14589         * ipa-prop.c: Likewise.
14590         * ipa-struct-reorg.c: Likewise.
14591         * ipa.c: Likewise.
14592         * ira-build.c: Likewise.
14593         * ira-color.c: Likewise.
14594         * ira-emit.c: Likewise.
14595         * lambda-code.c: Likewise.
14596         * loop-invariant.c: Likewise.
14597         * loop-unroll.c: Likewise.
14598         * lower-subreg.c: Likewise.
14599         * lto-cgraph.c: Likewise.
14600         * lto-opts.c: Likewise.
14601         * lto-streamer-in.c: Likewise.
14602         * lto-streamer-out.c: Likewise.
14603         * lto-streamer.c: Likewise.
14604         * lto-symtab.c: Likewise.
14605         * matrix-reorg.c: Likewise.
14606         * opts.c: Likewise.
14607         * predict.c: Likewise.
14608         * print-tree.c: Likewise.
14609         * sdbout.c: Likewise.
14610         * sel-sched-dump.c: Likewise.
14611         * sel-sched-ir.c: Likewise.
14612         * sel-sched.c: Likewise.
14613         * sese.c: Likewise.
14614         * stor-layout.c: Likewise.
14615         * tree-cfg.c: Likewise.
14616         * tree-cfgcleanup.c: Likewise.
14617         * tree-chrec.c: Likewise.
14618         * tree-data-ref.c: Likewise.
14619         * tree-emutls.c: Likewise.
14620         * tree-inline.c: Likewise.
14621         * tree-into-ssa.c: Likewise.
14622         * tree-loop-distribution.c: Likewise.
14623         * tree-loop-linear.c: Likewise.
14624         * tree-mudflap.c: Likewise.
14625         * tree-outof-ssa.c: Likewise.
14626         * tree-parloops.c: Likewise.
14627         * tree-predcom.c: Likewise.
14628         * tree-pretty-print.c: Likewise.
14629         * tree-scalar-evolution.c: Likewise.
14630         * tree-ssa-live.c: Likewise.
14631         * tree-ssa-loop-im.c: Likewise.
14632         * tree-ssa-loop-ivcanon.c: Likewise.
14633         * tree-ssa-loop-ivopts.c: Likewise.
14634         * tree-ssa-loop-manip.c: Likewise.
14635         * tree-ssa-loop-niter.c: Likewise.
14636         * tree-ssa-loop-prefetch.c: Likewise.
14637         * tree-ssa-phiprop.c: Likewise.
14638         * tree-ssa-pre.c: Likewise.
14639         * tree-ssa-reassoc.c: Likewise.
14640         * tree-ssa-sccvn.c: Likewise.
14641         * tree-ssa-structalias.c: Likewise.
14642         * tree-ssa.c: Likewise.
14643         * tree-vect-data-refs.c: Likewise.
14644         * tree-vect-loop-manip.c: Likewise.
14645         * tree-vect-loop.c: Likewise.
14646         * tree-vect-patterns.c: Likewise.
14647         * tree-vect-slp.c: Likewise.
14648         * tree-vect-stmts.c: Likewise.
14649         * tree-vrp.c: Likewise.
14650         * tree.c: Likewise.
14651         * value-prof.c: Likewise.
14652         * var-tracking.c: Likewise.
14653         * varasm.c: Likewise.
14654         * vmsdbgout.c: Likewise.
14655
14656 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14657             Richard Guenther  <richard.guenther@gmail.com>
14658
14659         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14660         copy the src value and return a copy.
14661         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14662         (C++ Volatiles): Adjust to describe C++ semantics only.
14663
14664 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14665
14666         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14667         be zero or nonzero.
14668         * doc/tm.texi: Regenerate.
14669         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14670         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14671         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14672         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14673         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14674         to 1.
14675
14676 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14677
14678         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14679         an extra nop past a sibling call at the very end.
14680
14681 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14682
14683         PR bootstrap/45350
14684         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14685         a comment.
14686
14687 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14688
14689         * target.def (function_arg, function_incoming_arg): Remove const
14690         qualifier on CUMULATIVE_ARGS parameter.
14691         * targhooks.h (default_function_arg, default_function_incoming_arg):
14692         Likewise.
14693         * targhooks.c (default_function_arg, default_function_incoming_arg):
14694         Likewise.
14695         * config/i386/i386.c (ix86_function_arg): Likewise.
14696
14697 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14698
14699         PR target/45336
14700         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14701         SIGN_EXTENDs or ZERO_EXTENDs.
14702
14703 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14704
14705         PR target/42172
14706         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14707         Take its cost into account if nonnull.
14708         (insn_a_feeds_b): New static function.
14709         (combine_instructions): Look for four-insn combinations.
14710         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14711         them into account when computing all_adjacent and looking for other
14712         uses.
14713         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14714         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14715         (try_combine): New arg I0.  Handle four-insn combinations.
14716         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14717         like ELIM_I1.
14718
14719 2010-08-19  Jason Merrill  <jason@redhat.com>
14720
14721         PR c++/45307
14722         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14723         if ctor is empty.
14724         (gimplify_modify_expr_rhs): Adjust.
14725
14726 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14727
14728         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14729         bitmap_bit_p.
14730         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14731         * dominance.c (iterate_fix_dominators): Likewise.
14732         * dse.c (set_usage_bits): Likewise.
14733         (set_position_unneeded, record_store): Likewise.
14734         * gimple-fold.c (get_maxval_strlen): Likewise.
14735         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14736         * ipa-inline.c (update_caller_keys): Likewise.
14737         * ipa-split.c (verify_non_ssa_vars): Likewise.
14738         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14739         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14740         (close_addressof_down): Likewise.
14741         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14742         (setup_allocno_left_conflicts_size): Likewise.
14743         (ira_reassign_conflict_allocnos): Likewise.
14744         (ira_reassign_pseudos): Likewise.
14745         * ira-emit.c (change_loop): Likewise.
14746         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14747         * lto-streamer-out.c (write_symbol): Likewise.
14748         * predict.c (expr_expected_value_1): Likewise.
14749         * regstat.c (regstat_bb_compute_ri): Likewise.
14750         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14751         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14752         * stmt.c (expand_case): Likewise.
14753         * tree-eh.c (emit_eh_dispatch): Likewise.
14754         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14755         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14756         Likewise.
14757         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14758         (rdg_build_components): Likewise.
14759         * tree-object-size.c (collect_object_sizes_for): Likewise.
14760         * tree-sra.c (convert_callers): Likewise.
14761         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14762         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14763         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14764
14765 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14766
14767         * config/i386/i386.md (*lea_1): Use P mode iterator.
14768         (lea add splitter): Also handle DImode operands.
14769         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14770         predicate.  Do not use ix86_lea_for_add_ok.
14771         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14772         (lea ashift splitter): Also handle DImode operands.
14773         (DImode lea ashift splitter): Remove splitter.
14774
14775 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14776
14777         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14778         ix86_binary_operator_ok.
14779
14780 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14781
14782         PR rtl-optimization/44691
14783         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14784         is not a register.
14785
14786 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14787
14788         PR target/45070
14789         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14790          value of size 1-3 is handled correctly.
14791
14792 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14793
14794         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14795         type for the conditional has wide enough range.
14796
14797 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14798
14799         PR target/45327
14800         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14801         ix86_binary_operator_ok.
14802
14803 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14804
14805         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14806         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14807         code to output insn mnemonic.  Fix comment.
14808         (*addsi_1_zext): Add r-r-0 alternative 1.
14809         <TYPE_LEA>: Split insn to lea.
14810         <default>: Handle alternative 1.
14811         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14812         multi-level if_then_else RTX to set "type" attribute.
14813         <default>: Handle alternative 2.
14814         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14815         Use cond RTX instead of multi-level if_then_else RTX to set
14816         "type" attribute.
14817         <default>: Handle alternatives 2 and 4.
14818         (lea splitters): Update calls to ix86_lea_for_add_ok.
14819
14820         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14821         argument.
14822         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14823
14824 2010-08-18  Richard Guenther  <rguenther@suse.de>
14825
14826         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14827         use operand helpers.
14828
14829 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14830
14831         PR middle-end/45292
14832         * optabs.c (expand_bool_compare_and_swap): Expand pending
14833         pops before trying the optab.
14834
14835 2010-08-18  Yao Qi  <yao@codesourcery.com>
14836
14837         PR target/45094
14838         * config/arm/arm.c (output_move_double): Fix typo generating
14839         instructions ('ldr'->'str').
14840
14841 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14842
14843         PR rtl-optimization/42575
14844         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14845         live ranges.
14846
14847 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14848
14849         * config/arm/arm-protos.h (arm_expand_sync): New.
14850         (arm_output_memory_barrier, arm_output_sync_insn): New.
14851         (arm_sync_loop_insns): New.
14852         * config/arm/arm.c (FL_ARCH7): New.
14853         (FL_FOR_ARCH7): Include FL_ARCH7.
14854         (arm_arch7): New.
14855         (arm_print_operand): Support %C markup.
14856         (arm_legitimize_sync_memory): New.
14857         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14858         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14859         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14860         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14861         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14862         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14863         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14864         * config/arm/arm.h (struct arm_sync_generator): New.
14865         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14866         (TARGET_HAVE_MEMORY_BARRIER): New.
14867         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14868         * config/arm/arm.md: Include sync.md.
14869         (UNSPEC_MEMORY_BARRIER): New.
14870         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14871         (VUNSPEC_SYNC_OP):New.
14872         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14873         (sync_result, sync_memory, sync_required_value): New attributes.
14874         (sync_new_value, sync_t1, sync_t2): Likewise.
14875         (sync_release_barrier, sync_op): Likewise.
14876         (length): Add logic to length attribute defintion to call
14877         arm_sync_loop_insns when appropriate.
14878         * config/arm/sync.md: New file.
14879
14880 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14881
14882         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14883         ENABLE_TREE_CHECKING.
14884         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14885         and GCC >= 4.3.
14886
14887 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14888
14889         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14890         or optimizing for size, always avoid lea if possible.
14891
14892         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14893
14894 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14895
14896         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14897         Dunmmy function with NULL return unless the target is
14898         OSX >= 10.6 (Darwin10).
14899
14900 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14901
14902         * gcc.c (spec_function): Add remove-outfile.
14903         (remove_outfile_spec_function): New function.
14904         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14905         * invoke.texi (replace-outfile): Document.
14906
14907 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14908
14909         PR target/45296
14910         * reginfo.c (globalize_reg): Reject stack registers.
14911
14912 2010-08-17  Richard Guenther  <rguenther@suse.de>
14913
14914         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14915         list of conditional equivalences.
14916         (free_all_edge_infos): Adjust.
14917         (record_equivalences_from_incoming_edge): Likewise.
14918         (record_cond): Likewise.
14919         (build_and_record_new_cond): Likewise.
14920         (record_conditions): Likewise.
14921         (dom_opt_leave_block): Likewise.
14922
14923 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14924
14925         * doc/invoke.texi (ms-extension): Add documentation.
14926
14927 2010-08-17  Richard Guenther  <rguenther@suse.de>
14928
14929         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14930
14931 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14932
14933         PR c/40563
14934         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14935         (finish_decl): Use it to issue a -Wc++-compat warning about
14936         uninitialized const field in struct or union.
14937
14938         (finish_struct): Use strip_array_types.
14939
14940 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14941
14942         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14943         functions.
14944         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14945         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14946         call block_nreverse here.
14947         (blocks_nreverse): Rename decl temporary to block.
14948
14949 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14950
14951         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14952         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14953         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14954         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14955         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14956         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14957         thumb2_iorsi3): Delete.
14958         (orsi_notsi_si): No longer a named pattern.
14959         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14960         * config/arm/predicates.md (shift_amount_operand): New.
14961         (mult_operator): New.
14962         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14963         attr enabled): New.
14964         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14965         arch matches t2.
14966         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14967         (not_shiftsi_compare0): Likewise, renamed from
14968         arm_notsi_shiftsi_compare0.
14969         (not_shiftsi_compare0_scratch): Likweise, renamed from
14970         arm_notsi_shiftsi_compare0_scratch.
14971         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14972         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14973         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14974         so that the register alternative is disabled when the shift_operator
14975         is MULT.  Use "M" as the constraint for constants.
14976         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14977         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14978         constraint for constants.
14979         (arith_shiftsi_compare0_scratch): Likewise.
14980         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14981         Handle Thumb2 alternative.
14982
14983 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14984
14985         * doc/options.texi (NoDriverArg): Document.
14986         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
14987         -MDX and -MMDX.
14988         * opt-functions.awk (switch_flags): Handle NoDriverArg.
14989         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
14990         marking for CL_NO_DRIVER_ARG options when in the driver.
14991         * opts.h (CL_NO_DRIVER_ARG): Define.
14992         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
14993         CL_COMMON): Update values.
14994
14995 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14996
14997         * common.opt: Add driver options.
14998         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
14999         * doc/options.texi (Driver, RejectDriver): Document.
15000         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15001         print_prog_name, print_multi_directory, print_sysroot,
15002         print_multi_os_directory, print_multi_lib,
15003         print_sysroot_headers_suffix, report_times, combine_flag,
15004         use_pipes, wrapper_string): Remove.
15005         (save_switch, driver_unknown_option_callback,
15006         driver_wrong_lang_callback, driver_post_handling_callback,
15007         driver_handle_option): New.
15008         (spec_lang, last_language_n_infiles): Make file-scope static
15009         instead of local to process_command.
15010         (process_command): Use decode_cmdline_options_to_array and
15011         read_cmdline_option for option processing.  Compute have_c in
15012         prescan of decoded options.
15013         * opt-functions.awk (switch_flags): Handle Driver and
15014         RejectDriver.
15015         (var_type, var_type_struct): Handle Separate options as generating
15016         const char * variables.
15017         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15018         CL_TARGET to be passed by caller if required.
15019         (decode_cmdline_options_to_array): Update comment.
15020         * opts.c (complain_wrong_lang): Handle options only valid for the
15021         driver.
15022         (decode_options): Update call to decode_cmdline_options_to_array.
15023         (print_filtered_help): Ignore driver-only options.
15024         (print_specific_help): Ignore CL_DRIVER.
15025         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15026         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15027         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15028         Update values.
15029
15030 2010-08-16  Richard Guenther  <rguenther@suse.de>
15031
15032         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15033         TARGET_MEM_REF a bit.
15034         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15035         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15036         alias pointer type via it.
15037         (copy_mem_ref_info): Adjust.
15038         (maybe_fold_tmr): Likewise.
15039         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15040         (reference_alias_ptr_type): Likewise.
15041         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15042         adjust documentation of TMR_OFFSET operand.
15043         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15044         use the alias pointer type.
15045         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15046         initialize mem attrs but the TMR itself.
15047         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15048         similar to MEM_REF.
15049         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15050         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15051         (unshare_and_remove_ssa_names): Likewise.
15052         (copy_ref_info): Adjust.
15053         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15054         TARGET_MEM_REF case.
15055         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15056         at TMR_ORIGINAL.
15057         * tree.h (TMR_ORIGINAL): Remove.
15058         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15059         symbol return that.
15060         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15061         with a symbol.
15062         (get_addr_base_and_unit_offset): Likewise.
15063         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15064         TARGET_MEM_REFs.
15065         (indirect_ref_may_alias_decl_p): Likewise.
15066         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15067
15068 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15069
15070         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15071         with GCC version 4.6, the default setting (when not optimizing
15072         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15073         been changed to -fomit-frame-pointer.
15074
15075 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15076
15077         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15078         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15079
15080 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15081
15082         * doc/invoke.texi (Warning Options): Fix terminology and markup
15083         in the description of how unknown warning options are handled.
15084
15085 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15086
15087         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15088         in basic blocks.
15089         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15090         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15091         data references.
15092         (vect_bb_vectorization_profitable_p): New function.
15093         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15094         check if it's worthwhile to vectorize the basic block.
15095
15096 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15097
15098         * reload.h (register_move_cost, memory_move_secondary_cost,
15099         secondary_reload_class): Adjust prototype.
15100         * rtl.h (reg_class_subset_p): Adjust prototype.
15101         * reload.c (secondary_reload_class): Change arguments type from
15102         enum reg_class to reg_class_t. Change result type to reg_class_t.
15103         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15104         arguments type from enum reg_class to reg_class_t.
15105         (memory_move_secondary_cost): Change arguments type from
15106         enum reg_class to reg_class_t. Change type of saved_flags to
15107         reg_class_t.
15108
15109         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15110         Remove macros.
15111         (mips_cost): Remove.
15112         (struct mips_rtx_cost_data): Moved to mips.c.
15113         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15114         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15115         (mips_cost): Make static.
15116         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15117         Change result type to reg_class_t.
15118         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15119         type from enum reg_class to reg_class_t.
15120         (mips_register_move_cost): Make static. Change arguments
15121         type from enum reg_class to reg_class_t.
15122         (mips_memory_move_cost): New function.
15123         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15124
15125 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15126
15127         PR rtl-optimization/43358
15128         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15129         of a single hard register, using simplify_subreg_regno to decide
15130         what that register should be.
15131
15132 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15133
15134         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15135         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15136         (loongson_pmull<V_suffix>): Rename to...
15137         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15138
15139 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15140
15141         * configure.ac: Enable -fomit-frame-pointer on darwin
15142         which support dwarf2.
15143         * config/i386/i386.c (override_options): Same.
15144
15145 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15146
15147         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15148
15149 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15150
15151         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15152         -MMD.
15153
15154 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15155
15156         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15157         up dot_prod pattern searching if a stmt is outside the loop.
15158
15159 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15160             Uros Bizjak  <ubizjak@gmail.com>
15161
15162         * config.gcc: Handle --enable-frame-pointer.
15163
15164         * configure.ac: Add --enable-frame-pointer.
15165         * configure: Regenerated.
15166
15167         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15168         (override_options): If not configured with --enable-frame-pointer,
15169         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15170         optimizing for size), -fasynchronous-unwind-tables and
15171         -maccumulate-outgoing-args by default.
15172
15173 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15174
15175         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15176
15177         PR middle-end/45262
15178         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15179         -a overflows.  Normalize the range.
15180
15181 2010-08-12  Richard Guenther  <rguenther@suse.de>
15182
15183         PR tree-optimization/45232
15184         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15185         for types with undefined overflow.
15186         (reassociate_bb): Allow re-associating of bit and min/max
15187         operations for types with undefined overflow.
15188         * tree-ssa-forwprop.c (associate_plusminus): New function.
15189         (tree_ssa_forward_propagate_single_use_vars): Call it.
15190
15191 2010-08-12  Richard Guenther  <rguenther@suse.de>
15192
15193         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15194         * tree-ssa-alias.c (get_ptr_info): Move ...
15195         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15196         align and misalign fields conservatively.
15197         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15198         derive alignment information.
15199         (evaluate_stmt): Derive alignment information from memory
15200         allocation functions.
15201         * tree.h (get_pointer_alignment): Make unsigned.
15202         * builtins.c (get_object_alignment): Use alignment information we
15203         have computed for pointers.
15204         (get_pointer_alignment): Likewise.  Make conservative, return
15205         and unsigned value.
15206         (expand_builtin_strlen): Adjust.
15207         (expand_builtin_memcmp): Likewise.
15208         (expand_builtin_strcmp): Likewise.
15209         (expand_builtin_strncmp): Likewise.
15210         (get_builtin_sync_mem): Use at least mode alignment.
15211         (fold_builtin_memset): Adjust.
15212         (fold_builtin_memory_op): Likewise.
15213         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15214         information also dump pointer alignment knowledge.
15215         (dump_gimple_stmt): Likewise.
15216
15217 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15218
15219         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15220         (EMPTY_FIELD_BOUNDARY): Remove.
15221         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15222
15223 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15224
15225         PR debug/45259
15226         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15227         DEBUG_INSNs if n_regs_saved.
15228
15229 2010-08-12  Wei Guozhi  <carrot@google.com>
15230
15231         PR target/44999
15232         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15233         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15234
15235 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15236
15237         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15238
15239         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15240
15241 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15242
15243         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15244         the case removed in the previous patch, when the only phi argument
15245         is defined in the same loop as the phi node itself.  Handle it
15246         separately from the invariant case by both propagating it outside
15247         the region and replacing the phi node with an assign.
15248
15249 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15250
15251         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15252         constant phi nodes with one argument are is_gimple_min_invariant
15253         and SSA_NAME_IS_DEFAULT_DEF.
15254
15255 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15256
15257         * graphite-cloog-util.c (oppose_constraint):
15258         Extend loop counter's value range (CLOOG_ORG).
15259         (cloog_matrix_to_ppl_constraint): Same.
15260         (new_Constraint_System_from_Cloog_matrix): Same.
15261         * graphite-cloog-compat.h (matrix_num_type): New.
15262
15263 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15264
15265         * graphite.c (graphite_initialize): Do not initialize
15266         CLooG and initialize the Parma Polyhedra Library
15267         manually when using CLOOG_ORG.
15268         (graphite_finalize): Do not finalize CLooG and finalize
15269         the Parma Polyhedra Library manually when using CLOOG_ORG.
15270         * graphite-cloog-compat.h (cloog_initialize): Hide function
15271         when using CLOOG_ORG.
15272         (cloog_finalize): Same.
15273
15274 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15275
15276         * graphite-clast-to-gimple.c (free_scattering): Change
15277         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15278         (CLOOG_ORG).
15279         (build_cloog_prog): Same.
15280         * graphite-cloog-compat.h (cloog_domain): Removed.
15281         (cloog_scattering): New.
15282         (cloog_set_domain): Removed.
15283         (cloog_set_scattering): New.
15284         (cloog_next_domain): Removed.
15285         (cloog_next_scattering): New.
15286         (cloog_set_next_domain): Removed.
15287         (cloog_set_next_scattering): New.
15288         (CloogScatteringList): New.
15289         (CloogScattering): New.
15290         (cloog_scattering_free): New.
15291         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15292         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15293         New.
15294
15295 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15296
15297         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15298         CloogState.
15299         (set_cloog_options): Same.
15300         (print_clast_stmt): Same.
15301         (scop_to_clast): Same.
15302         (print_generated_program): Same.
15303         (gloog): Same.
15304         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15305         (scop_to_clast): Extend with CloogState.
15306         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15307         (new_Cloog_Domain_from_ppl_Polyhedron):
15308         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15309         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15310         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15311         * graphite-cloog-util.h (build_cloog_prog): Same.
15312         * graphite-cloog-copat.h (build_cloog_prog): New.
15313         (CloogState): New.
15314         (cloog_state_malloc): New.
15315         (cloog_state_free): New.
15316         (cloog_loop_malloc): New.
15317         (cloog_options_malloc): New.
15318         (cloog_statement_alloc): New.
15319         (cloog_domain_from_cloog_matrix): New.
15320         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15321         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15322
15323 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15324
15325         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15326         type of NAME now depends on used CLooG version.
15327         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15328         (gcc_type_for_clast_expr): Same.
15329         (print_clast_stmt): Replace pprint with clast_pprint.
15330         * graphite-cloog-compat.h: Provide compatibility macros for
15331         CLooG Legacy.
15332         (clast_name_p): New.
15333         (clast_expr_term): New.
15334         (clast_expr_red): New.
15335         (clast_expr_bin): New.
15336         (clast_pprint): New.
15337
15338 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15339
15340         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15341         compatible to newer CLooG releases (CLOOG_ORG).
15342         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15343         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15344         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15345         (build_cloog_prog) : New.
15346         (cloog_program_extract_scalars): New.
15347         (cloog_program_scatter): New.
15348
15349 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15350
15351         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15352         conditionally (CLOOG_ORG).
15353         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15354         (cloog_statement_usr): New.
15355         (cloog_domain): Same.
15356         (cloog_set_domain): Same.
15357         (cloog_next_domain): Same.
15358         (cloog_set_next_domain): Same.
15359         (cloog_program_nb_scattdims): Same.
15360         (cloog_program_set_nb_scattdims): Same.
15361         (cloog_program_names): Same.
15362         (cloog_program_set_names): Same.
15363         (cloog_program_set_context): Same.
15364         (cloog_program_set_loop): Same.
15365         (cloog_program_blocklist): Same.
15366         (cloog_program_set_blocklist): Same.
15367         (cloog_program_scaldims): Same.
15368         (cloog_program_set_scaldims): Same.
15369         (cloog_names_nb_parameters): Same.
15370         (cloog_names_set_nb_parameters): Same.
15371         (cloog_names_parameters): Same.
15372         (cloog_names_set_parameters): Same.
15373         (cloog_names_set_nb_iterators): Same.
15374         (cloog_names_set_iterators): Same.
15375         (cloog_names_set_nb_scattering): Same.
15376         (cloog_names_set_scattering): Same.
15377         (cloog_statement_set_usr): Same.
15378         (cloog_loop_set_next): Same.
15379         (cloog_loop_set_domain): Same.
15380         (cloog_loop_set_block): Same.
15381         (cloog_block_list_next): Same.
15382         (cloog_block_list_set_next):
15383         (cloog_block_list_set_block): Same.
15384
15385 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15386
15387         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15388         a bool.
15389         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15390         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15391         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15392         when something has been changed.
15393         (rewrite_commutative_reductions_out_of_ssa): Same.
15394
15395 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15396
15397         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15398         handle the case when def is in the sese region.
15399         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15400         for invariant expressions.
15401         (rewrite_cross_bb_phi_deps): Removed.
15402         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15403         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15404         rewrite_cross_bb_phi_deps.
15405
15406 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15407
15408         * graphite-sese-to-poly.c
15409         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15410         scev_analyzable_p only on is_gimple_reg
15411
15412 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15413
15414         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15415         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15416         parametric expressions outside the scop region.
15417         (rewrite_cross_bb_scalar_deps): Same.
15418         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15419
15420 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15421
15422         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15423         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15424
15425 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15426
15427         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15428         instantiate default definitions.
15429
15430 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15431             Sebastian Pop  <sebastian.pop@amd.com>
15432
15433         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15434         (loop_exits_from_bb_p): New.
15435         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15436         (loop_exits_from_bb_p): Declared.
15437         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15438         loop_exits_to_bb_p.
15439
15440 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15441
15442         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15443         extra parameter for the region.  Call scev_analyzable_p.
15444         (rewrite_reductions_out_of_ssa): Update call to
15445         rewrite_close_phi_out_of_ssa.
15446         (rewrite_cross_bb_phi_deps): Same.
15447         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15448         parameter for the region.  Call scev_analyzable_p.
15449         (rewrite_commutative_reductions_out_of_ssa): Update call to
15450         rewrite_commutative_reductions_out_of_ssa_loop.
15451
15452 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15453
15454         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15455
15456 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15457
15458         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15459         SSA scalar phi nodes that can be scev_analyzable_p.
15460
15461 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15462
15463         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15464         handle SSA_NAME_IS_DEFAULT_DEF.
15465
15466 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15467
15468         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15469
15470 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15471
15472         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15473         case non close-phi nodes with one argument.
15474
15475 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15476
15477         * sese.h (scev_analyzable_p): Scevs could be expressions without
15478         chrecs and still be scev_analyzable_p.
15479
15480 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15481
15482         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15483
15484 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15485
15486         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15487         * cfgloop.h (struct loop): Remove single_iv field.
15488         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15489         (scop_canonicalize_loops): Removed.
15490         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15491         over all the loop phi nodes in loop->header.
15492         (build_poly_scop): Remove use of scop_canonicalize_loops.
15493
15494 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15495
15496         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15497         handle GIMPLE_CALL.
15498
15499 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15500
15501         * tree-chrec.c (chrec_apply): Should only apply to the specified
15502         variable.  Also handle multivariate chains of recurrences that
15503         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15504
15505 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15506
15507         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15508         (debug_clast_name_indexes_1): Removed.
15509         (debug_clast_name_indexes): Removed.
15510         (pbb_to_depth_to_oldiv): Removed.
15511         (build_iv_mapping): Replace the use of rename_map with iv_map.
15512         (translate_clast_user): Remove uses of rename_map.  Allocate and
15513         free iv_map.
15514         (translate_clast_for_loop): Remove uses of rename_map.
15515         (translate_clast_for): Same.
15516         (translate_clast_guard): Same.
15517         (translate_clast): Same.
15518         (gloog): Same.
15519         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15520         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15521         * sese.c (set_rename): Now static.
15522         (rename_variables_in_stmt): Removed.
15523         (rename_uses): New.
15524         (is_parameter): Removed.
15525         (is_iv): Removed.
15526         (expand_scalar_variables_call): Removed.
15527         (expand_scalar_variables_ssa_name): Removed.
15528         (expand_scalar_variables_expr): Removed.
15529         (expand_scalar_variables_stmt): Removed.
15530         (expand_scalar_variables): Removed.
15531         (rename_variables): Removed.
15532         (remove_condition): Removed.
15533         (get_true_edge_from_guard_bb): Removed.
15534         (get_false_edge_from_guard_bb): Removed.
15535         (struct igp): Removed.
15536         (default_before_guard): Removed.
15537         (convert_for_phi_arg): Removed.
15538         (add_guard_exit_phis): Removed.
15539         (insert_guard_phis): Removed.
15540         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15541         region.  Do not copy conditions.  Do not copy induction variables.
15542         Call rename_uses.
15543         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15544         the translated statement.  Use the iv_map for the induction
15545         variable renaming.
15546         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15547         (set_rename): Removed declaration.
15548         (scev_analyzable_p): ...here.
15549         * tree-chrec.c (chrec_apply_map): New.
15550         * tree-chrec.h (chrec_apply_map): Declared.
15551
15552 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15553
15554         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15555         insert_loop_close_phis.
15556         * sese.c (name_defined_in_loop_p): Removed.
15557         (expr_defined_in_loop_p): Removed.
15558         (alive_after_loop): Removed.
15559         (close_phi_not_yet_inserted_p): Removed.
15560         (struct alep): Removed.
15561         (add_loop_exit_phis): Removed.
15562         (insert_loop_close_phis): Removed.
15563
15564 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15565
15566         * graphite-cloog-util.c
15567         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15568         * graphite-poly.c
15569         (psct_scattering_dim_for_loop_depth): Same.
15570
15571 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15572
15573         * graphite-cloog-util.h: Added cloog.h.
15574         * graphite-blocking.c: Removed cloog.h.
15575         * graphite-dependences.c: Same.
15576         * graphite-interchange.c: Same.
15577         * graphite-poly.c: Same.
15578         * graphite-ppl.c: Same.
15579         * graphite-scop-detection.c: Same.
15580         * graphite-sese-to-poly.c:
15581         Removed cloog.h.
15582         Removed graphite-clast-to-gimple.h.
15583         (check_poly_representation): Removed (unused).
15584         * graphite-sese-to-poly.h
15585         (check_poly_representation): Removed (unused).
15586
15587 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15588
15589         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15590         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15591         (graphite-cloog-util.o): New.
15592         (graphite-ppl.o): Added graphite-cloog-util.h.
15593         * graphite-clast-to-gimple.c:
15594         Added graphite-cloog-util.h to include statements.
15595         * graphite-cloog-util.c: New.
15596         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15597         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15598         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15599         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15600         (insert_constraint_into_matrix): Same.
15601         (ppl_Constrain_System_number_of_constraints): Same.
15602         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15603         (oppose_constraint): Same.
15604         (cloog_matrix_to_ppl_constraint): Same.
15605         (new_Constraint_System_from_Cloog_Matrix): Same.
15606         * graphite-cloog-util.h: New.
15607         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15608         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15609         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15610         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15611         (insert_constraint_into_matrix): Same.
15612         * graphite-ppl.c:
15613         Added graphite-cloog-util.h to include statements.
15614         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15615         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15616         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15617         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15618         (insert_constraint_into_matrix): Same.
15619         (ppl_Constrain_System_number_of_constraints): Same.
15620         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15621         (oppose_constraint): Same.
15622         (cloog_matrix_to_ppl_constraint): Same.
15623         (new_Constraint_System_from_Cloog_Matrix): Same.
15624         * graphite-ppl.h:
15625         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15626         graphite-cloog-util.h.
15627         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15628         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15629         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15630         (insert_constraint_into_matrix): Same.
15631
15632 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15633
15634         * graphite-clast-to-gimple.c
15635         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15636         (precision_for_interval): Same.
15637         (gcc_type_for_interval): Same.
15638         (compute_type_for_level): Same.
15639         * graphite-interchange.c
15640         (lst_interchange_profitable_p): Same.
15641         * graphite-poly.c
15642         (psct_scattering_dim_for_loop_depth): Same.
15643         * graphite-ppl.c
15644         (ppl_max_for_le_pointset): Same.
15645         (ppl_min_for_le_pointset): Same.
15646
15647 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15648
15649         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15650         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15651
15652 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15653
15654         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15655         rewrite_close_phi_out_of_ssa.
15656
15657 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15658
15659         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15660
15661 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15662
15663         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15664         rename_map.
15665         * sese.c (debug_rename_map): Same.
15666         (get_rename): Same.
15667         (set_rename): Same.
15668         (rename_variables_in_stmt): Same.
15669         (expand_scalar_variables_call): Same.
15670         (expand_scalar_variables_ssa_name): Same.
15671         (expand_scalar_variables_expr): Same.
15672         (expand_scalar_variables_stmt): Same.
15673         (expand_scalar_variables): Same.
15674         (rename_variables): Same.
15675         (graphite_copy_stmts_from_block): Same.
15676         (copy_bb_and_scalar_dependences): Same.
15677
15678 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15679
15680         * graphite-clast-to-gimple.c (copy_renames): Removed.
15681         (translate_clast_for): Do not call copy_renames.
15682         (translate_clast_guard): Same.
15683
15684 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15685
15686         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15687         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15688         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15689         before rewrite_cross_bb_scalar_deps.
15690
15691 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15692
15693         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15694         Early return in when flag_associative_math is not set.
15695
15696 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15697
15698         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15699         of SSA copies on edges except for loop->latch.
15700
15701 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15702
15703         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15704         Split out of rewrite_reductions_out_of_ssa.
15705         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15706         Declared.
15707         * graphite.c (graphite_transform_loops): Call it.
15708
15709 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15710
15711         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15712
15713 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15714
15715         * dbgcnt.def (graphite_scop): New counter.
15716         * graphite.c: Include dbgcnt.h.
15717         (graphite_transform_loops): Use new counter to limit transformations.
15718         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15719
15720 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15721
15722         * passes.c (init_optimization_passes): Add pass_graphite.
15723         Schedule a pass_copy_prop before pass_graphite_transforms.
15724         * timevar.def (TV_GRAPHITE): Declared.
15725         * tree-pass.h (pass_graphite): Declared.
15726         * tree-ssa-loop.c (pass_graphite): New.
15727
15728 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15729
15730         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15731         Remove calls to rename_nb_iterations and rename_sese_parameters.
15732         * graphite-clast-to-gimple.h (gloog): Update declaration.
15733         * graphite.c (graphite_transform_loops): Update call to gloog.
15734         * sese.c (rename_variables_in_expr): Removed.
15735         (rename_nb_iterations): Removed.
15736         (rename_sese_parameters): Removed.
15737         * sese.h (rename_nb_iterations): Removed.
15738         (rename_sese_parameters): Removed.
15739
15740 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15741
15742         * graphite-clast-to-gimple.c (gloog): Remove call to
15743         sese_adjust_liveout_phis.
15744         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15745         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15746         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15747         rewrite_phi_out_of_ssa.
15748         * sese.c (get_vdef_before_sese): Removed.
15749         (sese_adjust_vphi): Removed.
15750         (sese_adjust_liveout_phis): Removed.
15751         * sese.h (sese_adjust_liveout_phis): Removed.
15752
15753 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15754
15755         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15756         argument for the place after which to insert the out of SSA copy.
15757         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15758         (rewrite_phi_out_of_ssa): Same.
15759         (rewrite_cross_bb_scalar_deps): Same.
15760         (insert_copyout): Removed.
15761         (insert_copyin): Removed.
15762         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15763         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15764         insert_copyin.
15765
15766 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15767
15768         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15769         (rewrite_reductions_out_of_ssa): Same.
15770         (rewrite_commutative_reductions_out_of_ssa): Same.
15771         (build_poly_scop): Do not call these functions.
15772         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15773         (rewrite_reductions_out_of_ssa): Declared.
15774         (rewrite_commutative_reductions_out_of_ssa): Declared.
15775         * graphite.c (graphite_transform_loops): Call on every scop
15776         rewrite_commutative_reductions_out_of_ssa before calling
15777         rewrite_reductions_out_of_ssa and build_scop_bbs.
15778
15779 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15780
15781         * graphite-dependences.c (dot_deps): Make system call to dotty run
15782         in background.
15783         (dot_deps_stmt): Same.
15784         * graphite-poly.c (dot_lst): Same.
15785
15786 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15787
15788         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15789         phi_arg_in_outermost_loop.
15790         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15791         (remove_invariant_phi): Same.
15792
15793 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15794
15795         * target.def (output_addr_const_extra): New hook.
15796         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15797         * doc/tm.texi: Regenerate.
15798         * targhooks.c (default_asm_output_addr_const_extra): New function.
15799         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15800         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15801         target hook.
15802
15803         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15804         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15805         * config/i386/i386.h (output_addr_const_extra): Rename to...
15806         (i386_asm_output_addr_const_extra): ...this. Make static.
15807         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15808
15809 2010-08-11  Richard Henderson  <rth@redhat.com>
15810
15811         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15812
15813 2010-08-11  Nick Clifton  <nickc@redhat.com>
15814
15815         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15816         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15817         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15818         stormy16-lib2-cmpsi.c.
15819
15820         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15821         -O2.
15822
15823 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15824
15825         * opts.h (struct cl_option_handler_func): Make handler take
15826         cl_decoded_option structure as parameter, not individual elements.
15827         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15828         structure as parameter, not individual elements.
15829         (handle_option): Take cl_decoded_option structure as parameter,
15830         not individual elements.
15831         (handle_generated_option): Declare.
15832         * opts-common.c (handle_option): Take cl_decoded_option structure
15833         as parameter, not individual elements.  Update calls to callback
15834         and handler functions.
15835         (handle_generated_option): New.
15836         (read_cmdline_option): Update calls to callback functions and
15837         handle_option.
15838         * opts.c (common_handle_option, complain_wrong_lang,
15839         unknown_option_callback, post_handling_callback,
15840         lang_handle_option, target_handle_option): Take cl_decoded_option
15841         structure as parameter, not individual elements.
15842         (lang_handle_option, target_handle_option, common_handle_option):
15843         Assert option has at most one argument.
15844         (enable_warning_as_error): Call handle_generated_option instead of
15845         handle_option.  Do not pass -Werror argument as argument of
15846         generated option.
15847
15848 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15849
15850         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15851         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15852         (SUBWORD_BOOL_CAS): Likewise.
15853         (SUBWORD_SYNC_OP): Likewise.
15854         (SUBWORD_TEST_AND_SET): Likewise.
15855         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15856         (SUBWORD_SYNC_OP): Likewise.
15857         (OP_AND_FETCH_WORD): Likewise.
15858
15859 2010-08-10  Xinliang David Li  <davidxl@google.com>
15860
15861         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15862         compute max/min offset in address.
15863
15864 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15865
15866         * ira-live.c: Include sbitmap.h.
15867         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15868         Compress live ranges even more.
15869
15870 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15871
15872         * coverage.c (ctr_labels): Delete.
15873
15874 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15875
15876         PR bootstrap/45177
15877         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15878         test here from arm_gen_load_multiple_1.
15879         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15880         multiple_operation_profitable_p.
15881
15882 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15883
15884         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15885         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15886
15887 2010-08-10  Richard Henderson  <rth@redhat.com>
15888
15889         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15890         after saving registers.  Assert that SSE registers are only saved
15891         with a sufficiently aligned frame.
15892         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15893         remove stack_realign_fp handling.
15894         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15895         and do not mark the stack alignment as frame related.
15896         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15897
15898         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15899         saves when re-aligning the stack.
15900
15901 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15902
15903         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15904         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15905         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15906
15907 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15908
15909         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15910
15911 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15912
15913         * config/arm/iterators.md: New file.
15914         * config/arm/arm.md: Include iterators.md.
15915         (QHSI): Move to new file.
15916         (LTUGEU, cnb, optab, ior_xor): Likewise.
15917         * config/arm/iwmmxt.md (VMMX): Move to new file.
15918         (VSHFT, MMX_char): Likewise.
15919         * config/arm/neon.md (VD): Move to new file.
15920         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15921         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15922         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15923         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15924         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15925         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15926         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15927         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15928         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15929         (Is_d_reg, V_mode_nunits): Likewise.
15930         * config/arm/vec-common.md (VALL): Move to new file.
15931         (VALLW, VINT, VINTW): Likewise.
15932
15933 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15934
15935         PR middle-end/45182
15936         * combine.c (make_compound_operation): Don't try to convert
15937         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15938
15939 2010-08-10  Richard Guenther  <rguenther@suse.de>
15940
15941         * tree.h (get_object_alignment): Adjust prototype.
15942         * builtins.c (get_object_alignment): Return unsigned int,
15943         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15944         and TARGET_MEM_REF properly.
15945         (get_pointer_alignment): Adjust.
15946         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15947         (set_mem_attributes_minus_bitpos): Adjust.
15948         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15949
15950 2010-08-10  Richard Guenther  <rguenther@suse.de>
15951
15952         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15953         (copy_prop_visit_assignment): Simplify.
15954         (copy_prop_visit_stmt): Also visit assignments from
15955         constants.
15956         (copy_prop_visit_phi_node): Use operand_equal_p.
15957
15958 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15959
15960         * ipa-split.c (find_split_points): Free stack.
15961
15962 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15963
15964         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15965         * tree.c (tree_node_kind): Delete corresponding entries.
15966
15967 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15968
15969         * alias.c (may_alias_p): Remove unused ret.
15970
15971 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15972
15973         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15974         alias_sets_conflict_p.
15975         (walk_mems_1): Moved from alias.c.
15976         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15977         in alias.c.
15978         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15979         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15980         * alias.c (walk_mems_2): Moved to ddg.c.
15981         (walk_mems_1): Ditto.
15982         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15983         to ddg.c.
15984         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15985         disambiguation.
15986         *(may_alias_p): New function to check whether two memory expression
15987         may alias or not. Currently used in buidling inter-iteration memory
15988         dependence.
15989         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
15990         (insn_alias_sets_conflict_p): Removed
15991         *rtl.h (may_alias_p): New function prototype.
15992
15993 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15994
15995         * tree.c (nreverse): Assert that we don't have a BLOCK.
15996
15997 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15998
15999         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16000         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16001         * config/avr/avr.c (init_cumulative_args): Likewise.
16002         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16003         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16004         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16005         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16006         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16007         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16008         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16009         * dwarf2out.c (gen_subprogram_die): Likewise.
16010         * function.c (allocate_struct_function): Likewise.
16011         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16012         (deserves_ellipsis): Delete.
16013
16014 2010-08-09  Richard Guenther  <rguenther@suse.de>
16015
16016         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16017         (valueize_val): New function.
16018         (get_last_copy_of): Remove.
16019         (set_copy_of_val): Simplify.
16020         (dump_copy_of): Likewise.
16021         (copy_prop_visit_cond_stmt): Use valueize_val.
16022         (copy_prop_visit_phi_node): Properly handle unvisited names.
16023         Drop code managing copy-of chains.
16024         (init_copy_prop): Adjust.
16025         (fini_copy_prop): Likewise.
16026         (execute_copy_prop): Remove obsolete comment.
16027
16028 2010-08-09  Richard Guenther  <rguenther@suse.de>
16029
16030         PR middle-end/44632
16031         * function.c (gimplify_parameters): Do not clear addressable
16032         bit of the original parameter.
16033
16034 2010-08-09  Richard Guenther  <rguenther@suse.de>
16035
16036         PR middle-end/45212
16037         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16038         alignment from MEM_REF offset only if we took it from the
16039         base object.
16040
16041 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16042
16043         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16044
16045 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16046
16047         * c-tree.h (build_arg_info): Declare.
16048         * c-decl.c (build_arg_info): Define.
16049         (get_parm_info): Call it.  Delete initialization code.
16050         * c-parser.c (c_parser_parms_declarator): Likewise.
16051         (c_parser_parms_list_declaractor): Likewise.
16052
16053 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16054
16055         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16056         (struct c_arg_info): Change type of tags field.
16057         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16058         (get_parm_info): Likewise.
16059         (store_parm_decls_newstyle): Likewise.
16060
16061 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16062
16063         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16064         (branch_island_list): Delete.
16065         (branch_islands): Declare.
16066         (add_compiler_branch_island): Adjust for branch_islands instead of
16067         branch_island_list.
16068         (macho_branch_islands): Likewise.
16069         (no_previous_def): Likewise.
16070         (get_prev_label): Likewise.
16071
16072 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16073
16074         PR boehm-gc/34544
16075         * gthr-posix.h (__gthread_start): Delete.
16076         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16077         pthread_create to determine if hpux pthreads are active.
16078         * gthr-posix95.h (__gthread_start): Delete.
16079         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16080
16081 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16082
16083         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16084         _WIN64 not expanded.
16085
16086 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16087             H.J. Lu  <hongjiu.lu@intel.com>
16088
16089         PR target/45213
16090         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16091         to output 32bit SFmode immediate as 8 byte sign extended value.
16092
16093 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16094
16095         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16096         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16097         (SUBWORD_BOOL_CAS): Likewise.
16098         (SUBWORD_SYNC_OP): Likewise.
16099         (SUBWORD_TEST_AND_SET): Likewise.
16100         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16101         (SUBWORD_SYNC_OP): Likewise.
16102         (OP_AND_FETCH_WORD): Likewise.
16103
16104 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16105
16106         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16107         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16108         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16109         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16110         generic part.
16111         (cortex_a9_sched_adjust_cost): New function.
16112         (xscale_sched_adjust_cost): New function.
16113         * config/arm/arm-protos.h (struct tune_params): New field
16114         sched_adjust_cost.
16115         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16116
16117 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16118
16119         PR target/44942
16120         * config/sparc/sparc.c (function_arg_advance): Always take into account
16121         the padding, if any.
16122
16123 2010-08-06  Richard Guenther  <rguenther@suse.de>
16124
16125         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16126         (dump_lattice_value): Dump it.
16127         (get_default_value): Adjust.
16128         (get_constant_value): Likewise.
16129         (set_value_varying): Likewise.
16130         (set_lattice_value): Make sure to not go up the lattice
16131         with bitwise constant values.
16132         (get_value_for_expr): Handle ADDR_EXPRs.
16133         (value_to_double_int): New function.
16134         (get_value_from_alignment): Likewise.
16135         (do_dbg_cnt): Adjust.
16136         (ccp_lattice_meet): Handle partially constant values.
16137         (bit_value_unop_1): New function.
16138         (bit_value_binop_1): Likewise.
16139         (bit_value_unop): Likewise.
16140         (bit_value_binop): Likewise.
16141         (evaluate_stmt): Track partially constant values if
16142         flag_tree_bit_ccp is set.
16143         (ccp_fold_stmt): Dump if we folded a predicate.
16144         (ccp_visit_stmt): Adjust.
16145         * common.opt (ftree-bit-ccp): New flag.
16146         * doc/invoke.texi (ftree-bit-ccp): Document.
16147         * opts.c (decode_options): Enable bit-CCP at -O1.
16148
16149 2010-08-06  Alan Modra  <amodra@gmail.com>
16150
16151         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16152         and -mrelocatable-lib description.
16153
16154 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16155
16156         From Martin Thuresson  <martint@google.com>
16157         * postreload.c (reload_cse_simplify_operands): Use
16158         SET_REGNO_RAW instead of SET_REGNO.
16159         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16160         SET_REGNO.
16161         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16162         instead of SET_REGNO.
16163         * rtl.h (SET_REGNO_RAW): New macro.
16164
16165 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16166
16167         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16168         computations.  Fix formatting issues.
16169         (num_sign_bit_copies1): Likewise.
16170         (canonicalize_condition): Likewise.
16171
16172 2010-08-05  Richard Henderson  <rth@redhat.com>
16173
16174         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16175         (floor_log2): Use clz_hwi.
16176         (exact_log2): Use ctz_hwi.
16177         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16178         * builtins.c (fold_builtin_bitop): Use them.
16179         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16180         * combine.c (get_pos_from_mask): Use ctz_hwi.
16181         * double-int.c (double_int_ctz): Likewise.
16182         * explow.c (force_reg): Likewise.
16183         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16184
16185 2010-08-05  Richard Henderson  <rth@redhat.com>
16186
16187         PR target/45189
16188         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16189         the alignment constant is properly sign-extended.
16190
16191 2010-08-05  Richard Guenther  <rguenther@suse.de>
16192
16193         * expr.c (store_expr): Use emit_block_move only if both
16194         source and target are MEMs.  Use store_bit_field if only
16195         the target is a MEM.
16196
16197 2010-08-05  Richard Henderson  <rth@redhat.com>
16198
16199         PR debug/45188
16200         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16201         (INCOMING_RETURN_ADDR_RTX): Likewise.
16202         (dwarf2out_do_frame): Remove conditional compilation.
16203         (dwarf2out_frame_init): Likewise.
16204
16205 2010-08-05  Nicolas Setton  <setton@adacore.com>
16206
16207         * gcov.c (flag_display_progress): New static variable.
16208         (main): Display progress info on standard output if requested.
16209         (options): Add -d/--display-progress.
16210         (print_usage): Print them.
16211         (process_args): Handle them.
16212         * doc/gcov.texi: Document them.
16213
16214 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16215
16216         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16217         (ipcp_insert_stage): Redirect only edges not flagged with
16218         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16219         discovered constants.
16220
16221 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16222
16223         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16224         (struct ipa_param_descriptor): New fields types and
16225         cannot_devirtualize.
16226         (ipa_param_cannot_devirtualize_p): New function.
16227         (ipa_param_types_vec_empty): Likewise.
16228         (ipa_make_edge_direct_to_target): Declare.
16229         * ipa-cp.c: Fixed first stage driver name in initial comment,
16230         described devirtualization there too.
16231         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16232         (ipcp_print_all_lattices): Print devirtualization info.
16233         (ipa_set_param_cannot_devirtualize): New function.
16234         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16235         lattice to BOTTOM.
16236         (ipcp_init_stage): Merged into...
16237         (ipcp_generate_summary): ...its caller.
16238         (ipcp_change_tops_to_bottom): Also process type lists.
16239         (ipcp_add_param_type): New function.
16240         (ipcp_copy_types): Likewise.
16241         (ipcp_propagate_types): Likewise.
16242         (ipcp_propagate_stage): Also propagate types.
16243         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16244         Also return true if propagated types require it.
16245         (ipcp_update_callgraph): Dump redirection info.
16246         (ipcp_process_devirtualization_opportunities): New function.
16247         (ipcp_const_param_count): Include known type information.
16248         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16249         on new node.  Fixed formatting.
16250         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16251         ipa_make_edge_direct_to_target and changed all callers.  Made
16252         externally visible.
16253         (ipa_node_duplication_hook): Duplicate types vector.
16254         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16255         redirect outgoing calls for which we can't get a decl from the
16256         statement.  Check that we can get a decl from the call statement.
16257         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16258         ipa_analyze_params_uses only when ipa-cp is disabled.
16259         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16260         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16261         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16262         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16263
16264 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16265
16266         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16267         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16268         be attached to this insn in correct mode.
16269
16270 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16271
16272         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16273         using REGNO of base_reg directly.
16274
16275 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16276
16277         PR tree-optimization/45144
16278         * tree-sra.c (type_consists_of_records_p): Return false
16279         if the record contains bit-field.
16280
16281 2010-08-04  Richard Henderson  <rth@redhat.com>
16282
16283         * config/i386/i386.c (struct ix86_frame): Remove padding and
16284         to_allocate members.
16285         (ix86_compute_frame_layout): Don't store them.
16286         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16287         correct condition for the position of the stack pointer.
16288         (ix86_expand_prologue): Compute remaining stack allocation based
16289         on the ultimate stack pointer offset.
16290         (ix86_expand_epilogue): Use more obvious expressions testing for
16291         the stack pointer already pointing to the saved registers.
16292
16293         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16294         duplication deconstructing the frame pointer.  Simplify
16295         deallocation of the local stack frame.
16296
16297         * reg-notes.def (CFA_EXPRESSION): New.
16298         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16299         (dwarf2out_frame_debug_cfa_expression): New.
16300         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16301
16302         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16303         * config/i386/i386.c (ix86_expand_prologue): Set it.
16304         (ix86_expand_epilogue): Clear it.
16305         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16306         context, add REG_CFA_EXPRESSION notes.
16307
16308         * config/i386/i386.h (struct machine_frame_state): Rename from
16309         machine_cfa_state.  Add members tracking SP and FP regardless
16310         of the current CFA register.
16311         (ix86_cfa_state): Remove.
16312         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16313         and sse_reg_save_offset members.
16314         (ix86_compute_frame_layout): Set them.
16315         (gen_push): Increment sp_offset too.
16316         (choose_baseaddr_len, choose_baseaddr): New.
16317         (ix86_emit_save_reg_using_mov): New.
16318         (ix86_emit_save_regs_using_mov): Use it.
16319         (ix86_emit_save_sse_regs_using_mov): Likewise.
16320         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16321         compare vs the saved red_zone_offset.
16322         (pro_epilogue_adjust_stack): Adjust sp_offset.
16323         (ix86_adjust_stack_and_probe): Likewise.
16324         (ix86_expand_prologue): Set up, use, and validate the new
16325         frame_state_info members.  Use gen_frame_mem.
16326         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16327         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16328         new frame_state_info members.
16329         (ix86_emit_leave): Likewise.
16330         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16331         out-of-range stack pointer offsets here.
16332         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16333         (ix86_expand_epilogue): Use and validate the new frame_state_info
16334         members.  Break up and simplify the logic selecting the
16335         restore_regs_via_mov code path.  Ensure that there will be no
16336         out-of-range stack pointer offsets.
16337
16338         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16339
16340         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16341         argument name to reflect the expected tree; fix indentation.
16342         (ix86_asm_output_function_label): Output the entire 32-bit
16343         ms_hook here as bytes ...
16344         (ix86_expand_prologue): ... not here as insns.  Attach the
16345         unwind info for the ms_hook to a blockage insn.
16346         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16347         (ix86_ms_bitfield_layout_p): Fix indentation.
16348         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16349
16350         * config/i386/i386.c (ix86_using_red_zone): New.
16351         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16352         ix86_expand_prologue, ix86_force_to_memory): Use it.
16353
16354         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16355         saving the int registers.
16356
16357         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16358         and DWARF2_UNWIND_INFO conditional compilation.
16359
16360 2010-08-04  Richard Henderson  <rth@redhat.com>
16361
16362         PR debug/45171
16363         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16364         an is_naming_typedef_decl.
16365
16366 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16367
16368         PR rtl-optimization/45162
16369         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16370         * dce.c (word_dce_process_block): Likewise.
16371
16372 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16373
16374         PR target/44583
16375         * config/ia64/constraints.md (Z): New.
16376         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16377         (xfreg_or_signed_fp01_operand): New.
16378         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16379         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16380         (subsf3): Ditto.
16381         (*maddsf4): Ditto.
16382         (*msubsf4): Ditto.
16383         (adddf3): Ditto.
16384         (adddf3_trunc): Ditto.
16385         (subdf3): Ditto.
16386         (*subdf3_trunc): Ditto.
16387         (*madddf4): Ditto.
16388         (*madddf4_trunc): Ditto.
16389         (*msubdf4): Ditto.
16390         (*msubdf4_trunc): Ditto.
16391         (addxf3): Replace xfreg_or_fp01_operand with
16392         xfreg_or_signed_fp01_operand and constraint G with Z.
16393         (*addxf3_truncsf): Ditto.
16394         (*addxf3_truncdf): Ditto.
16395         (subxf3): Ditto.
16396         (*subxf3_truncsf): Ditto.
16397         (*subxf3_truncdf): Ditto.
16398         (*maddxf4): Ditto.
16399         (*maddxf4_truncsf): Ditto.
16400         (*maddxf4_truncdf): Ditto.
16401         (*msubxf4): Ditto.
16402         (*msubxf4_truncsf): Ditto.
16403         (*msubxf4_truncdf): Ditto.
16404
16405 2010-08-04  Richard Guenther  <rguenther@suse.de>
16406
16407         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16408         if either alias-set is zero.
16409
16410 2010-08-04  Richard Guenther  <rguenther@suse.de>
16411
16412         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16413         * tree-ssa-ccp.c: ... here.
16414         * tree-ssa-copy.c: ... and here.
16415         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16416         value_range_t): Move ...
16417         * tree-vrp.c: ... here.
16418         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16419         (substitute_and_fold): Adjust prototype.
16420         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16421         (replace_phi_args_in): Likewise.
16422         (substitute_and_fold): Take callback to query lattice instead
16423         of pointer to lattice.  Replace SSA name defs with lattice
16424         values first.
16425         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16426         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16427         (get_value): New function.
16428         (fini_copy_prop): Adjust.
16429         * tree-vrp.c (vrp_finalize): Adjust.
16430
16431 2010-08-04  Richard Guenther  <rguenther@suse.de>
16432
16433         PR middle-end/45176
16434         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16435         points-to set for original MEM_REF.
16436
16437 2010-08-04  Richard Guenther  <rguenther@suse.de>
16438
16439         * tree-ssa-ccp.c (get_constant_value): New function.
16440         (get_rhs_assign_op_for_ccp): Remove.
16441         (valueize_op): New function.
16442         (ccp_fold): Use get_constant_value and valueize_op.
16443         (fold_const_aggregate_ref): Likewise.
16444         (ccp_fold_stmt): Likewise.
16445         (visit_assignment): Simplify.
16446
16447 2010-08-04  Richard Guenther  <rguenther@suse.de>
16448
16449         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16450         * double-int.h (double_int_ctz): Declare.
16451         * double-int.c (double_int_ctz): New function.
16452
16453 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16454
16455         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16456         Define.
16457         picochip_expand_movmemhi : Expand movmem pattern.
16458         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16459         Declare.
16460         * config/picochip/picochip.md (movmemhi) : New pattern.
16461
16462 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16463
16464         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16465
16466 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16467
16468         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16469         NEG as operand of a MULT by merging it with the other operand.
16470         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16471         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16472         MULT.
16473         * config/arm/constraints.md (M): Examine only 32 bits of a
16474         HOST_WIDE_INT.
16475         * config/arm/predicates.md (power_of_two_operand): Likewise.
16476
16477 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16478
16479         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16480         non-NOTE insns.
16481
16482 2010-08-03  Jan Hubicka  <jh@suse.cz>
16483
16484         * ipa-split.c (struct split_point): Add split_part_set_retval.
16485         (find_retval): Forward declare.
16486         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16487         (consider_split): Compute current->split_part_set_retval.
16488         (visit_bb): Do not look into return value.
16489         (split_function): Handle !split_part_set_retval
16490
16491 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16492
16493         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16494         its own access->expr intead of using build_ref_for_offset.
16495
16496 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16497
16498         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16499         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16500         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16501         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16502         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16503         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16504         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16505         DEFAULT_SWITCH_TAKES_ARG.
16506         * config/rx/rx.opt (-patch=): Remove option.
16507         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16508         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16509         * doc/invoke.texi (RX Options): Remove -patch=.
16510         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16511         (option_map): Remove --profile-blocks, --quiet and --silent.
16512
16513 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16514
16515         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16516         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16517         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16518         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16519         Update calls to ix86_expand_compare and ix86_expand_branch.
16520         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16521         ix86_expand_compare.
16522         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16523         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16524         Make static.
16525         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16526         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16527         (ix86_expand_int_movcc): Ditto.
16528         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16529         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16530         (ix86_expand_setcc): Ditto.
16531         (ix86_expand_compare): Remove prototype.
16532         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16533         ix86_compare_op0 and ix86_compare_op1.  Update calls
16534         to ix86_expand_branch to directly pass operands[1] and operands[2].
16535         (cbranchxf4): Ditto.
16536         (cbranch<MODEF:mode>4): Ditto.
16537         (cbranchcc4): Ditto.
16538         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16539         Update calls to ix86_expand_setcc to directly pass operands[2] and
16540         operands[3].
16541         (cstorexf4): Ditto.
16542         (cstore<MODEF:mode>4): Ditto.
16543         (cstorecc4): Ditto.
16544
16545 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16546
16547         PR target/45063
16548         * caller-save.c (save_call_clobbered_regs): Remove regs from
16549         hard_regs_saved when they are set.
16550
16551 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16552
16553         PR target/41089
16554         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16555         as volatile.
16556
16557 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16558
16559         * common.opt (ftree-loop-distribute-patterns): New.
16560         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16561         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16562         at -O3.
16563         * tree-data-ref.c (stores_zero_from_loop): New.
16564         * tree-data-ref.h (stores_zero_from_loop): Declared.
16565         * tree-loop-distribution.c (tree_loop_distribution): Call
16566         stores_zero_from_loop.
16567         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16568
16569 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16570
16571         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16572         into account.
16573
16574         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16575         * config/arm/arm.c (thumb1_code): New variable.
16576         (arm_override_options): Set it.
16577         (thumb1_final_prescan_insn): Keep track of condition code status.
16578         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16579         jumps that depend on them.
16580         * config/arm/arm.h (thumb1_code): Declare variable.
16581         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16582         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16583         thumb1_cc_mode.
16584         (CC_STATUS_INIT): New macro.
16585         * config/arm/constraints.md (Pd): New constraint.
16586         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16587         * config/arm/arm.md (is_thumb1): New define_attr.
16588         (conds): Set default to "clob" when generating Thumb1 code.
16589         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16590         code are set.  Use two-operand assembly syntax.
16591         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16592         pattern.
16593         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16594         codes are set.  Use two-operand assembly syntax.
16595         (zero_extendhisi splitter): Remove constraints.
16596         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16597         thumb1_movsf_insn): Set conds attribute as appropriate.
16598         (cbranchsi4_insn): Use condition code status from struct
16599         machine_function to determine whether the comparison can be eliminated.
16600         Discourage the alternative using high registers.
16601         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16602         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16603         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16604         subsi3_cbranch): Delete.
16605         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16606         one subtract and one cbranch insn.
16607
16608         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16609         thumb2_movdf_soft_insn): Delete patterns.
16610         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16611         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16612         (pool_range, neg_pool_range): Use them to define defaults.
16613         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16614         and allow for TARGET_32BIT.
16615
16616         PR target/40457
16617         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16618         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16619         load_multiple_sequence, store_multiple_sequence): Delete
16620         declarations.
16621         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16622         declarations.
16623         * config/arm/ldmstm.md: New file.
16624         * config/arm/arm.c (arm_regs_in_sequence): New array.
16625         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16626         CHECK_REGS.  All callers changed.
16627         If SAVED_ORDER is nonnull, copy the computed order into it.
16628         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16629         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16630         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16631         If SAVED_ORDER is nonnull, copy the computed order into it.
16632         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16633         like REGS.  Handle Thumb mode.
16634         (arm_gen_load_multiple_1): New function, broken out of
16635         arm_gen_load_multiple.
16636         (arm_gen_store_multiple_1): New function, broken out of
16637         arm_gen_store_multiple.
16638         (arm_gen_multiple_op): New function, with code from
16639         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16640         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16641         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16642         changed.
16643         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16644         * config/arm/predicates.md (commutative_binary_operator): New.
16645         (load_multiple_operation, store_multiple_operation): Handle more
16646         variants of these patterns with different starting offsets.  Handle
16647         Thumb-1.
16648         * config/arm/arm.md: Include "ldmstm.md".
16649         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16650         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16651         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16652         peepholes): Delete.
16653         * config/arm/ldmstm.md: New file.
16654         * config/arm/arm-ldmstm.ml: New file.
16655
16656         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16657         if statement which adds extra costs to frame-related expressions.
16658
16659 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16660
16661         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16662
16663 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16664
16665         PR target/45142
16666         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16667         alternative 2.
16668         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16669         split V4SI operands.
16670
16671 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16672
16673         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16674         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16675         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16676         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16677
16678 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16679
16680         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16681         LOCAL_INCLUDE_DIR.
16682
16683 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16684
16685         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16686         used in the call to optab_for_tree_code.  Fix the second
16687         is_widening_mult_p call.  Check that both unwidened operands
16688         have the same sign.
16689
16690 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16691
16692         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16693
16694 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16695
16696         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16697
16698 2010-07-30  DJ Delorie  <dj@redhat.com>
16699
16700         * config/rx/predicates.md (rx_constshift_operand): New.
16701         * config/rx/rx.md (zs_cond): New.
16702         (cbranchsi4): Remove mode.
16703         (*cbranchsi4_<code>): Likewise.
16704         (*tstbranchsi4_<code>): New.
16705         (*tstbranchsi4r_<code>): New.
16706         (*tstbranchsi4m_eq): New.
16707         (*tstbranchsi4m_ne): New.
16708         (cbranchsf4): Remove mode.
16709         (*cbranchsf4_<code>): Likewise.
16710
16711 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16712
16713         * rtlanal.c (simplify_subreg_regno): Don't treat
16714         HARD_FRAME_POINTER_REGNUM specially.
16715
16716 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16717
16718         * common.opt (-G): Don't define option here.
16719         * config/g.opt: New.
16720         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16721         rs6000/powerpc and score targets.
16722         * opts.c (common_handle_option): Don't handle -G here.
16723         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16724         * config/frv/frv.c (frv_handle_option): Handle -G.
16725         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16726         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16727         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16728         * config/mips/mips.c (mips_handle_option): Handle -G.
16729         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16730         * config/score/score.c (score_handle_option): Handle -G.
16731
16732 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16733
16734         * config/mmix/mmix.c: Include basic-block.h.
16735
16736 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16737
16738         PR debug/45055
16739         PR rtl-optimization/45137
16740         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16741         prototypes.
16742         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16743         New functions.
16744         * combine.c (next_nonnote_nondebug_insn): Removed.
16745         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16746         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16747         * sched-deps.c (sched_analyze_insn): Likewise.
16748         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16749         * rtlanal.c (canonicalize_condition): Likewise.
16750         * postreload.c (reload_combine_recognize_pattern): Likewise.
16751         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16752
16753 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16754
16755         * config/i386/i386.md (int_cond): Remove code iterator.
16756         (fp_cond): Ditto.
16757         (cbranch<mode>4): Use ordered_comparison_operator predicate
16758         for operator0.
16759         (cstore<mode>4): Ditto for operator1.
16760         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16761         (add<mode>cc): ditto.
16762
16763 2010-07-30  Richard Guenther  <rguenther@suse.de>
16764
16765         PR middle-end/45141
16766         * expr.c (expand_expr_real_1): Check for not handled base address.
16767
16768 2010-07-30  Richard Guenther  <rguenther@suse.de>
16769
16770         * ipa-prop.c (ipa_modify_formal_parameters): Use
16771         build_distinct_type_copy.
16772
16773 2010-07-30  Anthony Green  <green@moxielogic.com>
16774
16775         * config/moxie/rtems.h: New file.
16776         * config.gcc: Add moxie-rtems support.
16777
16778 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16779
16780         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16781         df flags as in run_fast_df_dce.
16782
16783 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16784
16785         Revert:
16786         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16787
16788         * rtl.def (NOTE): Swap operands 4 and 5.
16789         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16790         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16791         Adjust accordingly.
16792         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16793
16794 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16795
16796         PR debug/45110
16797         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16798         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16799         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16800         formal parameters.
16801         (gen_decl_die): Change return type to dw_die_ref, return what
16802         gen_formal_parameter_die returned.
16803
16804 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16805
16806         * dbgcnt.def (eipa_sra): New counter.
16807         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16808
16809 2010-07-29  Xinliang David Li  <davidxl@google.com>
16810
16811         PR bootstrap/45119
16812         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16813         in revision 162652.
16814
16815 2010-07-29  Richard Guenther  <rguenther@suse.de>
16816
16817         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16818         (TV_TREE_STORE_CCP): Likewise.
16819         (TV_TREE_REDPHI): Likewise.
16820
16821 2010-07-29  Richard Guenther  <rguenther@suse.de>
16822
16823         * double-int.h (double_int_and_not): New function.
16824         * combine.c (try_combine): Use it.
16825         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16826
16827 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16828
16829         PR rtl-optimization/42575
16830         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16831         Argument AU removed.  All callers changed.  Ignore artificial refs.
16832         Use return value of df_word_lr_simulate_defs to decide whether an insn
16833         is necessary.
16834         (fast_dce): Rename arg to WORD_LEVEL.
16835         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16836         static.
16837         (pass_fast_rtl_byte_dce): Delete.
16838         * dce.h (run_word_dce): Declare.
16839         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16840         All callers changed.  Simplify code to only deal with two-word regs.
16841         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16842         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16843         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16844         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16845         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16846         (df_word_lr_mark_ref): Declare.
16847         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16848         df_word_lr_simulate_uses): Declare or rename from byte variants.
16849         (df_byte_lr_simulate_artificial_refs_at_top,
16850         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16851         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16852         declarations.
16853         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16854         (enum df_mm): Delete.
16855         * df-byte-scan.c: Delete file.
16856         * df-problems.c (df_word_lr_problem_data): Renamed from
16857         df_byte_lr_problem_data, all members deleted except for
16858         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16859         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16860         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16861         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16862         df_byte_lr_confluence_0): Delete functions.
16863         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16864         callers changed.
16865         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16866         Don't initialize members that were deleted, don't try to discover data
16867         about registers.  Ignore hard regs.
16868         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16869         (df_word_lr_mark_ref): New function.
16870         (df_word_lr_bb_local_compute): Renamed from
16871         df_byte_bb_lr_local_compute; all callers changed.  Use
16872         df_word_lr_mark_ref.  Assert that artificial refs don't include
16873         pseudos.  Ignore hard registers.
16874         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16875         Assert that exit block uses don't contain pseudos.
16876         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16877         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16878         callers changed.  Ignore hard regs.
16879         (df_word_lr_transfer_function): Renamed from
16880         df_byte_lr_transfer_function; all callers changed.
16881         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16882         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16883         changed.
16884         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16885         callers changed.
16886         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16887         confluence operator 0 set to NULL.
16888         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16889         callers changed.
16890         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16891         Return bool, true if bitmap changed or insn otherwise necessary.
16892         All callers changed.  Simplify using df_word_lr_mark_ref.
16893         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16894         all callers changed.  Simplify using df_word_lr_mark_ref.
16895         * lower-subreg.c: Include "dce.h"
16896         (decompose_multiword_subregs): Call run_word_dce if df available.
16897         * Makefile.in (lower-subreg.o): Adjust dependencies.
16898         (df-byte-scan.o): Delete.
16899         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16900
16901 2010-07-29  Richard Guenther  <rguenther@suse.de>
16902
16903         * tree.c (build_vector): Assert that the vector constant
16904         has enough elements.
16905         (build_vector_from_ctor): Pad with trailing zeros.
16906
16907 2010-07-29  Richard Guenther  <rguenther@suse.de>
16908
16909         PR tree-optimization/45120
16910         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16911         Handle offset in DEREFs properly.
16912         (get_constraint_for_1): Handle MEM_REF offset properly.
16913
16914 2010-07-29  Richard Guenther  <rguenther@suse.de>
16915
16916         PR middle-end/45034
16917         * convert.c (convert_to_integer): Always use an unsigned
16918         type for narrowed negate and bitwise not.
16919
16920 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16921
16922         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16923         to outer loop when creating reduction epilogue for double reduction,
16924         and switch back to the inner loop when updating the phi nodes.
16925         Update uses of outer loop exit phi nodes in double reduction (instead
16926         of uses of reduction).
16927
16928 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16929
16930         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16931         popcount on power7 and parity on power6 systems.
16932         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16933         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16934         instructions.
16935
16936         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16937         (UNSPEC_PARITY): Ditto.
16938         (SFDF): New iterator for SF/DF.
16939         (rreg2): New mode attribute for floating register constraint.
16940         (TARGET_FLOAT): New mode attribute for whether single/double float
16941         is supported.
16942         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16943         pattern.
16944         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16945         machines.
16946         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16947         pattern.  Add support for fcpsgn instruction added in power6.
16948         (copysignsf3): Delete.
16949         (copysigndf3): Delete.
16950         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16951         instead of if_then_else in RTL to avoid problems with -0.
16952
16953         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16954         of if_then_else to mirror scalar code.
16955         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16956         rs6000.md.
16957
16958         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16959         instead of if_then_else.
16960
16961 2010-07-28  Xinliang David Li  <davidxl@google.com>
16962
16963         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16964         (dump_cand): Dump var_before/after.
16965         (htab_inv_expr_eq): New function.
16966         (htab_inv_expr_hash): New function.
16967         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16968         (add_candidate_1): consider base type precision.
16969         (set_use_iv_cost): New parameter.
16970         (adjust_setup_cost): Use profile information.
16971         (get_address_cost): Do not hard code width in computing address
16972         offset limits.
16973         (compare_aff_trees): New function.
16974         (get_loop_invariant_expr_id): New function.
16975         (get_computation_cost_at): New parameter and use profile information.
16976         (get_computation_cost): New parameter.
16977         (determine_use_iv_cost_generic): Pass new parameter.
16978         (determine_use_iv_cost_address): Ditto.
16979         (determine_use_iv_cost_condition): Ditto.
16980         (autoinc_possible_for_pair): Ditto.
16981         (determine_use_iv_costs): More dumps.
16982         (iv_ca_get_num_inv_exprs): New function.
16983         (iv_ca_recount_cost): Consider loop invariants in register pressure
16984         cost.
16985         (iv_ca_add_use): New parameter.
16986         (iv_ca_dump): Better dumping.
16987         (iv_ca_extend): New parameter.
16988         (try_add_cand_for): Attempt to get better partial solution.
16989         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
16990         (create_new-ivs): More dumps.
16991         (rewrite_use_compare): Ditto.
16992         (free_loop_data): More cleanup.
16993         (treee_ssa_iv_optimize_finalize): Ditto.
16994
16995 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
16996
16997         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
16998         * config/i386/i386.c (ix86_profile_before_prologue): New.
16999         (override_options): Add special handling for -mfentry.
17000         (ix86_function_regparm): Likewise.
17001         (ix86_function_sseregparm): Likewise.
17002         (ix86_frame_pointer_required): Likewise.
17003         (ix86_expand_prologue): Check for ms_hook_prologue.
17004         (x86_function_profiler): Adjust mcount output.
17005         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17006         * config/i386/i386.opt (mfentry): New.
17007         * doc/invoke.texi (mfentry): Add documentation.
17008         * doc/tm.texi: Regenerated..
17009         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17010         * final.c (final_start_function): Replace macro
17011         PROFILE_BEFORE_PROLOGUE by target hook.
17012         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17013         * target.def (profile_before_prologue): New hook.
17014         * targhooks.c (default_profile_before_prologue): New.
17015         * targhooks.h (default_profile_before_prologue): New.
17016
17017 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17018
17019         PR debug/45105
17020         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17021
17022         PR debug/45103
17023         * dwarf2out.c (dwarf2out_var_location): Always consider
17024         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17025
17026 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17027
17028         PR rtl-optimization/45107
17029         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17030
17031 2010-07-28  Richard Guenther  <rguenther@suse.de>
17032
17033         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17034         (set_lattice_value): Do not query an old default value.
17035         (get_value_for_expr): New function.  Properly canonicalize
17036         float values.
17037         (ccp_visit_phi_node): Use it.
17038
17039 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17040
17041         * config/arm/arm.c (arm_pcs_default): Remove static.
17042         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17043         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17044         (arm_pcs_default): Declare.
17045
17046 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17047
17048         * config/rs6000/rs6000.c (rs6000_override_options):
17049         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17050         ... to darwin_rs6000_override_options.
17051         (rs6000_return_in_memory): Update preceding comment for darwin
17052         64 bit ABI.  Use TARGET_MACHO inline.
17053         (rs6000_darwin64_struct_check_p): New.
17054         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17055         (function_arg): Likewise.
17056         (rs6000_arg_partial_bytes): Likewise.
17057         (rs6000_function_value): Likewise.
17058
17059 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17060
17061         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17062
17063 2010-07-28  Richard Guenther  <rguenther@suse.de>
17064
17065         PR middle-end/44903
17066         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17067         targets try harder to not generate unaligned accesses.
17068
17069 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17070
17071         PR rtl-optimization/45101
17072         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17073         for gcse-las.
17074
17075 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17076
17077         PR tree-optimization/44885
17078         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17079         with non-aliased component.
17080
17081 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17082
17083         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17084         WORD_SWITCH_TAKES_ARG): Remove.
17085         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17086         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17087         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17088         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17089         definitions from gcc.c.
17090         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17091         defaults.h.
17092         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17093         Move to defaults.h.
17094         * opts-common.c: Include tm.h.
17095         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17096         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17097         Handle more than one argument.  Set canonical_option_num_elements.
17098         (decode_cmdline_options_to_array): Set
17099         canonical_option_num_elements and trailing elements of
17100         canonical_option.
17101         * opts.h (struct cl_decoded_option): Allow four elements in
17102         canonical_option.  Add field canonical_option_num_elements.
17103         * Makefile.in (opts-common.o): Update dependencies.
17104
17105 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17106
17107         PR middle-end/44790
17108         PR middle-end/44993
17109         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17110         sure the base has address_mode before adding the offset.
17111
17112 2010-07-27  Xinliang David Li  <davidxl@google.com>
17113
17114         * tree-flow.h (create_mem_ref): Add one new parameter.
17115         * tree-ssa-address.c (create_mem_ref): New parameter.
17116         (addr_to_parts): Ditto.
17117         (move_variant_to_index): New function.
17118         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17119
17120 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17121
17122         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17123         4 and 5.
17124         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17125         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17126         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17127         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17128         CODE_LABELs and NOTEs.
17129         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17130         * combine.c (try_combine): Likewise.
17131         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17132         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17133
17134 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17135
17136         * coretypes.h (struct cl_option_handlers): Declare.
17137         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17138         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17139         * langhooks-def.h (lhd_handle_option): Declare.
17140         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17141         * langhooks.c (lhd_handle_option): New.
17142         * langhooks.h (struct lang_hooks): Update prototype and return
17143         value type of handle_option hook.
17144         * optc-gen.awk: Generate target_flags_explicit definition for the
17145         driver.
17146         * opts-common.c: Include diagnostic.h.
17147         (handle_option): Move from opts.c.  Update prototype and return
17148         value type.  Use handlers structure.
17149         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17150         handlers structure.
17151         (set_option): Move from opts.c.
17152         * opts.c (common_handle_option): Update prototype and return value
17153         type.  Update calls to handle_option and enable_warning_as_error.
17154         (unknown_option_callback, post_handling_callback,
17155         lang_handle_option, target_handle_option): New.
17156         (handle_option, read_cmdline_option): Move to opts-common.c.
17157         (read_cmdline_options): Update prototype.  Update call to
17158         read_cmdline_option.
17159         (decode_options): Initialize and use handlers structure.
17160         (set_option): Move to opts-common.c.
17161         (enable_warning_as_error): Update prototype.  Update call to
17162         handle_option.
17163         * opts.h (struct cl_option_handler_func, struct
17164         cl_option_handlers): New.
17165         (handle_option, enable_warning_as_error): Update prototypes.
17166         (read_cmdline_option): Declare.
17167         * Makefile.in (opts-common.o): Update dependencies.
17168
17169 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17170
17171         * config/arm/arm.c (params.h): Include.
17172         (arm_override_options): Tune gcse-unrestricted-cost.
17173         * config/arm/t-arm (arm.o): Define dependencies.
17174
17175 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17176
17177         PR target/42495
17178         PR middle-end/42574
17179         * basic-block.h (get_dominated_to_depth): Declare.
17180         * dominance.c (get_dominated_to_depth): New function, use
17181         get_all_dominated_blocks as a base.
17182         (get_all_dominated_blocks): Use get_dominated_to_depth.
17183
17184         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17185         (hoist_exprs): Remove.
17186         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17187         (compute_code_hoist_vbeinout): Add debug print outs.
17188         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17189
17190         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17191         quadratic behavior.
17192         * params.h (MAX_HOIST_DEPTH): New macro.
17193         * doc/invoke.texi (max-hoist-depth): Document.
17194
17195 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17196
17197         PR rtl-optimization/40956
17198         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17199         constants.
17200
17201 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17202
17203         PR target/42495
17204         PR middle-end/42574
17205         * config/arm/arm.c (legitimize_pic_address): Use
17206         gen_calculate_pic_address pattern to emit calculation of PIC address.
17207         (will_be_in_index_register): New function.
17208         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17209         (thumb1_legitimate_address_p): Use it provided !strict_p.
17210         * config/arm/arm.md (calculate_pic_address): New expand and split.
17211
17212 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17213
17214         PR target/42495
17215         PR middle-end/42574
17216         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17217         * config/arm/arm.md (define_split "J", define_split "K"): Make
17218         IRA/reload friendly.
17219
17220 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17221
17222         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17223         unused checks.
17224         (pre_edge_insert, hoist_code): Update.
17225
17226 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17227
17228         PR target/42495
17229         PR middle-end/42574
17230         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17231
17232 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17233
17234         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17235
17236 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17237
17238         PR rtl-optimization/40956
17239         PR target/42495
17240         PR middle-end/42574
17241         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17242         for hoisting.
17243         (hoist_code): Count occurences in current block too.
17244
17245 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17246
17247         * gcse.c (struct expr:max_distance): New field.
17248         (doing_code_hoisting_p): New static variable.
17249         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17250         simple expressions, don't change behavior for PRE.  Set max_distance.
17251         (insert_expr_in_table): Set new max_distance field.
17252         (hash_scan_set): Update.
17253         (hoist_expr_reaches_here_p): Stop search after max_distance
17254         instructions.
17255         (find_occr_in_bb): New static function.  Use it in ...
17256         (hoist_code): Calculate sizes of basic block before any changes are
17257         done.  Pass max_distance to hoist_expr_reaches_here_p.
17258         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17259
17260         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17261         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17262         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17263         macros.
17264         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17265         Document.
17266
17267 2010-07-27  Jeff Law  <law@redhat.com>
17268             Maxim Kuvyrkov  <maxim@codesourcery.com>
17269
17270         * gcse.c (compute_transpout, transpout): Remove, move logic
17271         to prune_expressions.
17272         (compute_pre_data): Move pruning of trapping expressions ...
17273         (prune_expressions): ... here.  New static function.
17274         (compute_code_hoist_data): Use it.
17275         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17276
17277 2010-07-27  Xinliang David Li  <davidxl@google.com>
17278
17279         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17280         (rewrite_use_address): Adjust iv update position when needed.
17281
17282 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17283
17284         * dbgcnt.def (hoist_insn): New debug counter.
17285         * gcse.c (hoist_code): Use it.
17286
17287 2010-07-27  Xinliang David Li  <davidxl@google.com>
17288
17289         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17290         (niter_for_single_dom_exit): Passes additional parameter.
17291         (iv_period): Fix comments.
17292         (may_eliminate_iv): Handles multiple exit loops properly.
17293         (free_tree_niter_desc): New function.
17294         (free_loop_data): Frees up loop iteration descriptors.
17295
17296 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17297
17298         PR target/44542
17299         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17300         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17301         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17302         (expand_one_var): Don't consider DECL_ALIGN for variables for
17303         which expand_one_stack_var_at has been already called.
17304
17305         PR testsuite/44701
17306         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17307         constraints on IA-64.
17308
17309 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17310
17311         PR target/44290
17312         Revert:
17313         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17314
17315         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17316         false if ! tree_versionable_function_p.
17317
17318 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17319
17320         * dwarf2out.c (add_data_member_location_attribute): Use
17321         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17322
17323 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17324
17325         * postreload.c (try_replace_in_use): New static function.
17326         (reload_combine_recognize_const_pattern): Use it here.  Allow
17327         substituting into a final add insn, and substituting into a memory
17328         reference in an insn that sets the reg.
17329
17330 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17331
17332         * common.opt (o): Add MissingArgError.
17333         * doc/options.texi (MissingArgError): Document.
17334         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17335         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17336         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17337         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17338         * langhooks.h (struct lang_hooks): Remove missing_argument.
17339         * optc-gen.awk: Handle MissingArgError and output new structure
17340         field initializers.
17341         * opts.c (read_cmdline_option): Use missing_argument_error field
17342         instead of missing_argument langhook.
17343         * opts.h (struct cl_option): Add missing_argument_error field.
17344         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17345
17346 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17347
17348         PR target/29090
17349         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17350         Darwin64 ABI, for zero-sized objects.
17351
17352 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17353
17354         PR target/35491
17355         PR target/29090
17356
17357         Merge from Apple local 4.2.1.
17358         2005-05-11  Stan Shebs  <shebs@apple.com>
17359         Fix 64-bit varargs for Darwin (Radar 4028089).
17360         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17361         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17362         Add argument, add case for 8-byte register half-filled with a float.
17363         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17364         single-precision floats specially.
17365
17366 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17367
17368         PR tree-optimization/44152
17369         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17370         complex numbers for further check.
17371         (vect_supported_load_permutation_p): Check nodes with
17372         complex numbers.
17373
17374 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17375
17376         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17377         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17378         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17379         (LANG_HOOKS_INITIALIZER): Add new hooks.
17380         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17381         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17382         and complain_wrong_lang_p.  Update init_options prototype.
17383         * c-objc-common.c (c_initialize_diagnostics): First call
17384         c_common_initialize_diagnostics.
17385         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17386         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17387         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17388         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17389         (hook_uint_void_0): New.
17390         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17391         (hook_uint_void_0): New.
17392         * opts-common.c (decode_cmdline_option,
17393         decode_cmdline_options_to_array): Also fill in canonical_option field.
17394         * opts.c (complain_wrong_lang): Use langhook to determine whether
17395         to complain instead of special-casing LTO.
17396         (decode_options): Separate lang_mask determination with
17397         option_lang_mask hook from call of init_options hook.
17398         * opts.h (struct cl_decoded_option): Add canonical_option.
17399
17400 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17401
17402         PR tree-optimization/45083
17403         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17404
17405 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17406
17407         * postreload.c (reload_combine_recognize_const_pattern): Move test
17408         for limiting the insn movement to the right scope.
17409
17410         PR rtl-optimization/45051
17411         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17412         than reg_mentioned_p.
17413
17414 2010-07-26  Richard Henderson  <rth@redhat.com>
17415
17416         PR target/44132
17417         * tree-emutls.c: New file.
17418         * Makefile.in (OBJS-common): Add it.
17419         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17420         * passes.c (init_optimization_passes): Add it.
17421
17422         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17423         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17424         * expr.c (emutls_var_address): Delete.
17425         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17426         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17427         (emutls_finish): Delete.
17428         * toplev.c (compile_file): Don't call it.
17429         * tree.h (emutls_decl): Delete.
17430         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17431         (emutls_finish, emutls_finalize_control_var): Delete.
17432         (emutls_object_type): Move to tree-emutls.c.
17433         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17434         default_emutls_var_fields, get_emutls_object_type,
17435         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17436         default_emutls_var_init): Likewise.
17437         (get_variable_section): Don't special case emutls.
17438         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17439         default_elf_select_section, default_unique_section,
17440         default_encode_section_info): Likewise.
17441         * varpool.c (decide_is_variable_needed): Likewise.
17442         * gimple-iterator.c (update_call_edge_frequencies): New
17443         (gsi_insert_on_edge_immediate): Use it.
17444         (gsi_insert_seq_on_edge_immediate): Likewise.
17445         (gsi_commit_one_edge_insert): Likewise.
17446
17447         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17448         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17449         (x86_64_elf_unique_section): Likewise.
17450
17451 2010-07-26  Jan Hubicka  <jh@suse.cz>
17452
17453         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17454         GTY((skip)).
17455
17456 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17457
17458         * target.def (output_source_filename): New hook.
17459         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17460         * doc/tm.texi: Regenerate.
17461         * toplev.c (output_file_directive) Remove function.
17462         * toplev.h (output_file_directive) Remove.
17463         * output.h (default_asm_output_source_filename,
17464         output_file_directive): Declare.
17465         * varasm.h (default_asm_output_source_filename,
17466         output_file_directive): New functions.
17467
17468         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17469         * config/mips/mips-protos.h (mips_output_filename): Remove.
17470         * config/mips/mips.c (mips_output_filename): Make Static.
17471         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17472
17473 2010-07-26  Richard Guenther  <rguenther@suse.de>
17474
17475         PR tree-optimization/43784
17476         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17477         if the destination is used by the call.
17478
17479 2010-07-26  Richard Guenther  <rguenther@suse.de>
17480
17481         PR middle-end/45073
17482         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17483         SSA updating on being in SSA form.
17484
17485 2010-07-26  Richard Guenther  <rguenther@suse.de>
17486
17487         PR middle-end/45056
17488         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17489
17490 2010-07-26  Richard Guenther  <rguenther@suse.de>
17491
17492         PR tree-optimization/45071
17493         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17494         adjust op->opcode.
17495
17496 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17497
17498         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17499         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17500         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17501         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17502         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17503         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17504         save_r31, return_r31, save_interrupt, return_interrupt,
17505         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17506         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17507         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17508         new ABI requirements.
17509         (save_r6_r9, L_callt_save_r6_r9): Remove.
17510         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17511         const_float_1_operand const_float_0_operand): New Predicates.
17512         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17513         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17514         * config/v850/t-v850: Update multilibs for new target variants.
17515         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17516         * config/v850/t-v850e: Likewise.
17517         * config/v850/v850.c (v850_issue_rate): New.
17518         (v850_strict_argument_naming): New.
17519         (function_arg): Modify to generate a different ABI.
17520         (print_operand): Update case 'z' to support float modes.
17521         (output_move_single): Modify to generate appropriate and better
17522         assembly.
17523         (v850_float_z_comparison_operator, v850_select_cc_mode,
17524         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17525         v850_gen_compare): New functions to support comparison of float values.
17526         (ep_memory_offset): Add support for V850E2 targets.
17527         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17528         (INTERRUPT_REGPARM_NUM): Remove.
17529         (compute_register_save_size): Add extra case to save/restore long call.
17530         (use_prolog_function): New function to support prologue.
17531         (expand_prologue): Add support for V850E2 targets and modified
17532         as per the current ABI requirements.
17533         (expand_epilogue): Likewise.
17534         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17535         (construct_save_jarl): Likewise.
17536         (construct_dispose_instruction): Update as per the current ABI
17537         requirements.
17538         (construct_prepare_instruction): Likewise.
17539         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17540         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17541         (CPP_SPEC): Updated to support v850e2 targets.
17542         (STRICT_ALIGNMENT): Modified.
17543         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17544         (FIXED_REGISTERS): Likewise.
17545         (CALL_USED_REGISTERS): Likewise.
17546         (CONDITIONAL_REGISTER_USAGE): Updated.
17547         (HARD_REGNO_MODE_OK): Updated.
17548         (reg_class): Updated to add even registers.
17549         (REG_CLASS_NAMES): Likewise.
17550         (REG_CLASS_CONTENTS): Likewise.
17551         (REGNO_REG_CLASS): Updated for CC registers.
17552         (REG_CLASS_FROM_LETTER): Added support for even registers.
17553         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17554         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17555         ARG_POINTER_REGNUM): Updated.
17556         (FUNCTION_ARG_ADVANCE): Define.
17557         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17558         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17559         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17560         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17561         (SELECT_CC_MODE): Define.
17562         (REGISTER_NAMES): Updated to add psw and fcc registers.
17563         (ADDITIONAL_REGISTER_NAMES): Updated.
17564         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17565         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17566         * config/v850/v850.md (define_constants): Define new constants.
17567         (type): Update store,bit1,macc,div,fpu and single attributes.
17568         (cpu): New attribute.
17569         (cc): Add set_z attribute.
17570         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17571         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17572         23word_store): New instructions for 23-bit displacement load and store.
17573         (movqi_internal, movhi_internal): Update the attributes.
17574         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17575         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17576         the attributes.
17577         (v850_tst1): Modified using CC_REGNUM.
17578         (tstsi): Remove.
17579         (cmpsi): Modified as define_expand from define_insn.
17580         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17581         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17582         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17583         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17584         one_cmplsi2): Clobber the CC_REGNUM register.
17585         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17586         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17587         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17588         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17589         v850e2v3 target.
17590         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17591         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17592         targets.
17593         (sasf_1, sasf_2): Remove.
17594         (sasf): New instruction.
17595         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17596         targets. CC_REGNUM register is clobbered and attributes are
17597         updated.
17598         (branch_z_normal, branch_z_invert, branch_nz_normal,
17599         branch_nz_invert): New branch related instructions.
17600         (jump): Updated the attributes.
17601         (switch): Update to support new targets. CC_REGNUM register is
17602         clobbered and attributes are updated.
17603         (call_internal_short, call_internal_long, call_value_internal_short,
17604         call_value_internal_long): Updated the attributes.
17605         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17606         clobbered and attributes are updated.
17607         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17608         Update to support new targets. CC_REGNUM register is clobbered.
17609         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17610         instructions.
17611         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17612         are updated.
17613         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17614         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17615         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17616         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17617         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17618         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17619         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17620         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17621         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17622         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17623         point instructions defined for V850e2v3 target.
17624         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17625         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17626         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17627         support for new targets.
17628         * config/v850/v850-modes.def: New file.
17629         * config/v850/v850.opt(mstrict-align): Remove.
17630         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17631         mv850e2v3): New command line options for V850.
17632         * config.gcc: Update the newly added files.
17633         * doc/invoke.texi: Update the newly added command line options for
17634         V850 target.
17635
17636 2010-07-26  Richard Guenther  <rguenther@suse.de>
17637
17638         PR tree-optimization/45052
17639         * ipa-pure-const.c (check_stmt): Check volatileness.
17640
17641 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17642
17643         PR target/44707
17644         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17645         * config/sparc/sparc.c: Include reload.h.
17646         (legitimize_tls_address): Rename into...
17647         (sparc_legitimize_tls_address): ...this.
17648         (legitimize_pic_address): Rename into...
17649         (sparc_legitimize_pic_address): ...this.
17650         (sparc_expand_move): Adjust to above renaming.
17651         (sparc_tls_referenced_p): Likewise.
17652         (sparc_legitimize_tls_address): Likewise.
17653         (sparc_legitimize_pic_address): Likewise.
17654         (sparc_legitimize_address): Likewise.
17655         (sparc_output_mi_thunk): Likewise.
17656         (sparc_legitimize_reload_address): New global function.  Recognize
17657         (lo_sum (high ...) ...) patterns generated by earlier passes.
17658         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17659
17660 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17661
17662         PR target/44484
17663         * config/sparc/predicates.md (memory_reg_operand): Delete.
17664         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17665         (*sync_compare_and_swap): Encode the address form in the pattern.
17666         (*sync_compare_and_swapdi_v8plus): Likewise.
17667
17668 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17669
17670         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17671         Streamline paragraph on compatibility with the system compiler.
17672
17673 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17674
17675         PR middle-end/45035
17676         * alias.c (true_dependence_1): Fix thinko in merge of old
17677         true_dependence and canon_true_dependence.
17678
17679 2010-07-23  Jan Hubicka  <jh@suse.cz>
17680
17681         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17682         references.
17683
17684 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17685
17686         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17687         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17688         and an unnecessary assignment.
17689         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17690         self-assign warning.
17691         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17692         unnecessary self-init.
17693
17694 2010-07-23  Richard Guenther  <rguenther@suse.de>
17695
17696         PR lto/43071
17697         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17698         for -flto and -fwhopr.
17699
17700 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17701
17702         PR target/41943
17703         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17704         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17705         * config.gcc (user_headers_inc_next_pre): New.
17706         (user_headers_inc_next_post): Likewise.
17707         (*-w64-mingw*): Use for float.h post-fixing, and for
17708         stddef.h/stdarg.h pre-fixing by include_next.
17709         * configure.ac (user_headers_inc_next_post): New.
17710         (user_headers_inc_next_pre): New.
17711         * configure: Regenerated.
17712
17713 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17714
17715         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17716         Set tga_func for Solaris 2/x86 resp. SPARC.
17717         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17718         (LIB_THREAD_LDFLAGS_SPEC): Define.
17719         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17720         * configure: Regenerate.
17721         * config.in: Regenerate.
17722         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17723         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17724         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17725         alternate thread libraries on Solaris 8.
17726         Document TLS patch requirements.
17727         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17728         Document tls.
17729
17730         PR target/18788
17731         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17732         -shared.
17733
17734 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17735
17736         * tree.h (struct tree_base): Add nameless_flag bitfield.
17737         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17738         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17739         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17740         DECL_ARTIFICIAL where needed.
17741         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17742         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17743         has DECL_NAMELESS set.
17744
17745 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17746
17747         PR tree-optimization/44915
17748         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17749         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17750         (analyze_function): Likewise.
17751
17752 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17753
17754         PR tree-optimization/44914
17755         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17756         changed, add purging dead eh edges.
17757         (ipa_sra_modify_function_body): Return true if CFG was changed,
17758         simplify purging dead eh edges.
17759         (modify_function): Return true if CFG was changed.
17760         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17761         was changed.
17762         (ipa_early_sra): Likewise.
17763
17764 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17765
17766         PR target/44290
17767         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17768         if "naked".
17769         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17770         false if ! tree_versionable_function_p.
17771
17772 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17773
17774         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17775         * ipa-pure-const.c (special_builtlin_state): Remove
17776         BUILT_IN_ARGS_INFO case.
17777         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17778         * builtins.c (expand_builtin): Likewise.
17779         (expand_builtin_args_info): Remove.
17780         * doc/tm.texi (__builtin_args_info): Remove.
17781         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17782         * doc/tm.text.in: Likewise.
17783
17784 2010-07-23  Richard Guenther  <rguenther@suse.de>
17785
17786         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17787         (lto_symtab_merge_decls_2): Likewise.
17788         * tree-ssa.c (useless_type_conversion_p): Likewise.
17789         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17790         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17791         (struct type_pair_d): Make same_p an array indexed by mode.
17792         Update comment.
17793         (lookup_type_pair): Update initialization.
17794         (struct sccs): Adjust same_p type.
17795         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17796         Adjust.
17797         (print_gimple_types_stats): Likewise.
17798         * gimple.h (enum gtc_mode): New.
17799         (gimple_types_compatible_p): Adjust prototype.
17800
17801 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17802
17803         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17804         again after processing insn.
17805
17806 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17807
17808         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17809         proper words when !tree_versionable_function_p.
17810
17811 2010-07-23  Richard Guenther  <rguenther@suse.de>
17812
17813         PR tree-optimization/45037
17814         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17815
17816 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17817
17818         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17819         Add MCORE instead.
17820
17821 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17822
17823         PR lto/44992
17824         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17825         lto_get_section_name.
17826         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17827         * lto-streamer-out.c (produce_asm): Likewise.
17828         (copy_function): Likewise.
17829         (produce_symtab): Likewise.
17830         (produce_asm_for_decls): Likewise.
17831         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17832         Rewrite to add random postfix to LTO sections.
17833         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17834         (lto_get_section_name): Add file_data argument to prototype.
17835
17836 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17837
17838         * lto-section-in.c (lto_section_name): Synchronize names
17839         with lto_get_section_name.
17840
17841 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17842
17843         * lto-opts.c (lto_read_file_options): Check for missing section.
17844
17845 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17846
17847         * ira.c (check_allocation): Correctly handle the case where an allocno
17848         with two objects was allocated to a single reg.
17849
17850 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17851
17852         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17853         (is_widening_mult_p): Likewise.
17854         (convert_to_widen): Use them.
17855         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17856         well as integer ones.
17857
17858 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17859
17860         * alias.c (true_dependence_1): New function, merged version of
17861         true_dependence and canon_true_dependence.
17862         (true_dependence): Simplify.
17863         (canon_true_dependence): Simplify.
17864
17865 2010-07-22  Richard Henderson  <rth@redhat.com>
17866
17867         PR target/45027
17868         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17869         of V4SFmode for the SSE saves; increase stack alignment if needed.
17870         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17871
17872 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17873
17874         PR bootstrap/45028
17875         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17876         call cprop_find_used_regs again via note_uses.
17877
17878 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17879
17880         * alias.c (get_alias_set): Fix formatting issues.
17881
17882 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17883
17884         PR middle-end/44878
17885         * stmt.c (expand_value_return):  Call promote_function_mode with
17886         a for_return argument of 2 when returning by reference.
17887
17888 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17889
17890         PR debug/45024
17891         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17892         unit DIE if we can find the scope DIE.
17893
17894 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17895
17896         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17897         changed.  Initialize OBJECT_SUBWORD.
17898         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17899         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17900         all callers changed.
17901         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17902         (finish_allocno): Likewise.
17903         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17904         (remove_low_level_allocnos): Likewise.
17905         (update_bad_spill_attribute): Likewise.
17906         (setup_min_max_allocno_live_range_point): Likewise.
17907         (sort_conflict_id_map): Likewise.
17908         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17909         (ior_hard_reg_conflicts): New function.
17910         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17911         (compress_conflict_vecs): Iterate over objects, not allocnos.
17912         (ira_add_live_range_to_object): New function.
17913         (object_range_compare_func): Renamed from allocno_range_compare_func.
17914         All callers changed.
17915         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17916         subobjects, widen the min/max range of the lowest-order object to
17917         potentially include all other such low-order objects.
17918         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17919         (check_allocation): Likewise.  Use more fine-grained tests for register
17920         conflicts.
17921         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17922         allocno subobjects.
17923         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17924         choices about which bits to set in each set.  Don't use
17925         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17926         using the multiple sets we computed.
17927         (push_allocno_to_stack): Iterate over allocno subobjects.
17928         (all_conflicting_hard_regs_coalesced): New static function.
17929         (setup_allocno_available_regs_num): Use it.
17930         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17931         subobjects.
17932         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17933         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17934         by ALLOCNO_NUM_OBJECTS.
17935         (calculate_spill_cost): Likewise.
17936         (color_pass): Express if statement in a more normal way.
17937         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17938         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17939         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17940         (allocno_reload_assign): Likewise.
17941         (ira_reassign_pseudos): Likewise.
17942         (fast_allocation): Likewise.
17943         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17944         (print_allocno_conflicts): Likewise.
17945         (ira_build_conflicts): Likewise.
17946         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17947         callers changed.  Test subword 0 of each allocno for conflicts.
17948         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17949         callers changed.  Iterate over allocno subobjects.
17950         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17951         * ira-int.h (struct ira_allocno): New member: num_objects.
17952         Rename object to objects and change it into an array.
17953         (ALLOCNO_OBJECT): Add new argument N.
17954         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17955         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17956         (ior_hard_reg_conflicts): Declare.
17957         (ira_add_live_range_to_object): Declare.
17958         (ira_allocno_object_iterator): New.
17959         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17960         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17961         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17962         uses changed.
17963         (allocnos_processed): New sparseset.
17964         (make_object_born): Renamed from make_allocno_born; take an
17965         ira_object_t argument.  All callers changed.
17966         (make_object_dead): Renamed from make_allocno_dead; take an
17967         ira_object_t argument.  All callers changed.
17968         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17969         All callers changed.
17970         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17971         (mark_pseudo_regno_dead): Likewise.
17972         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17973         functions.
17974         (mark_ref_live): Detect subword accesses and call
17975         mark_pseudo_regno_subword_live as appropriate.
17976         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17977         (process_bb_nodes_live): Deal with object-related updates first; set
17978         and test bits in allocnos_processed to avoid computing allocno
17979         statistics more than once.
17980         (create_start_finish_chains): Iterate over objects, not allocnos.
17981         (print_object_live_ranges): New function.
17982         (print_allocno_live_ranges): Use it.
17983         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17984         and objects_live.
17985
17986 2010-07-22  Richard Guenther  <rguenther@suse.de>
17987
17988         PR lto/42451
17989         * gimple.c (gtc_next_dfs_num): New global.
17990         (struct sccs): Make value a union, add integer same_p member.
17991         (gtc_visit): New function.
17992         (gimple_types_compatible_p_1): New function, split out from ...
17993         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
17994         (iterative_hash_gimple_type): Adjust for sccs change.
17995
17996 2010-07-22  Martin Jambor  <mjambor@suse.cz>
17997
17998         PR tree-optimization/44891
17999         * tree-sra.c: Include gimple-pretty-print.h.
18000         (replace_uses_with_default_def_ssa_name): Renamed to
18001         get_repl_default_def_ssa_name, return the new SSA name instead of
18002         replacing the old one.
18003         (sra_modify_assign): Dump a message when removing a load, if the LHS
18004         is an SSA_NAME, do not do any propagation, just set the RHS to a
18005         default definition SSA NAME, type convert if necessary.
18006         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18007
18008 2010-07-22  Richard Guenther  <rguenther@suse.de>
18009
18010         PR tree-optimization/45017
18011         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18012         TYPE_PRECISION of integral types in addition to size.
18013
18014 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18015
18016         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18017         when no C library is specified.
18018
18019 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18020
18021         * ipa-prop.h (struct ipa_node_params): Updated comment.
18022         (struct ipa_edge_args): Likewise.
18023         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18024
18025 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18026
18027         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18028         (verify_cgraph_node): Verify frequencies of indirect edges.
18029         * tree-inline.c (tree_function_versioning): Update frequencies of
18030         indirect edges.
18031
18032 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18033
18034         PR target/43698
18035         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18036         Set *arm_rev to be predicable.
18037
18038 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18039
18040         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18041         (LINK_COMMAND_SPEC_A): New.
18042         (DSYMUTIL): New.
18043         (DSYMUTIL_SPEC): New.
18044         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18045         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18046
18047 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18048
18049         * calls.c (load_register_parameters): Move check for zero
18050         sized items so that only the call to
18051         mem_overlaps_already_clobbered_arg_p () is protected.
18052
18053 2010-07-22  Jan Hubicka  <jh@suse.cz>
18054
18055         * ipa-pure-const.c (varying_state): Break out from ...
18056         (get_function_state): ... here; always return varying_state
18057         when state would be NULL otherwise.
18058         (remove_node_data): Do not free varying state.
18059
18060 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18061
18062         PR bootstrap/44970
18063         PR middle-end/45009
18064         * postreload.c: Include "target.h".
18065         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18066         into account.
18067         (fixup_debug_insns): Don't copy the rtx.
18068         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18069         Don't copy when replacing.  Call fixup_debug_insns in the case where
18070         we merged one add with another.
18071         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18072         Try harder to determine whether we're picking a valid index register.
18073         Don't set store_ruid for an insn we're going to scan in the
18074         next iteration.
18075         (reload_combine): Remove unused code.
18076         (reload_combine_note_use): When updating use information for
18077         an old insn, ignore a use that occurs after store_ruid.
18078         * Makefile.in (postreload.o): Update dependencies.
18079
18080         * function.c (record_hard_reg_sets): Restrict the previous change
18081         to cases where the incoming nominal mode is the same as the
18082         incoming promoted mode and everything happens in MODE_INT.
18083
18084 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18085
18086         PR debug/45015
18087         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18088         ASM_OPERANDS_OUTPUT_IDX.
18089         (adjust_insn): For inline asm with multiple sets ensure first
18090         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18091         the insn.
18092
18093 2010-07-21  Richard Henderson  <rth@redhat.com>
18094
18095         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18096         comparison for avoiding xmm register saves.  Emit the xmm register
18097         saves explicitly.
18098         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18099         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18100         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18101         Remove patterns and the associated splitters.
18102
18103 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18104
18105         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18106         and imagine parts of a complex, so that they can have the same
18107         base and fall into the same group.
18108
18109 2010-07-21  Richard Guenther  <rguenther@suse.de>
18110
18111         PR lto/45018
18112         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18113         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18114         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18115
18116 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18117
18118         PR tree-optimization/44900
18119         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18120         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18121
18122 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18123
18124         PR middle-end/44738
18125         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18126
18127 2010-07-21  Richard Guenther  <rguenther@suse.de>
18128
18129         PR middle-end/45013
18130         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18131         gimple_types_compatible_p only when in lto.
18132         * gimple.c (gimple_types_compatible_p): Use canonical types
18133         to speed up comparison.
18134
18135 2010-07-21  Richard Guenther  <rguenther@suse.de>
18136
18137         * tree-flow.h (referenced_var): Move define ...
18138         * tree-flow-inline.h (referenced_var): ... here as an inline
18139         function.  Assert here ...
18140         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18141         * tree-ssa.c (maybe_optimize_var): Check if the variable
18142         is in referenced vars.
18143         (execute_update_addresses_taken): Remove old broken check.
18144         * gimple-pretty-print.c (pp_points_to_solution): Use
18145         referenced_var_lookup.
18146         * tree-into-ssa.c (dump_decl_set): Likewise.
18147
18148 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18149
18150         PR debug/45003
18151         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18152         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18153         ZERO_EXTEND here.
18154
18155 2010-07-20  Richard Henderson  <rth@redhat.com>
18156
18157         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18158
18159 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18160
18161         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18162         computing the sum of the stack pointer and a large constant.
18163         * config/arm/constraints.md (M): Remove superfluous parentheses.
18164         (Pc): New constraint.
18165
18166 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18167
18168         PR debug/45006
18169         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18170         operand's type if exp is tcc_unary class tree.
18171
18172 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18173
18174         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18175         Reverse sense of if_then_else condition.
18176
18177 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18178
18179         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18180         * config/rs6000/rs6000.c (rs6000_override_options): Set
18181         rs6000_block_move_inline_limit appropriately.
18182         (expand_block_move): Use rs6000_block_move_inline_limit.
18183         * doc/invoke.texi (mblock-move-inline-limit): Document.
18184
18185 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18186
18187         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18188         FROM and TO.  All callers changed.  Don't look for tracked uses,
18189         just scan the RTL for DEBUG_INSNs and substitute.
18190         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18191         (reload_combine): Ignore DEBUG_INSNs.
18192
18193 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18194
18195         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18196         depth to 8 from 5.
18197
18198         PR debug/45003
18199         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18200         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18201         instead of the result's type.
18202
18203 2010-07-20  Richard Guenther  <rguenther@suse.de>
18204
18205         PR tree-optimization/44977
18206         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18207         SSA form.
18208
18209 2010-07-20  Richard Guenther  <rguenther@suse.de>
18210
18211         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18212         (lto_symtab_merge_decls_2): Likewise.
18213         * gimple.h (gimple_types_compatible_p): Declare.
18214         * gimple.c (gimple_queue_type_fixup): Remove.
18215         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18216         (gimple_compatible_complete_and_incomplete_type_p): New function.
18217         (gimple_types_compatible_p): Adjust.
18218         (gimple_register_type): Remove type fixup code.
18219         (print_gimple_types_stats): Adjust.
18220         (free_gimple_type_tables): Likewise.
18221         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18222         * tree-ssa.c (useless_type_conversion_p): Likewise.
18223
18224 2010-07-20  Richard Guenther  <rguenther@suse.de>
18225
18226         PR middle-end/44971
18227         PR middle-end/44988
18228         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18229         (execute_update_addresses_taken): ... here.
18230         (non_rewritable_mem_ref_base): Likewise.
18231         (execute_update_addresses_taken): Do not iterate over all referenced
18232         vars but just all local decls and parms.
18233         Properly check call and asm arguments and rewrite call arguments.
18234
18235 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18236
18237         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18238         to top level.
18239         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18240         definitions ...
18241         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18242         New macro.
18243         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18244
18245 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18246
18247         * gengtype.c (start_root_entry): New function, split out from
18248         write_root.  Check whether V is null and raise an error if so.
18249         (write_field_root): Check for V being null.  Don't raise an error here;
18250         set V to null instead.
18251         (write_root): Update comment above function.  Use start_root_entry.
18252
18253 2010-07-19  Xinliang David Li  <davidxl@google.com>
18254
18255         PR testsuite/44932
18256         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18257         def edges.
18258         (find_uninit_use): Add dump.
18259         (is_use_properly_guarded): Ditto.
18260         (warn_uninitialized_phi): Ditto.
18261         (execute_late_warn_uninitialized): Ditto.
18262
18263 2010-07-19  Richard Guenther  <rguenther@suse.de>
18264
18265         PR middle-end/44941
18266         * expr.c (emit_block_move_hints): Move zero size check first.
18267         Move asserts to more useful places.
18268         * calls.c (load_register_parameters): Check for zero size.
18269
18270 2010-07-19  Richard Henderson  <rth@redhat.com>
18271
18272         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18273         cgraph_state here ...
18274         (execute_early_local_optimizations): ... not here.  Remove.
18275         (pass_early_local_passes, pass_all_early_optimizations): Update.
18276
18277 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18278
18279         * postreload.c (reload_combine_closest_single_use): Ignore the
18280         number of uses for DEBUG_INSNs.
18281         (fixup_debug_insns): New static function.
18282         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18283         main loop be affected by DEBUG_INSNs.
18284         Really disallow moving adds past a jump insn.
18285         (reload_combine_recognize_pattern): Don't update use_ruid here.
18286         (reload_combine_note_use): Do it here.
18287         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18288
18289 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18290
18291         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18292         of a loop.
18293         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18294
18295 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18296
18297         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18298         (TARGET_MACHO_BRANCH_ISLANDS): New.
18299         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18300         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18301         default value.
18302         * config/i386/i386.c (output_pic_addr_const): Do not emit
18303         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18304         (x86_output_mi_thunk): Adjust symbol creation.
18305         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18306         Remove out of date comment.
18307         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18308         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18309         (DARWIN_GENERATE_ISLANDS): Ditto.
18310         (output_call):  Do not emit branch islands unless
18311         darwin_emit_branch_islands is set.
18312         * config/darwin.c: Declare darwin_emit_branch_islands.
18313         (machopic_indirect_data_reference): Do not emit unless
18314         darwin_emit_branch_islands is set.
18315         (darwin_override_options): Set darwin_emit_branch_islands
18316         where it is needed.
18317         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18318
18319 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18320
18321         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18322         sse_runtime, sse2_runtime.
18323
18324 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18325
18326         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18327         low half of a single-register SCmode return value before ORing
18328         it with the high half.
18329         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18330
18331 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18332
18333         PR target/44805
18334         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18335         on all targets.
18336
18337 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18338
18339         PR target/42235
18340         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18341         changed.  All callers changed.
18342         (move2add_use_add2_insn): Likewise.
18343         (move2add_use_add3_insn): Likewise.
18344         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18345         reload_combine.
18346         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18347         (last_jump_ruid): New static variable.
18348         (struct reg_use): New members CONTAINING_MEM and RUID.
18349         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18350         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18351         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18352         reload_combine_purge_reg_uses_after_ruid,
18353         reload_combine_recognize_const_pattern): New static functions.
18354         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18355         is true for our reg and that we have available index regs.
18356         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18357         callers changed.  Use them to initialize fields in struct reg_use.
18358         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18359         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18360         Call reload_combine_recognize_const_pattern.
18361         (reload_combine_note_store): Update REAL_STORE_RUID field.
18362
18363 2010-07-16  Jason Merrill  <jason@redhat.com>
18364
18365         * Makefile.in (opts-common.o): Depend on options.h.
18366
18367 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18368
18369         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18370         instead of build_function_type.
18371         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18372         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18373
18374 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18375
18376         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18377         do all the work.
18378         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18379         Don't force values into registers unnecessarily.
18380         (output_isel): Assert that we're not given conditions we can't handle.
18381         Delete corresponding code.
18382         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18383         scc_comparison_operator constraint.  Permit 0 for the consequent
18384         operand.  Permit any GPR for the alternative operand.
18385         (isel_unsigned_<mode>): Likewise.
18386
18387 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18388
18389         PR target/44942
18390         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18391         argument to const_tree.
18392         * config/i386/i386.c (function_arg_advance): If padding needs to be
18393         inserted before argument, increment cum->words by number of padding
18394         words as well.
18395         (contains_aligned_value_p): Change argument to const_tree.
18396         (ix86_function_arg_boundary): Change second argument to const_tree.
18397
18398 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18399
18400         PR target/42235
18401         * function.c (record_hard_reg_sets): New static function.
18402         (assign_parm_setup_reg): If an optab for extending exists and the
18403         generated code clobbbers no hard regs, emit the insn directly and
18404         create a REG_EQUIV note.
18405
18406 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18407
18408         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18409         TREE_CHAIN.
18410         * c-typeck.c (push_init_level): Likewise.
18411         (process_init_element): Likewise.
18412
18413 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18414
18415         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18416         (integer_three_node): Add.
18417         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18418         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18419         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18420         of call build_int_cst.
18421         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18422         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18423         (find_interesting_uses_address): Ditto.
18424         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18425         * tree-eh.c (lower_eh_constructs_2): Ditto.
18426         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18427         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18428         * expmed.c (expand_divmod): Ditto.
18429         * tree-mudflap.c (mx_register_decls): Ditto.
18430         * varasm.c (array_size_for_constructor): Ditto.
18431         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18432         * c-parser.c (c_parser_postfix_expression): Ditto.
18433
18434 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18435
18436         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18437         New static variables.
18438         (reload_combine_recognize_pattern): New static function, broken out
18439         of reload_combine.
18440         (reload_combine): Use it.  Only initialize first_index_reg and
18441         last_index_reg once.
18442
18443 2010-07-15  Richard Henderson  <rth@redhat.com>
18444
18445         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18446         when done.
18447
18448 2010-07-15  Jan Hubicka  <jh@suse.cz>
18449
18450         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18451         comdats for broken gold.
18452         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18453
18454 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18455
18456         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18457
18458 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18459
18460         * tree.h (DECL_CHAIN): Define.
18461         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18462         * c-decl.c: Likewise.
18463         * c-parser.c: Likewise.
18464         * c-typeck.c: Likewise.
18465         * cfgexpand.c: Likewise.
18466         * cgraph.c: Likewise.
18467         * cgraphunit.c: Likewise.
18468         * combine.c: Likewise.
18469         * config/alpha/alpha.c: Likewise.
18470         * config/arm/arm.c: Likewise.
18471         * config/frv/frv.c: Likewise.
18472         * config/i386/i386.c: Likewise.
18473         * config/i386/winnt-cxx.c: Likewise.
18474         * config/ia64/ia64.c: Likewise.
18475         * config/iq2000/iq2000.c: Likewise.
18476         * config/mep/mep.c: Likewise.
18477         * config/mips/mips.c: Likewise.
18478         * config/pa/som.h: Likewise.
18479         * config/rs6000/rs6000.c: Likewise.
18480         * config/s390/s390.c: Likewise.
18481         * config/sh/sh.c: Likewise.
18482         * config/sh/symbian-cxx.c: Likewise.
18483         * config/sparc/sparc.c: Likewise.
18484         * config/spu/spu.c: Likewise.
18485         * config/stormy16/stormy16.c: Likewise.
18486         * config/vxworks.c: Likewise.
18487         * config/xtensa/xtensa.c: Likewise.
18488         * coverage.c: Likewise.
18489         * dbxout.c: Likewise.
18490         * dwarf2out.c: Likewise.
18491         * emit-rtl.c: Likewise.
18492         * expr.c: Likewise.
18493         * function.c: Likewise.
18494         * gimple-low.c: Likewise.
18495         * gimple-pretty-print.c: Likewise.
18496         * gimplify.c: Likewise.
18497         * integrate.c: Likewise.
18498         * ipa-inline.c: Likewise.
18499         * ipa-prop.c: Likewise.
18500         * ipa-split.c: Likewise.
18501         * ipa-struct-reorg.c: Likewise.
18502         * ipa-type-escape.c: Likewise.
18503         * langhooks.c: Likewise.
18504         * lto-cgraph.c: Likewise.
18505         * omp-low.c: Likewise.
18506         * stor-layout.c: Likewise.
18507         * tree-cfg.c: Likewise.
18508         * tree-complex.c: Likewise.
18509         * tree-dfa.c: Likewise.
18510         * tree-dump.c: Likewise.
18511         * tree-inline.c: Likewise.
18512         * tree-mudflap.c: Likewise.
18513         * tree-nested.c: Likewise.
18514         * tree-object-size.c: Likewise.
18515         * tree-pretty-print.c: Likewise.
18516         * tree-sra.c: Likewise.
18517         * tree-ssa-live.c: Likewise.
18518         * tree-ssa-loop-niter.c: Likewise.
18519         * tree-ssa-math-opts.c: Likewise.
18520         * tree-ssa-reassoc.c: Likewise.
18521         * tree-ssa-sccvn.c: Likewise.
18522         * tree-ssa-structalias.c: Likewise.
18523         * tree-tailcall.c: Likewise.
18524         * tree-vrp.c: Likewise.
18525         * tree.c: Likewise.
18526         * var-tracking.c: Likewise.
18527         * varasm.c: Likewise.
18528
18529 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18530
18531         PR target/44877
18532         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18533         (as well as pointers) as argument to mask_for_load builtins.
18534
18535 2010-07-15  Richard Guenther  <rguenther@suse.de>
18536
18537         PR tree-optimization/44946
18538         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18539         with accessing only padding properly.
18540
18541 2010-07-15  Jan Hubicka  <jh@suse.cz>
18542
18543         * ipa.c (function_and_variable_visibility): Variables marked as used
18544         should not be localized.
18545
18546 2010-07-15  Jan Hubicka  <jh@suse.cz>
18547
18548         * cgraph.c: Include lto-streamer.h
18549         (change_decl_assembler_name): Work when assembler name hash is at place.
18550         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18551         be sure to rename it to avoid name clash.
18552         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18553         Localize hidden symbols only when locally defined.
18554
18555 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18556
18557         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18558
18559 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18560             Kevin F. Quinn  <kevquinn@gentoo.org>
18561
18562         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18563         * common.opt: Add -Wtrampolines.
18564         * doc/invoke.texi: Add -Wtrampolines.
18565
18566 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18567
18568         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18569         cortex_a8_issue_ls.
18570
18571 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18572
18573         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18574         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18575
18576 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18577
18578         * config/spu/spu.c (reg_names): Remove prototype.
18579         (call_used_regs): Likewise.
18580
18581 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18582
18583         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18584         "unused" with attribute "used".
18585         (__JCR_END__): Likewise.
18586         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18587         "used" attribute.
18588         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18589
18590 2010-07-14  Richard Guenther  <rguenther@suse.de>
18591
18592         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18593         (maybe_fixup_decls): Likewise.
18594         (input_gimple_stmt): Do not fixup anything.
18595         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18596         non-automatic variable uses are wrapped inside a MEM_REF.
18597
18598 2010-07-14  Richard Henderson  <rth@redhat.com>
18599
18600         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18601         for functions.
18602         * varasm.c (assemble_variable): Remove early exit for functions;
18603         assert that we're given a variable.
18604
18605 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18606
18607         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18608         cortex_a8_default when neon_type is not none.
18609
18610 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18611
18612         * lower-subreg.c (subreg_context): New static bitmap.
18613         (decompose_multiword_subregs): Allocate and free it.
18614         (find_decomposable_subregs): Set a bit in it for a register that
18615         occurs in a subreg that changes mode but not size.
18616         (can_decompose_p): Test it instead of non_decomposable_context.
18617
18618 2010-07-14  Richard Guenther  <rguenther@suse.de>
18619
18620         PR tree-optimization/44824
18621         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18622         is_gimple_mem_ref_addr.
18623         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18624         non-decl_address_invariant_p addresses.
18625
18626 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18627
18628         * reload.c (find_reloads): Revert code to penalize small register
18629         classes that was brought in with the IRA merge.
18630
18631 2010-07-14  Richard Guenther  <rguenther@suse.de>
18632
18633         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18634         as base of ARRAY_REFs.
18635
18636 2010-07-14  Richard Guenther  <rguenther@suse.de>
18637
18638         PR middle-end/44930
18639         * tree-pretty-print.c (do_niy): Do not print a newline.
18640
18641 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18642
18643         * ira-int.h (struct ira_object): New.
18644         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18645         (struct ira_allocno): Remove members min, max,
18646         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18647         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18648         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18649         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18650         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18651         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18652         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18653         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18654         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18655         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18656         an ira_object_t rather than ira_allocno_t.  All uses changed.
18657         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18658         contains a vector of ira_object_t; all uses changed.
18659         (ira_objects_num): Declare variable.
18660         (ira_create_allocno_object): Declare function.
18661         (ira_conflict_vector_profitable_p): Adjust prototype.
18662         (ira_allocate_conflict_vec): Renamed from
18663         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18664         (ira_allocate_object_conflicts): Renamed from
18665         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18666         (struct ira_object_iterator): New.
18667         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18668         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18669         to conflict_vec_p.  All uses changed.
18670         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18671         Changed to take into account that conflicts are now tracked for
18672         objects.
18673         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18674         Args changed to accept ira_object_t.  All uses changed.
18675         (allocnos_conflict_p): New static function.
18676         (collected_conflict_objects): Renamed from collected_allocno_objects;
18677         now a vector of ira_object_t.  All uses changed.
18678         (build_conflict_bit_table): Changed to take into account that
18679         conflicts are now tracked for objects.
18680         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18681         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18682         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18683         setup_allocno_left_conflicts_size, allocno_reload_assign,
18684         fast_allocation): Likewise.
18685         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18686         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18687         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18688         Likewise.
18689         * ira-build.c (ira_objects_num): New variable.
18690         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18691         contains a vector of ira_object_t; all uses changed.
18692         (ira_object_id_map_vec): Corresponding change.
18693         (object_pool): New static variable.
18694         (initiate_allocnos): Initialize it.
18695         (finish_allocnos): Free it.
18696         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18697         New functions.
18698         (ira_create_allocno): Don't set members that were removed.
18699         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18700         (merge_hard_reg_conflicts): Changed to take into account that
18701         conflicts are now tracked for objects.
18702         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18703         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18704         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18705         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18706         setup_min_max_conflict_allocno_ids, ):  Likewise.
18707         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18708         to ira_object_t; all callers changed.
18709         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18710         to ira_object_t, all callers changed.
18711         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18712         to ira_object_t, all callers changed.
18713         (conflict_check, curr_conflict_check_tick): Renamed from
18714         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18715         changed.
18716         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18717         arg changed to ira_object_t, all callers changed.
18718         (create_cap_allocno): Call ira_create_allocno_object.
18719         (finish_allocno): Free the corresponding object.
18720         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18721         callers changed.  Adjusted for dealing with objects.
18722         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18723         dealing with objects.
18724         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18725
18726         * ira-int.h (struct live_range): Rename allocno member to object
18727         and change type to ira_object_t.
18728         (struct ira_object): New member live_ranges.
18729         (struct ira_allocno): Remove member live_ranges.
18730         (ALLOCNO_LIVE_RANGES): Remove.
18731         (OBJECT_LIVE_RANGES): New macro.
18732         (ira_create_live_range, ira_copy_live_range_list,
18733         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18734         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18735         * ira-build.c (ira_create_object): Initialize live ranges here.
18736         (ira_create_allocno): Not here.
18737         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18738         changed to ira_object_t, all callers changed.
18739         (copy_live_range): Rename from copy_allocno_live_range, all callers
18740         changed.
18741         (ira_copy_live_range_list): Rename from
18742         ira_copy_allocno_live_range_list, all callers changed.
18743         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18744         all callers changed.
18745         (ira_live_ranges_intersect_p): Rename from
18746         ira_allocno_live_ranges_intersect_p, all callers changed.
18747         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18748         callers changed.
18749         (ira_finish_live_range_list): Rename from
18750         ira_finish_allocno_live_range_list, all callers changed.
18751         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18752         last arg changed to ira_object_t, all callers changed.
18753         (finish_allocno): Changed to expect live ranges in the allocno's object.
18754         (move_allocno_live_ranges, copy_allocno_live_ranges,
18755         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18756         ira_flattening, ira_build): Likewise.
18757         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18758         slot_coalesced_allocno_live_ranges_intersect,
18759         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18760         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18761         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18762         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18763         make_allocno_dead, create_start_finish_chains,
18764         remove_some_program_points_and_update_live_ranges,
18765         ira_debug_live_range_list): Likewise.
18766
18767         * ira-int.h (ira_object_conflict_iterator): Rename from
18768         ira_allocno_conflict_iterator.
18769         (ira_object_conflict_iter_init): Rename from
18770         ira_allocno_conflict_iter_init, second arg changed to
18771         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18772         FOR_EACH_ALLOCNO_CONFLICT.
18773         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18774         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18775         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18776         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18777
18778 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18779
18780         PR other/44874
18781         * tree-dump.c (dump_options): Add enumerate_locals entry.
18782         Add TDF_NOID exclusion to all entry.
18783         * tree-dump.h (dump_enumerated_decls): Declare.
18784         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18785         Don't display type uid.
18786         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18787         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18788         * tree-ssa-live.c: Include gimple.h.
18789         (numbered_tree_d): New struct.
18790         (numbered_tree): New typedef.
18791         (DEF_VEC_O (numbered_tree): New.
18792         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18793         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18794         (dump_enumerated_decls): Likewise.
18795         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18796         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18797         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18798         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18799
18800 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18801
18802         * expmed.h (MAX_BITS_PER_WORD): Move to...
18803         * defaults.h (MAX_BITS_PER_WORD): ...here.
18804
18805 2010-07-13  DJ Delorie  <dj@redhat.com>
18806
18807         * config/h8300/h8300.c (h8300_init_once): Default to
18808         -fstrict_volatile_bitfields.
18809
18810         * config/sh/sh.c (sh_override_options): Default to
18811         -fstrict_volatile_bitfields.
18812
18813         * config/rx/rx.c (rx_option_override): New.
18814
18815         * config/m32c/m32c.c (m32c_override_options): Default to
18816         -fstrict_volatile_bitfields.
18817
18818 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18819
18820         * tree.h (build_function_call_expr): Delete.
18821         (build_call_expr_loc_array): New function.
18822         (build_call_expr_loc_vec): New function.
18823         * tree-flow.h (struct omp_region): Change type of ws_args field
18824         to a VEC.
18825         * builtins.c (build_function_call_expr): Delete.
18826         (build_call_expr_loc_array): New function.
18827         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18828         (build_call_expr): Likewise.
18829         (build_call_expr_loc_vec): New function.
18830         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18831         build_function_call_expr.
18832         * expr.c (emutls_var_address): Likewise.
18833         * varasm.c (emutls_common_1): Likewise.
18834         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18835         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18836         (get_ws_args_for): Return a VEC instead of a tree.
18837         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18838         build_function_call_expr.
18839         * stor-layout.c (self_referential_size): Likewise.
18840
18841 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18842
18843         PR testsuite/44701
18844         * recog.c (constrain_operands): Allow side-effects in memory
18845         operands if either < or > constraint is used, rather than if
18846         both < and > is used.
18847
18848 2010-07-13  Richard Guenther  <rguenther@suse.de>
18849
18850         PR middle-end/44911
18851         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18852         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18853         without name.
18854
18855 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18856
18857         PR target/44761
18858         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18859         to variable emited.
18860         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18861         * config/sh/sh.md (symGOT_load): Likewise.
18862         (symDTPOFF2reg): Likewise.
18863         (symTPOFF2reg): Likewise.
18864
18865 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18866
18867         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18868         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18869
18870 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18871
18872         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18873         explanation.
18874         Find ucontext_t * on Solaris 11.
18875         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18876         Handle new Solaris 11 __sighndlr patterns.
18877
18878 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18879
18880         PR debug/44901
18881         * vec.h (VEC_block_remove): Fix comment.
18882         * tree-ssa-live.c (remove_unused_locals): Don't use
18883         VEC_unordered_remove on local_decls, instead replace a single
18884         vector element in each iteration if at least one element had
18885         to be removed and VEC_truncate at the end.
18886         * omp-low.c (expand_omp_taskreg): Likewise.
18887
18888 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18889
18890         * c-decl.c (finish_function): Fix typo in comment.
18891
18892 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18893
18894         PR bootstrap/44921
18895         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18896         on min_regno.
18897
18898 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18899
18900         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18901         (simplify_stmt_using_ranges): Use it.
18902
18903 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18904
18905         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18906         member.  Do not mark as GTY(()).
18907         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18908         (spu_builtin_decls): New static variable.
18909         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18910         (spu_init_builtins): Likewise.
18911         (spu_builtin_mul_widen_even): Likewise.
18912         (spu_builtin_mul_widen_odd): Likewise.
18913         (spu_builtin_mask_for_load): Likewise.
18914         (spu_builtin_vec_perm): Likewise.
18915         * config/spu/spu-c.c: Include "target.h".
18916         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18917         of using spu_builtins[].fndecl.
18918
18919 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18920
18921         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18922         imply -minterlink-mips16.
18923
18924 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18925
18926         * config/mips/mips.h (mips16_globals): Declare.
18927         (SWITCHABLE_TARGET): Define.
18928         * config/mips/mips.c: Include target-globals.h.
18929         (mips16_globals): New variable.
18930         (mips_set_mips16_mode): Use save_target_globals and
18931         restore_target_globals instead of target_reinit.
18932
18933 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18934
18935         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18936         to say that the function can be called more than once.
18937         * target-globals.c (save_target_globals): Call init_reg_sets.
18938
18939 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18940
18941         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18942         * bb-reorder.h: New file.
18943         * bb-reorder.c (default_target_bb_reorder): New variable.
18944         (this_target_bb_reorder): New conditional variable.
18945         (uncond_jump_length): Redefine as a macro.
18946         * target-globals.h (this_target_bb_reorder): Declare.
18947         (target_globals): Add a bb_reorder field.
18948         (restore_target_globals): Copy the bb_reorder field to
18949         this_target_bb-reorder.
18950         * target-globals.c: Include bb-reorder.h.
18951         (default_target_globals): Initialize the bb_reorder field.
18952         (save_target_globals): Likewise.
18953
18954 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18955
18956         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18957         * gcse.h: New file.
18958         * gcse.c: Include gcse.h.
18959         (default_target_gcse): New variable.
18960         (this_target_gcse): New conditional variable.
18961         (can_copy): Redefine as a macro.
18962         (can_copy_init_p): New macro.
18963         (can_copy_p): Remove can_copy_init_p.
18964         * target-globals.h (this_target_gcse): Declare.
18965         (target_globals): Add a gcse field.
18966         (restore_target_globals): Copy the gcse field to this_target_gcse.
18967         * target-globals.c: Include gcse.h.
18968         (default_target_globals): Initialize the gcse field.
18969         (save_target_globals): Likewise.
18970
18971 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18972
18973         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18974         and x_ira_prohibited_mode_move_regs_initialized_p.
18975         (ira_prohibited_mode_move_regs): Redefine as a macro.
18976         * ira.c (ira_prohibited_mode_move_regs): Delete.
18977         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18978
18979 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18980
18981         * reload.h (target_reload): Add x_cached_reg_save_code and
18982         x_cached_reg_restore_code.
18983         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18984         Redefine as macros.
18985
18986 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18987
18988         * Makefile.in (target-globals.o): Depend on builtins.h.
18989         * builtins.h: New file.
18990         * builtins.c: Include builtins.h.
18991         (default_target_builtins): New variable.
18992         (this_target_builtins): New conditional variable.
18993         (apply_args_mode, apply_result_mode): Redefine as macros.
18994         * target-globals.h (this_target_builtins): Declare.
18995         (target_globals): Add a builtins field.
18996         (restore_target_globals): Copy the builtins field to
18997         this_target_builtins.
18998         * target-globals.c: Include builtins.h.
18999         (default_target_globals): Initialize the builtins field.
19000         (save_target_globals): Likewise.
19001
19002 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19003
19004         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19005         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19006         from expmed.c.
19007         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19008         (alg_hash, alg_hash_used_p): New macros.
19009         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19010         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19011         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19012
19013 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19014
19015         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19016         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19017         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19018         (this_op_costs, costs_classes): Redefine as macros.
19019         (record_reg_classes): Don't take op_costs as a parameter.
19020         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19021         (scan_one_insn): Update call to record_operand_costs.
19022
19023 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19024
19025         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19026         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19027         (target_ira_int): New structure.
19028         (default_target_ira_int): Declare.
19029         (this_target_ira_int): Declare as a variable or define as a macro.
19030         (ira_reg_mode_hard_regset, ira_register_move_cost)
19031         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19032         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19033         (prohibited_class_mode_regs, ira_important_classes_num)
19034         (ira_important_classes, ira_reg_class_intersect)
19035         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19036         (ira_reg_class_union): Redefine as macros.
19037         * ira.h (target_ira): New structure.
19038         (default_target_ira): Declare.
19039         (this_target_ira): Declare as a variable or define as a macro.
19040         (ira_available_class_regs, ira_hard_regno_cover_class)
19041         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19042         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19043         (ira_class_hard_regs_num): Redefine as macros.
19044         * ira.c (default_target_ira, default_target_ira_int): New variables.
19045         (this_target_ira, this_target_ira_int): New conditional variables.
19046         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19047         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19048         (ira_class_subset_p): Delete.
19049         (no_unit_alloc_regs): Redefine as a macro.
19050         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19051         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19052         (ira_available_class_regs): Delete.
19053         (alloc_reg_class_subclasses): Redefine as a macro.
19054         (ira_reg_class_cover_size, ira_reg_class_cover)
19055         (ira_important_classes_num, ira_important_classes)
19056         (ira_important_class_nums, ira_class_translate): Delete.
19057         (cover_class_order): Document the variable's lifetime.
19058         (reorder_important_classes): Don't set ira_important_class_nums.
19059         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19060         (ira_reg_class_super_classes, ira_reg_class_union)
19061         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19062         Delete.
19063         (setup_reg_class_nregs): Don't set ira_max_regs.
19064         (prohibited_class_mode_regs): Delete.
19065         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19066         (target_globals): Add ira and ira_int fields.
19067         (restore_target_globals): Copy the ira field to this_target_ira
19068         and the ira_int field to this_target_ira_int.
19069         * target-globals.c: Include ira-int.h.
19070         (default_target_globals): Initialize the ira and ira_int fields.
19071         (save_target_globals): Likewise.
19072
19073 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19074
19075         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19076         * cfgloop.h (target_cfgloop): New structure.
19077         (default_target_cfgloop): Declare.
19078         (this_target_cfgloop): Declare as a variable or define as a macro.
19079         (target_avail_regs, target_clobbered_regs, target_res_regs)
19080         (target_reg_cost, target_spill_cost): Redefine as macros.
19081         * cfgloopanal.c (default_target_cfgloop): New variable.
19082         (this_target_cfgloop): New conditional variable.
19083         (target_avail_regs, target_clobbered_regs, target_res_regs)
19084         (target_reg_cost, target_spill_cost): Delete.
19085         * target-globals.h (this_target_cfgloop): Declare.
19086         (target_globals): Add a cfgloop field.
19087         (restore_target_globals): Copy the cfgloop field to
19088         this_target_cfgloop.
19089         * target-globals.c: Include cfgloop.h.
19090         (default_target_globals): Initialize the cfgloop field.
19091         (save_target_globals): Likewise.
19092
19093 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19094
19095         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19096         x_float_extend_from_mem.
19097         (direct_load, direct_store, float_extend_from_mem): New macros.
19098         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19099
19100 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19101
19102         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19103         (target-globals.o): Depend on $(LIBFUNCS_H).
19104         * libfuncs.h: Include hashtab.h.
19105         (libfunc_entry): Moved from optabs.c.
19106         (target_libfuncs): New structure.
19107         (default_target_libfuncs): Declare.
19108         (this_target_libfuncs): Declare as a variable or define as a macro.
19109         (libfunc_table): Redefine as a macro.
19110         * optabs.c (default_target_libfuncs): New variable.
19111         (this_target_libfuncs): New conditional variable.
19112         (libfunc_table): Delete.
19113         (libfunc_entry): Moved to optabs.h.
19114         (libfunc_hash): Redefine as a macro.
19115         (hash_libfunc, eq_libfunc): Fix comments.
19116         (init_optabs): Use libfunc_hash to detect cases where the function
19117         has already been called.  Clear the hash table instead of
19118         recreating it.
19119         * target-globals.h (this_target_libfuncs): Declare.
19120         (target_globals): Add a libfuncs field.
19121         (restore_target_globals): Copy the libfuncs field to
19122         this_target_libfuncs.
19123         * target-globals.c: Include libfuncs.h.
19124         (default_target_globals): Initialize the libfuncs field.
19125         (save_target_globals): Likewise.
19126
19127 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19128
19129         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19130         in all dependency lists.
19131
19132 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19133
19134         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19135         * optabs.h (target_optabs): New structure.
19136         (default_target_optabs): Declare.
19137         (this_target_optabs): Declare as a variable or define as a macro.
19138         (optab_table, convert_optab_table, direct_optab_table): Redefine
19139         as macros.
19140         * optabs.c (default_target_optabs): New variable.
19141         (this_target_optabs): New conditional variable.
19142         (optab_table, convert_optab_table, direct_optab_table): Delete.
19143         * target-globals.h (this_target_optabs): Declare.
19144         (target_globals): Add a optabs field.
19145         (restore_target_globals): Copy the optabs field to
19146         this_target_optabs.
19147         * target-globals.c: Include expr.h and optabs.h.
19148         (default_target_globals): Initialize the optabs field.
19149         (save_target_globals): Likewise.
19150
19151 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19152
19153         * flags.h (target_flagstate): Add x_flag_excess_precision.
19154         (flag_excess_precision): Redefine as a macro.
19155         * toplev.c (flag_excess_precision): Delete.
19156
19157 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19158
19159         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19160         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19161         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19162         (no_caller_save_reg_set): Redefine as a macro.
19163         * reload.h (target_reload): Add x_caller_save_initialized_p and
19164         x_regno_save_mode.
19165         (caller_save_initialized_p): Redefine as a macro.
19166         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19167         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19168         (regno_save_mode): Redefine as a macro.
19169
19170 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19171
19172         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19173         * expmed.h: New file.
19174         * expmed.c (default_target_costs): New variable.
19175         (this_target_costs): New conditional variable.
19176         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19177         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19178         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19179         * target-globals.h (this_target_expmed): Declare.
19180         (target_globals): Add a expmed field.
19181         (restore_target_globals): Copy the expmed field to
19182         this_target_expmed.
19183         * target-globals.c: Include expmed.h.
19184         (default_target_globals): Initialize the expmed field.
19185         (save_target_globals): Likewise.
19186
19187 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19188
19189         * Makefile.in (target-globals.o): Depend on reload.h.
19190         * reload.h (target_reload): New structure.
19191         (default_target_reload): Declare.
19192         (this_target_reload): Declare as a variable or define as a macro.
19193         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19194         * reload1.c (default_target_reload): New variable
19195         (this_target_reload): New conditional variable.
19196         (indirect_symref_ok, double_reg_address_ok): Delete.
19197         (spill_indirect_levels): Redefine as a macro.
19198         * target-globals.h (this_target_reload): Declare.
19199         (target_globals): Add a reload field.
19200         (restore_target_globals): Copy the reload field to
19201         this_target_reload.
19202         * target-globals.c: Include hard-reg-set.h.
19203         (default_target_globals): Initialize the reload field.
19204         (save_target_globals): Likewise.
19205
19206 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19207
19208         * rtl.h (target_rtl): Add x_static_reg_base_value.
19209         * alias.c (static_reg_base_value): Redefine as a macro.
19210
19211 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19212
19213         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19214         (GTFILES): Remove reginfo.c.
19215         * rtl.h (target_rtl): Add x_top_of_stack.
19216         (top_of_stack): New macro.
19217         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19218         (top_of_stack): Delete.
19219
19220 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19221
19222         * regs.h (target_regs): Add x_hard_regs_of_mode,
19223         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19224         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19225         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19226         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19227         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19228         (may_move_in_cost, may_move_out_cost): Delete.
19229         (last_mode_for_init_move_cost): Redefine as a macro.
19230
19231 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19232
19233         * hard-reg-set.h (target_hard_regs): New structure.
19234         (default_target_hard_regs): Declare.
19235         (this_target_hard_regs): Declare as a variable or define as a macro.
19236         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19237         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19238         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19239         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19240         (reg_class_superunion, reg_names): Redefine as macros.
19241         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19242         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19243         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19244         (reg_class_contents, reg_class_size, reg_class_subclasses)
19245         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19246         (default_target_hard_regs): New variable
19247         (this_target_hard_regs, initial_call_really_used_regs)
19248         (initial_reg_alloc_order): New conditional variables.
19249         (initial_reg_names): New variable.
19250         (init_reg_sets): Assert that initial_call_really_used_regs,
19251         initial_reg_alloc_order and initial_reg_names
19252         are all the same size as their variable counterparts.  Use them to
19253         initialize those counterparts.
19254         * target-globals.h (this_target_hard_regs): Declare.
19255         (target_globals): Add a hard_regs field.
19256         (restore_target_globals): Copy the hard_regs field to
19257         this_target_hard_regs.
19258         * target-globals.c: Include hard-reg-set.h.
19259         (default_target_globals): Initialize the hard_regs field.
19260         (save_target_globals): Likewise.
19261
19262 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19263
19264         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19265         * rtl.h (target_rtl): New structure.
19266         (default_target_rtl): Declare.
19267         (this_target_rtl): Declare as a variable or define as a macro.
19268         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19269         Redefine as macros.
19270         * emit-rtl.c (default_target_rtl): New variable.
19271         (this_target_rtl): New conditional variable.
19272         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19273         (return_address_pointer_rtx): Delete.
19274         (initial_regno_reg_rtx): New macro.
19275         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19276         (init_emit_regs): Likewise.
19277         * target-globals.h (this_target_rtl): Declare.
19278         (target_globals): Add a rtl field.
19279         (restore_target_globals): Copy the rtl field to this_target_rtl.
19280         * target-globals.c: Include rtl.h.
19281         (default_target_globals): Initialize the rtl field.
19282         (save_target_globals): Likewise.
19283
19284 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19285
19286         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19287         * regs.h (target_reg_modes): New structure.
19288         (default_target_reg_modes): Declare.
19289         (this_target_reg_modes): Declare as a variable or define as a macro.
19290         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19291         * reginfo.c (default_target_reg_modes): New variable.
19292         (this_target_reg_modes): New conditional variable.
19293         (hard_regno_nregs, reg_raw_mode): Delete.
19294         * target-globals.h (this_target_regs): Declare.
19295         (target_globals): Add a regs field.
19296         (restore_target_globals): Copy the regs field to this_target_regs.
19297         * target-globals.c: Include regs.h.
19298         (default_target_globals): Initialize the regs field.
19299         (save_target_globals): Likewise.
19300
19301 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19302
19303         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19304         * doc/tm.texi: Regenerate.
19305         * Makefile.in (OBJS-common): Add target-globals.o.
19306         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19307         and target-globals.h.
19308         (target-globals.o): New rule.
19309         (GTFILES): Include $(srcdir)/target-globals.h.
19310         * defaults.h (SWITCHABLE_TARGET): Define.
19311         * gengtype.c (open_base_files): Add target-globals.h to the
19312         list of includes.
19313         * target-globals.h: New file.
19314         * target-globals.c: Likewise.
19315
19316         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19317         * flags.h (target_flag_state): New structure.
19318         (default_target_flag_state): Declare.
19319         (this_target_flag_state): Declare as a variable or define as a macro.
19320         (align_loops_log): Redefine as a macro.
19321         (align_loops_max_skip, align_jumps_log): Likewise.
19322         (align_jumps_max_skip, align_labels_log): Likewise.
19323         (align_labels_max_skip, align_functions_log): Likewise.
19324         * toplev.c (default_target_flag_state): New variable.
19325         (this_target_flag_state): New conditional variable.
19326         (align_loops_log): Delete.
19327         (align_loops_max_skip, align_jumps_log): Likewise.
19328         (align_jumps_max_skip, align_labels_log): Likewise.
19329         (align_labels_max_skip, align_functions_log): Likewise.
19330         * target-globals.h (this_target_flag_state): Declare.
19331         (target_globals): Add a flag_state field.
19332         (restore_target_globals): Copy the flag_state field to
19333         this_target_flag_state.
19334         * target-globals.c: Include flags.h.
19335         (default_target_globals): Initialize the flag_state field.
19336         (save_target_globals): Likewise.
19337
19338 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19339
19340         * postreload.c (reg_symbol_ref[]): New.
19341         (move2add_use_add2_insn): New.
19342         (move2add_use_add3_insn): New.
19343         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19344         (move2add_note_store): Likewise.
19345
19346 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19347
19348         PR rtl-optimization/44752
19349         * genautomata.c (main): Don't emit an empty file even if there
19350         is no automaton.
19351
19352 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19353
19354         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19355         ix86_solaris_return_in_memory.
19356         * config/i386-protos.h: Reflect this.
19357         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19358         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19359         Move ...
19360         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19361
19362 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19363
19364         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19365         align the stack when it's going to be saved.
19366
19367 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19368
19369         PR pch/14940
19370         * config/host-solaris.c (mmap_fixed): New function.
19371         (sol_gt_pch_get_address): Use it.
19372         (sol_gt_pch_use_address): Likewise.
19373
19374 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19375
19376         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19377         pentiumpro on Solaris 8 and 9/x86.
19378         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19379         Document SSE/SSE2 support.
19380         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19381
19382 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19383
19384         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19385         instead of gcc_assert to print better error message for multiple
19386         prevailing defs.
19387
19388 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19389
19390         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19391         string placeholder from 0x%x to %#x.
19392         (ix86_code_end): Use putc to output '\n'.
19393         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19394
19395 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19396
19397         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19398         in directive -export.
19399
19400 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19401
19402         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19403         reg_class_t.
19404         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19405
19406         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19407         Remove macros.
19408         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19409         rs6000_memory_move_cost): Remove
19410         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19411         TARGET_MEMORY_MOVE_COST): Define.
19412         (rs6000_register_move_cost): Make static. Change arguments type from
19413         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19414         (rs6000_memory_move_cost): Make static. Change arguments type from
19415         'enum reg_class' to reg_class_t.
19416
19417 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19418
19419         PR middle-end/42505
19420         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19421         lookup code into....
19422         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19423         new functions.
19424         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19425         * cfgloopanal.c (target_clobbered_regs): Define.
19426         (init_set_costs): Initialize target_clobbered_regs.
19427         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19428         adjust the number of available registers to exclude the
19429         call-clobbered registers.
19430         * cfgloop.h (target_clobbered_regs): Declare.
19431         (estimate_reg_pressure_cost): Adjust declaration.
19432         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19433         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19434         (determine_set_costs): Dump target_clobbered_regs.
19435         (loop_body_includes_call): New function.
19436         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19437         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19438         call_p flag through.
19439         (best_gain_for_invariant): Likewise.
19440         (find_invariants_to_move): Likewise.
19441         (move_single_loop_invariants): Likewise, using already-computed
19442         has_call field.
19443
19444 2010-07-10  Richard Guenther  <rguenther@suse.de>
19445             Joern Rennecke  <joern.rennecke@embecosm.com>
19446
19447         PR debug/44832
19448         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19449         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19450         unless they have DECL_IGNORED_P set.
19451
19452 2010-07-10  Richard Guenther  <rguenther@suse.de>
19453
19454         PR lto/44889
19455         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19456         helper function.
19457         (gimple_types_compatible_p): Similar to pointed-to
19458         types allow and merge a mix of complete and incomplete aggregate.
19459         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19460         (iterative_hash_gimple_type): Adjust for that.
19461
19462 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19463
19464         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19465
19466 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19467
19468         PR objc/44140
19469         * config/darwin.c (output_objc_section_asm_op): Save and restore
19470         section when outputting ObjC section list.
19471
19472 2010-07-09  Jan Hubicka  <jh@suse.cz>
19473
19474         * lto-streamer-out.c (produce_symtab): Do not write alias
19475         cgraph/varpool nodes.
19476
19477 2010-07-09  Jan Hubicka  <jh@suse.cz>
19478
19479         * tree-inline.c (declare_return_variable): Fix ICE while
19480         inlining DECL_BY_VALUE function not in SSA form
19481
19482 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19483
19484         PR tree-optimization/44576
19485         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19486         New.  Pull out from is_loop_prefetching_profitable to implement
19487         the trip count to ahead ratio heuristic.
19488         (mem_ref_count_reasonable_p): New.  Pull out from
19489         is_loop_prefetching_profitable to implement the instruction to
19490         memory reference ratio heuristic.  Also consider not reasonable if
19491         the memory reference count is above a threshold (to avoid
19492         explosive compilation time.
19493         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19494         is_loop_prefetching_profitable to implement the instruction to
19495         prefetch ratio heuristic.
19496         (is_loop_prefetching_profitable): Removed.
19497         (loop_prefetch_arrays): Distribute the cost analysis across the
19498         function to allow early exit of the prefetch analysis.
19499         is_loop_prefetching_profitable is splitted into three functions,
19500         with each one called as early as possible.
19501         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19502         number of memory references in a loop is considered too many.
19503
19504 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19505
19506         * reload.c (find_reloads): Don't clear badop if we have a winreg
19507         alternative, but not win, and the class only has fixed regs.
19508         * hard-reg-set.h (class_only_fixed_regs): Declare.
19509         * reginfo.c (class_only_fixed_regs): New array.
19510         (init_reg_sets_1): Initialize it.
19511         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19512         discourage alternatives using the stack pointer.
19513
19514         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19515
19516         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19517
19518         * config/arm/arm.md (cbranchqi4): Fix array size.
19519         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19520         calculating length.
19521
19522 2010-07-09  Richard Guenther  <rguenther@suse.de>
19523
19524         * gimple.c (struct type_fixup_s): New struct and VEC type.
19525         (gimple_register_type_fixups): New static global.
19526         (gimple_queue_type_fixup): New function.
19527         (gimple_types_compatible_p): Queue type fixups instead of
19528         applying them here.
19529         (gimple_register_type): Apply queued fixups for the
19530         canonical type.  Empty the type fixup queue.
19531
19532 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19533
19534         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19535         * configure: Regenerate.
19536         * config.in: Ditto.
19537
19538 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19539             Denys Vlasenko  <dvlasenk@redhat.com>
19540             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19541
19542         PR tree-optimization/28632
19543         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19544         (extract_range_from_binary_expr): Further optimize
19545         BIT_AND_EXPR and BIT_IOR_EXPR.
19546
19547 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19548
19549         * tree-if-conv.c (fold_or_predicates): New.
19550         (add_to_predicate_list): Call it.
19551
19552 2010-07-09  Richard Guenther  <rguenther@suse.de>
19553
19554         PR middle-end/44890
19555         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19556         if base is a pointer.
19557         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19558
19559 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19560
19561         PR target/44877
19562         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19563         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19564         builtin mask for load/store builtins.
19565
19566 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19567
19568         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19569         for "lock addl".
19570         * configure: Regenerate.
19571         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19572         Remove TARGET_MACHO.
19573
19574 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19575
19576         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19577         default ISA flags.
19578         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19579
19580 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19581
19582         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19583
19584 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19585
19586         * config/picochip/picochip.md (commsTestPort): Emit more
19587         efficient sequence for tstport instruction.
19588
19589 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19590
19591         * config/i386/i386.c (ix86_veclib_handler): Make static.
19592
19593 2010-07-09  Richard Guenther  <rguenther@suse.de>
19594
19595         PR tree-optimization/44852
19596         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19597         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19598         in MEM_REF.
19599         (indirect_refs_may_alias_p): Likewise.
19600         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19601
19602 2010-07-09  Richard Guenther  <rguenther@suse.de>
19603
19604         PR tree-optimization/44882
19605         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19606         sets do conflict.
19607         (vectorizable_load): Likewise.
19608
19609 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19610
19611         PR target/40657
19612         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19613         All callers changed.
19614         Handle the case when we're called for the epilogue.
19615         (thumb_unexpanded_epilogue): Use it.
19616         (thumb1_expand_epilogue): Likewise.
19617
19618 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19619
19620         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19621         both ranges are range_int_cst_p with non-negative minimum,
19622         try harder to derive smaller range.
19623
19624 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19625
19626         * genrecog.c: Include diagnostic-core.h before toplev.h.
19627         * genoutput.c: Likewise.
19628         * genextract.c: Likewise.
19629         * genautomata.c: Likewise.
19630         * genemit.c: Likewise.
19631         * genpeep.c: Likewise.
19632         * genattrtab.c: Likewise.
19633         * genconditions.c: Likewise.
19634         * genpreds.c: Likewise.
19635
19636 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19637
19638         * lto-section-in.c (lto_section_name): Add missing comma.
19639
19640 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19641
19642         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19643         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19644         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19645         (ia64_override_options): Rename to...
19646         (ia64_option_override): ... this one. Make static.
19647
19648 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19649
19650         PR middle-end/44843
19651         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19652         pointed-to type of the offset in a MEM_REF to compute the alignment.
19653
19654 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19655
19656         * final.c (final_scan_insn): Replace
19657         TARGET_UNWIND_INFO macro check by unwind_emit
19658         hook NULL check.
19659         * targhooks.c (default_unwind_emit): Removed.
19660         * targhooks.h (default_unwind_emit): Likewise.
19661         * target.def (unwind_emit): Set default value to NULL.
19662
19663         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19664         New prototype.
19665         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19666         for NULL fntype argument and allow 64-bit targets.
19667         (ix86_asm_output_function_label): New function.
19668         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19669         (ix86_handle_fndecl_attribute): Likewise.
19670         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19671         * doc/doc/tm.texi: Regenerated.
19672         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19673         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19674         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19675         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19676         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19677         * config/elfos.h: Likewise.
19678         * config/i386/cygming.h: Likewise.
19679         * config/netbsd-aout.h: Likewise.
19680         * config/openbsd.h: Likewise.
19681         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19682         by ix86_asm_output_function_label function call.
19683         * varasm.c (assemble_start_function): Use
19684         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19685
19686 2010-07-08  Jan Hubicka  <jh@suse.cz>
19687
19688         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19689         New function.
19690         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19691         Declare.
19692         * ipa-cp.c (ipcp_estimate_growth): Use it.
19693         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19694         Likewise.
19695
19696 2010-07-08  Jan Hubicka  <jh@suse.cz>
19697
19698         * tree-inline.c (declare_return_variable): Allocate annotation for new
19699         temporary.
19700
19701 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19702
19703         PR tree-optimization/44710
19704         * tree-if-conv.c (parse_predicate): New.
19705         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19706         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19707
19708 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19709
19710         * common.opt (ftree-loop-if-convert): New flag.
19711         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19712         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19713         when flag_tree_loop_if_convert is set.
19714
19715 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19716
19717         * config/i386/i386.c: Use short syntax for function calls
19718         through function pointers.
19719         * config/i386/i386.md: Ditto.
19720
19721 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19722
19723         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19724
19725 2010-07-08  Richard Guenther  <rguenther@suse.de>
19726
19727         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19728         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19729
19730 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19731
19732         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19733         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19734         (loc_list_from_tree): Likewise.
19735         (output_loc_operands): Handle outputting DW_OP_const[48]u
19736         with loc->dtprel set.
19737         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19738
19739 2010-07-08  Jan Hubicka  <jh@suse.cz>
19740
19741         * ipa.c: Include pointer-set.h
19742         (cgraph_externally_visible_p): New attribute ALIASED;
19743         when in LTO, hidden symbols are local unless they are aliased.
19744         (function_and_variable_visibility): Compute aliased nodes;
19745         handle LTO and hidden symbol on functions and vars.
19746         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19747         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19748
19749 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19750
19751         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19752         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19753         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19754         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19755         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19756         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19757         (ix86_gen_probe_stack_range): Likewise.
19758         (override_options): Set them.
19759         (ix86_target_stack_probe): New function.
19760         (ix86_compute_frame_layout): Force use of push instructions to
19761         save registers if stack checking with probes is enabled.
19762         (get_scratch_register_on_entry): New function.
19763         (release_scratch_register_on_entry): Likewise.
19764         (ix86_adjust_stack_and_probe): Likewise.
19765         (output_adjust_stack_and_probe): Likewise.
19766         (ix86_emit_probe_stack_range): Likewise.
19767         (output_probe_stack_range): Likewise.
19768         (ix86_expand_prologue): Emit stack checking code if static built-in
19769         stack checking is enabled.
19770         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19771         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19772         (output_adjust_stack_and_probe): Likewise.
19773         (output_probe_stack_range): Likewise.
19774         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19775         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19776         TARGET_STACK_PROBE.
19777         (allocate_stack_worker_64): Likewise.
19778         (allocate_stack): Likewise.
19779         (adjust_stack_and_probe): New insn.
19780         (probe_stack_range): Likewise.
19781
19782 2010-07-08  Richard Guenther  <rguenther@suse.de>
19783
19784         PR tree-optimization/44831
19785         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19786         a MEM_REF preserving TBAA info of the original dereference.
19787         Dereference the original pointer if the address is not invariant.
19788         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19789         at least one invariant address that we are going to dereference.
19790
19791 2010-07-08  Richard Guenther  <rguenther@suse.de>
19792
19793         PR tree-optimization/44861
19794         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19795         information when building MEM_REFs.
19796         (vectorizable_load): Likewise.
19797         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19798
19799 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19800
19801         * config/sol2-c.c: Do not include diagnostic-core.h.
19802
19803 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19804
19805         PR bootstrap/44768
19806         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19807         with respect to current_function_decl. Pass decl of the function.
19808         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19809         * ipa-inline.c (compute_inline_parameters): Pass decl to
19810         estimated_stack_frame_size.
19811
19812 2010-07-08  Richard Guenther  <rguenther@suse.de>
19813
19814         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19815         New function.
19816         (valueize_refs): Call it.
19817
19818 2010-07-08  Richard Guenther  <rguenther@suse.de>
19819
19820         PR rtl-optimization/44838
19821         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19822         SSA form do not use pointer equivalence.
19823
19824 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19825
19826         * dwarf2out.c (AT_linkage_name): Delete.
19827         (add_linkage_attr): New function.
19828         (add_linkage_name): Call it to emit the linkage attribute.
19829         (dwarf2out_finish): Likewise.
19830         (move_linkage_attr): Explicitly accept both attribute variants.
19831
19832 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19833
19834         * toplev.h: Do not include diagnostic-core.h.
19835         Include diagnostic-core.h in every file that includes toplev.h.
19836         * c-tree.h: Do not include toplev.h.
19837         * pretty-print.h: Update comment.
19838         * Makefile.in: Update dependencies.
19839         * alias.c: Include diagnostic-core.h in every file that includes
19840         toplev.h.
19841         * attribs.c: Likewise.
19842         * auto-inc-dec.c: Likewise.
19843         * bb-reorder.c: Likewise.
19844         * bt-load.c: Likewise.
19845         * caller-save.c: Likewise.
19846         * calls.c: Likewise.
19847         * cfg.c: Likewise.
19848         * cfganal.c: Likewise.
19849         * cfgbuild.c: Likewise.
19850         * cfgcleanup.c: Likewise.
19851         * cfghooks.c: Likewise.
19852         * cfgloop.c: Likewise.
19853         * combine.c: Likewise.
19854         * config/alpha/alpha.c: Likewise.
19855         * config/arc/arc.c: Likewise.
19856         * config/arm/arm.c: Likewise.
19857         * config/arm/pe.c: Likewise.
19858         * config/avr/avr.c: Likewise.
19859         * config/bfin/bfin.c: Likewise.
19860         * config/cris/cris.c: Likewise.
19861         * config/crx/crx.c: Likewise.
19862         * config/darwin-c.c: Likewise.
19863         * config/darwin.c: Likewise.
19864         * config/fr30/fr30.c: Likewise.
19865         * config/frv/frv.c: Likewise.
19866         * config/h8300/h8300.c: Likewise.
19867         * config/host-darwin.c: Likewise.
19868         * config/i386/i386.c: Likewise.
19869         * config/i386/netware.c: Likewise.
19870         * config/i386/nwld.c: Likewise.
19871         * config/i386/winnt-cxx.c: Likewise.
19872         * config/i386/winnt-stubs.c: Likewise.
19873         * config/i386/winnt.c: Likewise.
19874         * config/ia64/ia64-c.c: Likewise.
19875         * config/ia64/ia64.c: Likewise.
19876         * config/iq2000/iq2000.c: Likewise.
19877         * config/lm32/lm32.c: Likewise.
19878         * config/m32c/m32c-pragma.c: Likewise.
19879         * config/m32c/m32c.c: Likewise.
19880         * config/m32r/m32r.c: Likewise.
19881         * config/m68hc11/m68hc11.c: Likewise.
19882         * config/m68k/m68k.c: Likewise.
19883         * config/mcore/mcore.c: Likewise.
19884         * config/mep/mep-pragma.c: Likewise.
19885         * config/mep/mep.c: Likewise.
19886         * config/mmix/mmix.c: Likewise.
19887         * config/mn10300/mn10300.c: Likewise.
19888         * config/moxie/moxie.c: Likewise.
19889         * config/pa/pa.c: Likewise.
19890         * config/pdp11/pdp11.c: Likewise.
19891         * config/picochip/picochip.c: Likewise.
19892         * config/rs6000/rs6000-c.c: Likewise.
19893         * config/rs6000/rs6000.c: Likewise.
19894         * config/rx/rx.c: Likewise.
19895         * config/s390/s390.c: Likewise.
19896         * config/score/score.c: Likewise.
19897         * config/score/score3.c: Likewise.
19898         * config/score/score7.c: Likewise.
19899         * config/sh/sh.c: Likewise.
19900         * config/sh/symbian-base.c: Likewise.
19901         * config/sh/symbian-c.c: Likewise.
19902         * config/sh/symbian-cxx.c: Likewise.
19903         * config/sol2-c.c: Likewise.
19904         * config/sol2.c: Likewise.
19905         * config/sparc/sparc.c: Likewise.
19906         * config/spu/spu.c: Likewise.
19907         * config/stormy16/stormy16.c: Likewise.
19908         * config/v850/v850-c.c: Likewise.
19909         * config/v850/v850.c: Likewise.
19910         * config/vax/vax.c: Likewise.
19911         * config/vxworks.c: Likewise.
19912         * config/xtensa/xtensa.c: Likewise.
19913         * convert.c: Likewise.
19914         * cse.c: Likewise.
19915         * cselib.c: Likewise.
19916         * dbgcnt.c: Likewise.
19917         * dbxout.c: Likewise.
19918         * ddg.c: Likewise.
19919         * dominance.c: Likewise.
19920         * emit-rtl.c: Likewise.
19921         * explow.c: Likewise.
19922         * expmed.c: Likewise.
19923         * fixed-value.c: Likewise.
19924         * fold-const.c: Likewise.
19925         * fwprop.c: Likewise.
19926         * gcse.c: Likewise.
19927         * ggc-common.c: Likewise.
19928         * ggc-page.c: Likewise.
19929         * ggc-zone.c: Likewise.
19930         * gimple-low.c: Likewise.
19931         * gimplify.c: Likewise.
19932         * graph.c: Likewise.
19933         * haifa-sched.c: Likewise.
19934         * ifcvt.c: Likewise.
19935         * implicit-zee.c: Likewise.
19936         * integrate.c: Likewise.
19937         * ira-build.c: Likewise.
19938         * ira-color.c: Likewise.
19939         * ira-conflicts.c: Likewise.
19940         * ira-costs.c: Likewise.
19941         * ira-lives.c: Likewise.
19942         * ira.c: Likewise.
19943         * lists.c: Likewise.
19944         * loop-doloop.c: Likewise.
19945         * loop-iv.c: Likewise.
19946         * lto-opts.c: Likewise.
19947         * lto-symtab.c: Likewise.
19948         * main.c: Likewise.
19949         * modulo-sched.c: Likewise.
19950         * optabs.c: Likewise.
19951         * params.c: Likewise.
19952         * plugin.c: Likewise.
19953         * postreload-gcse.c: Likewise.
19954         * postreload.c: Likewise.
19955         * predict.c: Likewise.
19956         * profile.c: Likewise.
19957         * real.c: Likewise.
19958         * regcprop.c: Likewise.
19959         * reginfo.c: Likewise.
19960         * regmove.c: Likewise.
19961         * reorg.c: Likewise.
19962         * resource.c: Likewise.
19963         * rtl.c: Likewise.
19964         * rtlanal.c: Likewise.
19965         * sched-deps.c: Likewise.
19966         * sched-ebb.c: Likewise.
19967         * sched-rgn.c: Likewise.
19968         * sdbout.c: Likewise.
19969         * sel-sched-dump.c: Likewise.
19970         * sel-sched-ir.c: Likewise.
19971         * simplify-rtx.c: Likewise.
19972         * stmt.c: Likewise.
19973         * stor-layout.c: Likewise.
19974         * store-motion.c: Likewise.
19975         * targhooks.c: Likewise.
19976         * tree-cfg.c: Likewise.
19977         * tree-cfgcleanup.c: Likewise.
19978         * tree-dump.c: Likewise.
19979         * tree-eh.c: Likewise.
19980         * tree-inline.c: Likewise.
19981         * tree-nomudflap.c: Likewise.
19982         * tree-object-size.c: Likewise.
19983         * tree-optimize.c: Likewise.
19984         * tree-outof-ssa.c: Likewise.
19985         * tree-phinodes.c: Likewise.
19986         * tree-profile.c: Likewise.
19987         * tree-ssa-ccp.c: Likewise.
19988         * tree-ssa-coalesce.c: Likewise.
19989         * tree-ssa-live.c: Likewise.
19990         * tree-ssa-loop-niter.c: Likewise.
19991         * tree-ssa-loop-prefetch.c: Likewise.
19992         * tree-ssa-loop.c: Likewise.
19993         * tree-ssa-structalias.c: Likewise.
19994         * tree-ssa-uninit.c: Likewise.
19995         * tree-ssa.c: Likewise.
19996         * tree-vect-data-refs.c: Likewise.
19997         * tree-vect-loop-manip.c: Likewise.
19998         * tree-vect-loop.c: Likewise.
19999         * tree-vect-patterns.c: Likewise.
20000         * tree-vect-stmts.c: Likewise.
20001         * tree-vrp.c: Likewise.
20002         * varasm.c: Likewise.
20003         * vec.c: Likewise.
20004         * web.c: Likewise.
20005         * xcoffout.c: Likewise.
20006
20007 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20008
20009         * gengtype.c (write_field_root): New function.
20010         (write_root): Use it.
20011
20012 2010-07-07  Wei Guozhi  <carrot@google.com>
20013
20014         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20015         of lowest bits to lshift/compare): Add a missing line.
20016
20017 2010-07-07  Wei Guozhi  <carrot@google.com>
20018
20019         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20020         of lowest bits to lshift/compare): New.
20021
20022 2010-07-07  Tom Tromey  <tromey@redhat.com>
20023
20024         * doc/tm.texi: Update.
20025         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20026         Add @hook.
20027         * target.def (want_debug_pub_sections): New hook.
20028         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20029         * dwarf2out.c (add_pubname_string): Check
20030         targetm.want_debug_pub_sections.
20031         (add_pubname): Likewise.
20032         (add_pubtype): Likewise.
20033
20034 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20035
20036         * genautomata.c (output_automata_list_min_issue_delay_code):
20037         Correctly decompress min_issue_delay.
20038
20039 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20040
20041         PR rtl-optimization/44404
20042         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20043         possible, use reg_overlap_mentioned_p instead.
20044
20045 2010-07-07  Duncan Sands  <baldrick@free.fr>
20046
20047         PR middle-end/41355
20048         * tree.c (build_function_type_skip_args): Copy the original type using
20049         build_distinct_type_copy rather than copy_node.
20050
20051 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20052
20053         PR target/44850
20054         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20055         revision 161876.
20056         (ix86_expand_prologue): Likewise.
20057         (ix86_handle_fndecl_attribute): Likewise.
20058         (ix86_asm_declare_function_name): Likewise.
20059         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20060         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20061         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20062         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20063         * doc/extend.texi: Likewise.
20064
20065 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20066
20067         PR target/44844
20068         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20069         retry if the carry flag isn't valid.
20070         (rdrand<mode>_1): New.
20071
20072 2010-07-07  Richard Guenther  <rguenther@suse.de>
20073
20074         PR middle-end/44790
20075         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20076         for expanding the constant offset for MEM_REFs.
20077
20078 2010-07-07  Richard Guenther  <rguenther@suse.de>
20079
20080         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20081         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20082         * gimple.h (is_gimple_operand): Remove.
20083         * gimple.c (is_gimple_operand): Likewise.
20084         (walk_gimple_op): Fix wi->val_only setting for calls.
20085         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20086         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20087         invalid gimple calls.
20088
20089 2010-07-06  Jan Hubicka  <jh@suse.cz>
20090
20091         * lto-cgraph.c (output_cgraph): Add missing declaration.
20092
20093 2010-07-06  Jan Hubicka  <jh@suse.cz>
20094
20095         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20096         partition.
20097
20098 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20099
20100         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20101         * doc/rtl.texi (Debug Information): New node.
20102         (NOTE_INSN_VAR_LOCATION): Document.
20103         (debug_insn): Likewise.
20104         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20105
20106 2010-07-07  Jan Hubicka  <jh@suse.cz>
20107
20108         With parts by Richard Guenther.
20109
20110         PR middle-end/44813
20111         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20112         for functions passed by reference.
20113         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20114         in memory when passed by reference.
20115         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20116         beggining.
20117         * ipa-split.c (split_function): Cleanup way return value is passed;
20118         handle SSA DECL_BY_REFERENCE retvals.
20119         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20120         DECL_BY_REFERENCE is set.
20121         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20122         find_what_p_points_to): Handle RESULT_DECL.
20123         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20124         when passing by reference ensure that RESULT_DECL is gimple_val.
20125         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20126         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20127
20128 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20129
20130         PR rtl-optimization/44787
20131         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20132         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20133
20134 2010-07-06  Jan Hubicka  <jh@suse.cz>
20135
20136         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20137         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20138         with body can prevail.
20139         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20140         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20141         * cgraph.c (cgraph_get_node_or_alias): New function.
20142         * cgraph.h (cgraph_get_node_or_alias): Declare.
20143
20144 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20145
20146         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20147         support.
20148         (ix86_expand_prologue): Likewise.
20149         (ix86_handle_fndecl_attribute): Likewise.
20150         (ix86_asm_declare_function_name): New function for
20151         ASM_DECLARE_FUNCTION_NAME.
20152         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20153         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20154         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20155         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20156         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20157         attribute.
20158
20159 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20160
20161         * config/i386/i386.md (immediate_operand): New mode attribute.
20162
20163         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20164         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20165         using P mode iterator.
20166         (pro_epilogue_adjust_stack_di_2): Rename from
20167         pro_epilogue_adjust_stack_rex64_2.
20168
20169         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20170
20171 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20172
20173         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20174         through gen_mov_insv_1 function pointer.
20175         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20176         gen_truncxf<mode>2 through gen_truncxf function pointer.
20177         (remainder<mode>3): Ditto.
20178         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20179         (allocate_stack): Call gen_allocate_stack_worker_64 or
20180         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20181         function pointer.
20182         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20183         function pointer.
20184
20185 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20186
20187         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20188         operand constraint instead of <r><i>m.
20189
20190 2010-07-06  Richard Guenther  <rguenther@suse.de>
20191
20192         PR middle-end/44828
20193         * convert.c (convert_to_integer): Watch out for overflowing
20194         MULT_EXPR as well.
20195
20196 2010-07-05  Jan Hubicka  <jh@suse.cz>
20197
20198         * lto-streamer.c (write_symbol_vec): Rename to ...
20199         (write_symbol) ... this one; write only symbol given and when
20200         present in cache. Sanity check that what is defined is present
20201         in cgraph/varpool with body/finalized decl.
20202         (write_symbols_of_kind): Remove.
20203         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20204         pairs to produce symtab.
20205         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20206         when doing WPA streaming.
20207
20208 2010-07-05  Jan Hubicka  <jh@suse.cz>
20209
20210         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20211         function is still available to fold into.
20212
20213 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20214
20215         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20216         * function.h (struct_function): Change type of local_decls field
20217         to a VEC.
20218         (add_local_decl): New function.
20219         (FOR_EACH_LOCAL_DECL): New macro.
20220         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20221         cfun->local_decls.
20222         (estimated_stack_frame_size): Likewise.
20223         (expand_used_vars): Likewise.
20224         * cgraphbuild.c (build_cgraph_edges): Likewise.
20225         * function.c (instantiate_decls_1): Likewise.
20226         * ipa-struct-reorg.c (build_data_structure): Likewise.
20227         * ipa-type-escape.c (analyze_function): Likewise.
20228         * lto-streamer-in.c (input_function): Likewise.
20229         * lto-streamer-out.c (output_function): Likewise.
20230         * tree-ssa-live.c (remove_unused_locals): Likewise.
20231         * tree.c (free_lang_data_in_decl): Likewise.
20232         (find_decls_types_in_node): Likewise.
20233         * omp-low.c (remove_exit_barrier): Likewise.
20234         (expand_omp_taskreg): Likewise.
20235         (list2chain): Rename to...
20236         (vec2chain): ...this.  Adjust.
20237         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20238         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20239         * gimple-low.c (record_vars_into): Likewise.
20240         * tree-inline.c (remap_decls): Likewise.
20241         (declare_return_variable): Likewise.
20242         (declare_inline_vars): Likewise.
20243         (copy_forbidden): Adjust for new type of cfun->local_decls.
20244         (add_local_variables): New function.
20245         (expand_call_inline): Call it.
20246         (tree_function_versioning): Likewise.
20247
20248 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20249
20250         AVX Programming Reference (June, 2010)
20251         * config/i386/cpuid.h (bit_F16C): New.
20252         (bit_RDRND): Likewise.
20253         (bit_FSGSBASE): Likewise.
20254
20255         * config/i386/i386-builtin-types.def: Add
20256         "DEF_FUNCTION_TYPE (UINT16)", function types for
20257         float16 <-> float conversions and
20258         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20259
20260         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20261         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20262         OPTION_MASK_ISA_F16C.
20263
20264         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20265         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20266         (OPTION_MASK_ISA_F16C_SET): Likewise.
20267         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20268         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20269         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20270         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20271         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20272         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20273         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20274         (override_options): Handle them.
20275         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20276         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20277         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20278         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20279         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20280         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20281         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20282         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20283         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20284         (bdesc_args): Likewise.
20285         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20286         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20287         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20288         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20289         Handle non-memory store.
20290
20291         * config/i386/i386.h (TARGET_FSGSBASE): New.
20292         (TARGET_RDRND): Likewise.
20293         (TARGET_F12C): Likewise.
20294
20295         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20296         (UNSPEC_VCVTPS2PH): Likewise.
20297         (UNSPECV_RDFSBASE): Likewise.
20298         (UNSPECV_RDGSBASE): Likewise.
20299         (UNSPECV_WRFSBASE): Likewise.
20300         (UNSPECV_WRGSBASE): Likewise.
20301         (UNSPECV_RDRAND): Likewise.
20302         (rdfsbase<mode>): Likewise.
20303         (rdgsbase<mode>): Likewise.
20304         (wrfsbase<mode>): Likewise.
20305         (wrgsbase<mode>): Likewise.
20306         (rdrand<mode>): Likewise.
20307
20308         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20309
20310         * config/i386/immintrin.h (_rdrand_u16): New.
20311         (_rdrand_u32): Likewise.
20312         (_readfsbase_u32): Likewise.
20313         (_readfsbase_u64): Likewise.
20314         (_readgsbase_u32): Likewise.
20315         (_readgsbase_u64): Likewise.
20316         (_writefsbase_u32): Likewise.
20317         (_writefsbase_u64): Likewise.
20318         (_writegsbase_u32): Likewise.
20319         (_writegsbase_u64): Likewise.
20320         (_rdrand_u64): Likewise.
20321         (_cvtsh_ss): Likewise.
20322         (_mm_cvtph_ps): Likewise.
20323         (_mm256_cvtph_ps): Likewise.
20324         (_cvtss_sh): Likewise.
20325         (_mm_cvtps_ph): Likewise.
20326         (_mm256_cvtps_ph): Likewise.
20327
20328         * config/i386/sse.md (vcvtph2ps): New.
20329         (*vcvtph2ps_load): Likewise.
20330         (vcvtph2ps256): Likewise.
20331         (vcvtps2ph): Likewise.
20332         (*vcvtps2ph): Likewise.
20333         (*vcvtps2ph_store): Likewise.
20334         (vcvtps2ph256): Likewise.
20335
20336         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20337
20338         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20339
20340 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20341
20342         PR bootstrap/44512
20343         * genenums.c (main): Output include of insn-constants.h
20344         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20345
20346 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20347
20348         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20349         (override_options): Initialize it.
20350         (ix86_expand_prologue): Use it.
20351
20352 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20353
20354         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20355
20356 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20357
20358         * double-int.h (fit_double_type): Remove declaration.
20359         * double-int.c (fit_double_type): Remove function.
20360         * tree.h (int_fits_type_p): Adjust prototype.
20361         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20362         instead of fit_double_type.
20363         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20364         instead of fit_double_type and build_int_cst_wide.
20365         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20366         instead of fit_double_type and build_int_cst_wide.
20367         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20368         of fit_double_type.
20369
20370 2010-07-05  Jan Hubicka  <jh@suse.cz>
20371
20372         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20373         in_other_partition.
20374         * lto-cgraph.c (referenced_from_other_partition_p,
20375         reachable_from_other_partition_p): Use in_other_partition flags.
20376         (output_node, output_varpool_node): COMDAT nodes always have private
20377         copies and thus are never used from other partition.
20378
20379 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20380
20381         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20382         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20383         * config/ia64/ia64.c Include reload.h.
20384         (ia64_memory_move_cost): New function.
20385         (TARGET_MEMORY_MOVE_COST): Define.
20386         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20387         memory_move_cost.
20388
20389 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20390
20391         PR middle-end/42505
20392         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20393         comments about cost model.
20394         (try_add_cand_for):  Add second strategy for choosing initial set
20395         based on original IVs, controlled by ORIGINALP argument.
20396         (get_initial_solution): Add ORIGINALP argument.
20397         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20398         (find_optimal_iv_set): Try two different strategies for choosing
20399         the IV set, and return the one with lower cost.
20400
20401 2010-07-05  Richard Guenther  <rguenther@suse.de>
20402
20403         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20404
20405 2010-07-05  Richard Guenther  <rguenther@suse.de>
20406
20407         * tree.c (reference_alias_ptr_type): New function.
20408         * tree.h (reference_alias_ptr_type): Declare.
20409         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20410         allow non-TARGET_MEM_REF new refs.
20411         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20412         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20413         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20414         (create_mem_ref): Get alias pointer type.  Adjust calls to
20415         create_mem_ref_raw.
20416         (maybe_fold_tmr): Likewise.
20417         * tree-flow.h (create_mem_ref): Adjust prototype.
20418
20419 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20420
20421         PR c++/44808
20422         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20423         *from_p is VAR_DECL.
20424
20425 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20426
20427         * tree.h (build_call_list): Remove.
20428         * tree.c (build_call_list): Remove.
20429
20430 2010-07-05  Richard Guenther  <rguenther@suse.de>
20431
20432         * double-int.h (double_int_sub): Declare.
20433         * double-int.c (double_int_sub): New function.
20434         * dwarf2out.c (field_byte_offset): Use it.
20435         * fixed-value.c (do_fixed_add): Likewise.
20436         (do_fixed_multiply): Likewise.
20437         (do_fixed_divide): Likewise.
20438         * tree-predcom.c (add_ref_to_chain): Likewise.
20439         (determine_roots_comp): Likewise.
20440         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20441
20442 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20443
20444         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20445         implementations.
20446
20447 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20448
20449         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20450         * arm-modes.def (CC_NOTB): Don't define.
20451         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20452         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20453         (LTUGEU): New code_iterator.
20454         (cnb, optab): New corresponding code_attrs.
20455         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20456         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20457         using LTUGEU.
20458         (addsi3_carryin_shift_<optab>): Likewise.
20459         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20460         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20461         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20462         (subsi3_compare): Renamed from subsi3_compare0_c.
20463         Change CC_NOTB to CC.
20464         (arm_subsi3_insn): Allow constants for operand 0.
20465         (compare_scc peephole for eq case): New.
20466         (compare_scc splitters): Change CC_NOTB to CC.
20467
20468 2010-07-05  Richard Guenther  <rguenther@suse.de>
20469
20470         * tree-ssa-loop-im.c (for_each_index): Do not handle
20471         ALIGN_INDIRECT_REF.
20472         (gen_lsm_tmp_name): Likewise.
20473         * tree-dump.c (dequeue_and_dump): Likewise.
20474         * tree-pretty-print.c (dump_generic_node): Likewise.
20475         (op_code_prio): Likewise.
20476         (op_symbol_code): Likewise.
20477         * tree.c (staticp): Likewise.
20478         (build1_stat): Likewise.
20479         * tree.h (INDIRECT_REF_P): Likewise.
20480         * fold-const.c (maybe_lvalue_p): Likewise.
20481         (operand_equal_p): Likewise.
20482         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20483         (ao_ref_init_from_vn_reference): Likewise.
20484         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20485         (find_interesting_uses_address): Likewise.
20486         * dwarf2out.c (loc_list_from_tree): Likewise.
20487         * gimplify.c (gimplify_expr): Likewise.
20488         * tree-eh.c (tree_could_trap_p): Likewise.
20489         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20490         * cfgexpand.c (expand_debug_expr): Likewise.
20491         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20492         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20493         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20494         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20495         * tree-ssa-operands.c (get_expr_operands): Likewise.
20496         * expr.c (safe_from_p): Likewise.
20497         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20498         * tree-vect-data-refs.c (vect_setup_realignment): Build
20499         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20500         * tree-vect-stmts.c (vectorizable_load): Likewise.
20501         * tree.def (ALIGN_INDIRECT_REF): Remove.
20502
20503 2010-07-05  Richard Guenther  <rguenther@suse.de>
20504
20505         PR tree-optimization/44784
20506         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20507         for inserted stmts.
20508         (find_or_generate_expression): Fix SCCVN insertion check.
20509
20510 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20511
20512         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20513         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20514         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20515         directives.
20516
20517 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20518
20519         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20520         statements that are not vectorized.
20521         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20522         in INSIDE_COST.
20523
20524 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20525
20526         PR bootstrap/44820
20527         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20528
20529 2010-07-05  Richard Guenther  <rguenther@suse.de>
20530
20531         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20532         RESULT_DECLs properly.
20533
20534 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20535
20536         PR rtl-optimization/44695
20537         * config/i386/i386.md (extract_code): Removed.
20538         (<u>divmodqi4): Likewise.
20539         (divmodqi4): New.
20540         (udivmodqi4): Likewise.
20541         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20542         (udivmodhiqi3): Likewise.
20543
20544 2010-07-04  Jan Hubicka  <jh@suse.cz>
20545
20546         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20547
20548 2010-07-04  Jan Hubicka  <jh@suse.cz>
20549
20550         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20551         is not already initialized.
20552
20553 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20554
20555         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20556         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20557         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20558         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20559         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20560         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20561         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20562         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20563         (sync_new_nand_optab): Redefine as macros.
20564         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20565         Delete.
20566         (direct_optab_index): New enum.
20567         (direct_optab_d): New structure.
20568         (direct_optab): New typedef.
20569         (direct_optab_table): Declare.
20570         (direct_optab_handler, set_direct_optab_handler): New functions.
20571         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20572         (sync_lock_release_optab): New macros.
20573         * optabs.c (direct_optab_table): New variable.
20574         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20575         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20576         cmpstr_optab and cmpstrn_optab.
20577         (emit_conditional_move): Likewise for movcc_optab.
20578         (can_conditionally_move_p): Likewise for movcc_gen_code.
20579         (init_insn_codes): Clear direct_optab_table.
20580         (init_optabs): Don't initialize the new "direct optabs" here.
20581         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20582         vcond_gen_code.
20583         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20584         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20585         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20586         (expand_sync_operation): Likewise other sync_*_optabs.
20587         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20588         to sync_compare_and_swap_optab.
20589         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20590         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20591         to the names of both.
20592         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20593         cmpstr_optab and cmpstrn_optab.
20594         (expand_builtin_lock_release): Likewise sync_lock_release.
20595         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20596         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20597         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20598         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20599         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20600         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20601         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20602         (sync_lock_test_and_set, sync_lock_release): Delete.
20603         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20604         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20605         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20606         macro optabs.
20607         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20608         the "optab" local variable.  Use direct_optab_handler for optab and
20609         sync_compare_and_swap_optab.
20610         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20611         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20612         reload_in_optab and reload_out_optab.
20613         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20614         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20615         * config/pa/pa.c (pa_secondary_reload): Likewise.
20616         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20617         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20618         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20619         (VMSupportsCS8_builtin): Likewise.
20620
20621 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20622
20623         * optabs.h (optab_handlers): Change type of insn_code to int.
20624         (optab_handler, set_optab_handler, convert_optab_handler)
20625         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20626         CODE_FOR_nothing".
20627         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20628         (init_insn_codes): Zero both the above arrays.
20629         (init_optabs): Never call init_insn_codes first time around.
20630
20631 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20632
20633         * optabs.h (optab_handler, convert_optab_handler): Turn into
20634         inline functions that return an insn code.
20635         (set_optab_handler, set_convert_optab_handler): New functions.
20636         * builtins.c: Replace optab_handler(X)->insn_code with
20637         optab_handler or set_optab_handler thoughout.  Likewise
20638         convert_optab_handler(X)->insn_code with convert_optab_handler
20639         and set_convert_optab_handler.
20640         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20641         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20642         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20643         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20644         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20645         config/spu/spu.c: Likewise.
20646
20647 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20648
20649         PR target/44531
20650         * config.gcc (sh*-*-*): Use regular expressions instead of
20651         the 'i' modifier for sed substitutions.
20652
20653 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20654
20655         * gimple.c (gimple_body): Comments added.
20656
20657 2010-07-04  Richard Guenther  <rguenther@suse.de>
20658
20659         PR middle-end/44809
20660         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20661         of an INDIRECT_REF.
20662
20663 2010-07-04  Richard Guenther  <rguenther@suse.de>
20664
20665         PR tree-optimization/44479
20666         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20667         extra SSA name copy statements which preserves points-to
20668         information.
20669         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20670         Copy points-to information for all pointers.  Properly handle
20671         MEM_REFs.
20672         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20673         copy statements.
20674         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20675         dependency.
20676
20677 2010-07-04  Richard Guenther  <rguenther@suse.de>
20678
20679         PR middle-end/44785
20680         * tree-inline.c (initialize_inlined_parameters): Do not
20681         re-use pointer-map slot over remap_type call.
20682
20683 2010-07-04  Richard Guenther  <rguenther@suse.de>
20684
20685         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20686
20687 2010-07-04  Richard Guenther  <rguenther@suse.de>
20688
20689         PR tree-optimization/44656
20690         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20691         again after value-replacing in the defintions lhs.
20692
20693 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20694             Revital Eres  <eres@il.ibm.com>
20695
20696         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20697         Document new arguments.
20698         * doc/tm.texi: Regenerate.
20699         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20700         Handle unaligned store.
20701         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20702         * target.def (builtin_vectorization_cost): Add new arguments.
20703         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20704         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20705         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20706         (vect_vfa_segment_size): Fix indentation.
20707         * tree-vectorizer.h (struct _vect_peel_info): New.
20708         (struct _vect_peel_extended_info): New.
20709         (struct _loop_vec_info): Add new field for peeling hash table and a
20710         macro for its access.
20711         (VECT_MAX_COST): Define.
20712         (vect_get_load_cost): Declare.
20713         (vect_get_store_cost, vect_get_known_peeling_cost,
20714         vect_get_single_scalar_iteraion_cost): Likewise.
20715         (vect_supportable_dr_alignment): Add new argument.
20716         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20717         field.
20718         (destroy_loop_vec_info): Free peeling hash table.
20719         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20720         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20721         vect_analyze_slp. Fix indentation.
20722         (vect_get_single_scalar_iteraion_cost): New function.
20723         (vect_get_known_peeling_cost): Likewise.
20724         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20725         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20726         statement. Move outside cost calculation inside unknown peeling case.
20727         Call vect_get_known_peeling_cost for known amount of peeling.
20728         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20729         reference to the print message of forced alignment.
20730         (vect_verify_datarefs_alignment): Update call to
20731         vect_supportable_dr_alignment.
20732         (vect_get_data_access_cost): New function.
20733         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20734         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20735         vect_peeling_hash_choose_best_peeling): Likewise.
20736         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20737         to store all the accesses in the loop and find best possible access to
20738         align using peeling for known alignment case. For unknown alignment
20739         check if stores are preferred or if peeling is worthy.
20740         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20741         (vect_supportable_dr_alignment): Add new argument and check aligned
20742         accesses according to it.
20743         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20744         (cost_for_stmt): Call vect_get_stmt_cost.
20745         (vect_model_simple_cost): Likewise.
20746         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20747         vect_get_store_cost to calculate the cost of the statement.
20748         (vect_get_store_cost): New function.
20749         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20750         vect_get_load_cost to calculate the cost of the statement.
20751         (vect_get_load_cost): New function.
20752         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20753         (vectorizable_load): Likewise.
20754         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20755         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20756         arguments. Handle unaligned store.
20757         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20758         (rs6000_builtin_support_vector_misalignment): Return true for word and
20759         double word alignments for VSX.
20760         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20761         vect_supportable_dr_alignment and builtin_vectorization_cost.
20762
20763 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20764
20765         PR target/44597
20766         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20767         (prefetch_nocc_operand): Likewise.
20768         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20769         (prefetch_20): New insn.
20770         (prefetch_cc): Remove.
20771         (prefetch_nocc): Likewise.
20772
20773 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20774
20775         * expr.c (vector_mode_valid_p): Move to c-common.c.
20776         * expr.h (vector_mode_valid_p): Do not declare here.
20777         * system.h: Poison GCC_EXPR_H in front-ends.
20778         * Makefile.in: Update dependencies.
20779
20780 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20781
20782         PR target/44705
20783         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20784
20785 2010-07-03  Jan Hubicka  <jh@suse.cz>
20786
20787         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20788         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20789         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20790         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20791         Likewise.
20792
20793         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20794         Update timevars.V
20795         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20796         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20797         TV_IPA_LTO_DECL_OUT): New.
20798         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20799
20800 2010-07-03  Jan Hubicka  <jh@suse.cz>
20801
20802         * ipa-inline.c (update_edge_key): Break out from ...
20803         update_callers_keys): ... here;
20804         (update_callee_keys): Update only the edges from caller to callee.
20805         (update_all_calle_keys): Do what update_calle_keys did.
20806         (decide_inlining_of_small_functions): Avoid recomputing of all
20807         callees when badness increase.
20808
20809 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20810
20811         * config/arm/arm.c (arm_attr_length_move_neon): New.
20812         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20813         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20814         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20815         to compute length attribute.
20816
20817 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20818
20819         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20820         as predicate for operand 1 and remove its constraint.
20821         * config/arm/predicates.md (vfp_register_operand): New.
20822         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20823         (*push_fp_multi): Likewise.
20824
20825 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20826
20827         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20828
20829 2010-07-03  Jan Hubicka  <jh@suse.cz>
20830
20831         * config/i386/i386.c (override_options): Revert accidental commit.
20832
20833 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20834
20835         PR c++/44128
20836         * doc/invoke.texi: Update documentation of -Wshadow.
20837
20838 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20839             Julian Brown  <julian@codesourcery.com>
20840             Sandra Loosemore  <sandra@codesourcery.com>
20841
20842         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20843         comparisons.  Adjust to take both operands.
20844         (arm_select_cc_mode): Handle DImode comparisons.
20845         (arm_gen_compare_reg): Generate a scratch register for DImode
20846         comparisons which require one.  Use xor for Thumb equality checks.
20847         (arm_const_double_by_immediates): New.
20848         (arm_print_operand): Allow 'Q' and 'R' for constants.
20849         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20850         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20851         arm_canonicalize_comparison.
20852         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20853         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20854         prototype.
20855         (arm_const_double_by_immediates): Declare.
20856         * config/arm/constraints.md (Di): New constraint.
20857         * config/arm/predicates.md (arm_immediate_di_operand)
20858         (arm_di_operand, cmpdi_operand): New.
20859         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20860         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20861         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20862         (cstoredi4): Handle non-Cirrus also.
20863
20864 2010-07-02  Julian Brown  <julian@codesourcery.com>
20865             Sandra Loosemore  <sandra@codesourcery.com>
20866
20867         PR target/43703
20868         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20869         (smax<mode>3): Disable for NEON float modes when
20870         flag_unsafe_math_optimizations is false.
20871         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20872         (*mul<mode>3_neon)
20873         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20874         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20875         for NEON float modes when flag_unsafe_math_optimizations is false.
20876         (quad_halves_<code>v4sf): Only enable if
20877         flag_unsafe_math_optimizations is true.
20878         * doc/invoke.texi (ARM Options): Add note about floating point
20879         vectorization requiring -funsafe-math-optimizations.
20880
20881 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20882             Julian Brown  <julian@codesourcery.com>
20883
20884         * config/arm/neon.md (UNSPEC_VABA): Delete.
20885         (UNSPEC_VABAL): Delete.
20886         (UNSPEC_VABS): Delete.
20887         (UNSPEC_VMUL_N): Delete.
20888         (adddi3_neon): New.
20889         (subdi3_neon): New.
20890         (mul<mode>3add<mode>_neon): Make the pattern named.
20891         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20892         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20893         unspec parts...
20894         (neon_vadd<mode>_unspec): ...to this.
20895         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20896         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20897         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20898         (neon_vaba<mode>): Rewrite in terms of vabd.
20899         (neon_vabal<mode>): Rewrite in terms of vabdl.
20900         (neon_vabs<mode>): Rewrite without unspec.
20901         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20902         (*arm_subdi3): Likewise.
20903         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20904         No_op attribute to disable assembly output checks.
20905         * config/arm/arm_neon.h: Regenerated.
20906         * doc/arm-neon-intrinsics.texi: Regenerated.
20907
20908 2010-07-02  Jan Hubicka  <jh@suse.cz>
20909
20910         * ipa-split.c (split_function): For aggregate values, set the return
20911         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20912         *<retval> = fncall.part ().
20913         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20914
20915 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20916
20917         * config/arm/neon.md (UNSPEC_VAND): Delete.
20918         (UNSPEC_VBIC): Delete.
20919         (UNSPEC_VCLZ): Delete.
20920         (UNSPEC_VCNT): Delete.
20921         (UNSPEC_VEOR): Delete.
20922         (UNSPEC_VORN): Delete.
20923         (UNSPEC_VORR): Delete.
20924         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20925         core registers too.
20926         (anddi3_neon): Likewise.
20927         (orndi3_neon): Likewise.
20928         (bicdi3_neon): Likewise.
20929         (xordi3_neon): Likewise.
20930         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20931         rid of unspec and handle unused operand.
20932         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20933         * config/arm/predicates.md (imm_for_neon_logic_operand):
20934         Require TARGET_NEON.
20935         (imm_for_neon_inv_logic_operand): Likewise.
20936         * config/arm/arm.md (define_split for logical_binary_operator):
20937         Disable for NEON registers.
20938         (anddi3): Add new define_expand, and rename the insn.  Disable
20939         this insn for NEON, where anddi3_neon now applies.
20940         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20941         (iordi3): As for anddi3.
20942         (xordi3): Likewise.
20943         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20944         as No_op to disable testing for exact instruction match.
20945         (Vorr): Likewise.
20946         (Veor): Likewise.
20947         (Vbic): Likewise.
20948         (Vorn): Likewise.
20949         * config/arm/arm_neon.h: Regenerated.
20950         * doc/arm-neon-intrinsics.texi: Regenerated.
20951
20952 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20953
20954         * expr.h (emit_stack_probe): Declare.
20955         * explow.c (emit_stack_probe): Make global.
20956         (anti_adjust_stack_and_probe): Fix comments.
20957         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20958         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20959         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20960         * config/sparc/sparc.c: Include except.h.
20961         (sparc_emit_probe_stack_range): New function.
20962         (output_probe_stack_range): Likewise.
20963         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20964         built-in stack checking is enabled.
20965         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20966         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20967         (probe_stack_range): New insn.
20968
20969 2010-07-02  Richard Guenther  <rguenther@suse.de>
20970
20971         PR target/43958
20972         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20973         for argument alignment.
20974
20975 2010-07-02  Jan Hubicka  <jh@suse.cz>
20976
20977         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20978         walk backwards from entry_bb to check only those basic block of header
20979         that might lead to execution of split part.
20980         (consider_split) ... here.
20981         (find_return_bb): Allow assignment in return BB.
20982         (find_retval): New.
20983         (split_function): Fix name of cloned function; take care of updating
20984         return value in return_bb containing move.
20985
20986 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
20987
20988         PR target/44771
20989         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
20990         used variable insn.
20991
20992 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20993
20994         * implicit-zee.c (combine_reaching_defs): Fix long lines.
20995         (is_set_with_extension_DI): Delete.
20996         (struct zero_extend_info): New structure.
20997         (add_removable_zero_extend): New function.
20998         (find_removable_zero_extends): Use note_stores to find SETs.
20999         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21000
21001 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21002
21003         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21004         is_miss_rate_acceptable. Pull total_positions computation
21005         out of the loops.  Early return if miss_positions exceeds
21006         the acceptable threshold.
21007         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21008         is_miss_rate_acceptable after renaming of compute_miss_rate.
21009
21010 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21011
21012         PR middle-end/44576
21013         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21014         of 1000) for miss rate if the address diference is greater than or
21015         equal to the cache line size (the two reference will never hit the
21016         same cache line).
21017
21018 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21019
21020         PR target/42835
21021         * config/arm/arm-modes.def (CC_NOTB): New mode.
21022         * config/arm/arm.c (get_arm_condition_code): Handle it.
21023         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21024         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21025         (compare_scc): Now a define_and_split.  Add a number of extra
21026         splitters before it.
21027
21028         PR target/42172
21029         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21030         and ZERO_EXTEND.
21031         (arm_rtx_costs_1): Likewise.
21032         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21033         * config/arm/arm.md (is_arch6): New attribute.
21034         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21035         extendqisi2): Tighten the code somewhat, avoiding invalid
21036         RTL to occur in the expander patterns.
21037         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21038         (thumb1_zero_extendhisi2_v6): Delete.
21039         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21040         (thumb1_extendhisi2_v6): Delete.
21041         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21042         (thumb1_extendqisi2_v6): Delete.
21043         (zero_extendhisi2 for register input splitter): New.
21044         (zero_extendqisi2 for register input splitter): New.
21045         (thumb1_extendhisi2 for register input splitter): New.
21046         (extendhisi2 for register input splitter): New.
21047         (extendqisi2 for register input splitter): New.
21048         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21049         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21050         and add support for a register alternative requiring a split.
21051         (thumb1_zero_extendqisi2): Likewise.
21052         (arm_zero_extendqisi2): Likewise.
21053         (arm_extendhisi2): Likewise.
21054         (arm_extendqisi2): Likewise.
21055
21056 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21057
21058         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21059         instead of an unspec.
21060         (neon_expand_vector_init): Likewise.
21061         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21062         (UNSPEC_VDUP_LANE): Delete.
21063         (UNSPEC VDUP_N): Delete.
21064         (UNSPEC_VGET_HIGH): Delete.
21065         (UNSPEC_VGET_LANE): Delete.
21066         (UNSPEC_VGET_LOW): Delete.
21067         (UNSPEC_VMVN): Delete.
21068         (UNSPEC_VSET_LANE): Delete.
21069         (V_double_vector_mode): New.
21070         (vec_set<mode>_internal): Make code emitted match that for the
21071         corresponding intrinsics.
21072         (vec_setv2di_internal): Likewise.
21073         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21074         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21075         (neon_vset_lane<mode>): Combine double and quad patterns and
21076         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21077         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21078         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21079         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21080         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21081         with neon_vdup_lanev2di, adjusting the pattern from the latter
21082         to be predicable for consistency.
21083         (neon_vdup_lane<mode>_internal): New.
21084         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21085         to avoid using an unspec.
21086         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21087         (neon_vdup_lanev2di): Turn into a define_expand.
21088         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21089         (neon_vget_high<mode>): Replace with....
21090         (neon_vget_highv16qi): New pattern using canonical RTL.
21091         (neon_vget_highv8hi): Likewise.
21092         (neon_vget_highv4si): Likewise.
21093         (neon_vget_highv4sf): Likewise.
21094         (neon_vget_highv2di): Likewise.
21095         (neon_vget_low<mode>): Replace with....
21096         (neon_vget_lowv16qi): New pattern using canonical RTL.
21097         (neon_vget_lowv8hi): Likewise.
21098         (neon_vget_lowv4si): Likewise.
21099         (neon_vget_lowv4sf): Likewise.
21100         (neon_vget_lowv2di): Likewise.
21101
21102         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21103         test for this emitting vmov.
21104         (Vset_lane): Likewise.
21105         (Vdup_n): Likewise.
21106         (Vmov_n): Likewise.
21107
21108         * doc/arm-neon-intrinsics.texi: Regenerated.
21109
21110 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21111
21112         * config/arm/neon.md (vec_extractv2di): Correct error in register
21113         numbering to reconcile with neon_vget_lanev2di.
21114
21115 2010-07-02  Richard Guenther  <rguenther@suse.de>
21116
21117         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21118         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21119         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21120         points-to information.
21121
21122 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21123
21124         * config/s390/s390.c (override_options): Adopt prefetching
21125         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21126
21127 2010-07-02  Jan Hubicka  <jh@suse.cz>
21128
21129         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21130         (df_set_note): Just call add_reg_note.
21131         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21132         df_create_unused_note): Do not deal with lists of old notes.
21133         (df_note_bb_compute): Likewise.
21134
21135 2010-07-02  Richard Guenther  <rguenther@suse.de>
21136
21137         * tree-ssa-structalias.c (find_func_aliases): Handle
21138         pointer alignment via BIT_AND_EXPR.
21139         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21140
21141 2010-07-02  Richard Guenther  <rguenther@suse.de>
21142
21143         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21144         mismatching number of dimensions properly.
21145
21146 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21147
21148         PR target/44707
21149         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21150         (lo_sum (high ...) ...) patterns generated by earlier passes.
21151
21152 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21153
21154         * doc/install.texi (Prerequisites): Document Perl requirement on
21155         Solaris 2.
21156         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21157
21158 2010-07-02  Richard Guenther  <rguenther@suse.de>
21159
21160         PR middle-end/44777
21161         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21162
21163 2010-07-02  Jan Hubicka  <jh@suse.cz>
21164
21165         PR middle-end/44706
21166         * predict.c (predict_paths_for_bb): Handle case when control dependence
21167         BB has only abnormal edges.
21168
21169 2010-07-02  Richard Guenther  <rguenther@suse.de>
21170
21171         PR tree-optimization/44748
21172         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21173         the embedded conversion in MEM_REFs.
21174
21175 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21176
21177         * reload.c: Include toplev.h.
21178         * recog.c:  Likewise.
21179         * Makefile.in: Adjust dependencies.
21180
21181 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21182
21183         PR debug/44694
21184         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21185         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21186
21187 2010-07-01  Richard Guenther  <rguenther@suse.de>
21188
21189         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21190         types for offsets.
21191
21192 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21193
21194         PR target/44732
21195         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21196         Fix argument types.
21197
21198 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21199
21200         PR target/44727
21201         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21202         Make sure operand 0 dies.
21203
21204 2010-07-01  Richard Guenther  <rguenther@suse.de>
21205
21206         PR middle-end/42834
21207         PR middle-end/44468
21208         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21209         * doc/generic.texi (References to storage): Document MEM_REF.
21210         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21211         (print_call_name): Likewise.
21212         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21213         (build_simple_mem_ref_loc): New function.
21214         (mem_ref_offset): Likewise.
21215         * tree.h (build_simple_mem_ref_loc): Declare.
21216         (build_simple_mem_ref): Define.
21217         (mem_ref_offset): Declare.
21218         * fold-const.c: Include tree-flow.h.
21219         (operand_equal_p): Handle MEM_REF.
21220         (build_fold_addr_expr_with_type_loc): Likewise.
21221         (fold_comparison): Likewise.
21222         (fold_unary_loc): Fold
21223         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21224         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21225         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21226         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21227         (ptr_deref_may_alias_ref_p_1): Likewise.
21228         (ao_ref_base_alias_set): Properly differentiate base object for
21229         offset and TBAA.
21230         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21231         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21232         (indirect_refs_may_alias_p): Likewise.
21233         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21234         chasing code.
21235         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21236         (call_may_clobber_ref_p_1): Likewise.
21237         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21238         * expr.c (expand_assignment): Handle MEM_REF.
21239         (store_expr): Handle MEM_REFs from STRING_CSTs.
21240         (store_field): If expanding a MEM_REF of a non-addressable
21241         decl use bitfield operations.
21242         (get_inner_reference): Handle MEM_REF.
21243         (expand_expr_addr_expr_1): Likewise.
21244         (expand_expr_real_1): Likewise.
21245         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21246         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21247         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21248         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21249         (dr_analyze_indices): Likewise.
21250         (dr_analyze_alias): Likewise.
21251         (object_address_invariant_in_loop_p): Likewise.
21252         * gimplify.c (mark_addressable): Handle MEM_REF.
21253         (gimplify_cond_expr): Build MEM_REFs.
21254         (gimplify_modify_expr_to_memcpy): Likewise.
21255         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21256         (gimple_fold_indirect_ref): Adjust.
21257         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21258         * tree.def (MEM_REF): New tree code.
21259         * tree-dfa.c: Include toplev.h.
21260         (get_ref_base_and_extent): Handle MEM_REF.
21261         (get_addr_base_and_unit_offset): New function.
21262         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21263         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21264         MEM_REF.
21265         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21266         accesses if the array has just one dimension.  Remove always true
21267         parameter.  Do not require type compatibility here.
21268         (maybe_fold_offset_to_component_ref): Remove.
21269         (maybe_fold_stmt_indirect): Remove.
21270         (maybe_fold_reference): Remove INDIRECT_REF handling.
21271         Fold back to non-MEM_REF.
21272         (maybe_fold_offset_to_address): Simplify.  Deal with type
21273         mismatches here.
21274         (maybe_fold_reference): Likewise.
21275         (maybe_fold_stmt_addition): Likewise.  Also handle
21276         &ARRAY + I in addition to &ARRAY[0] + I.
21277         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21278         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21279         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21280         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21281         conversions useless.
21282         (warn_uninitialized_var): Handle MEM_REF.
21283         (maybe_rewrite_mem_ref_base): New function.
21284         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21285         to SSA form.
21286         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21287         INDIRECT_REF handling.
21288         (copy_tree_body_r): Handle MEM_REF.
21289         * gimple.c (is_gimple_addressable): Adjust.
21290         (is_gimple_address): Likewise.
21291         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21292         invariant base are invariant.
21293         (is_gimple_min_lval): Adjust.
21294         (is_gimple_mem_ref_addr): New function.
21295         (get_base_address): Handle MEM_REF.
21296         (count_ptr_derefs): Likewise.
21297         (get_base_loadstore): Likewise.
21298         * gimple.h (is_gimple_mem_ref_addr): Declare.
21299         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21300         * tree-cfg.c (verify_address): New function, split out from ...
21301         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21302         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21303         INDIRECT_REFs.
21304         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21305         INDIRECT_REF.  Allow conversions.
21306         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21307         a register does not change its size.
21308         (verify_types_in_gimple_reference): Verify MEM_REF.
21309         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21310         Handle MEM_REF.
21311         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21312         New.
21313         (mark_address_taken): Handle MEM_REF.
21314         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21315         (get_asm_expr_operands): Pass opf_not_non_addressable.
21316         (get_expr_operands): Handle opf_[not_]non_addressable.
21317         Handle MEM_REF.  Remove INDIRECT_REF handling.
21318         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21319         (search_for_addr_array): Likewise.
21320         (check_array_bounds): Likewise.
21321         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21322         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21323         (ref_always_accessed_p): Likewise.
21324         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21325         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21326         Handle MEM_REF.
21327         * cgraphbuild.c (mark_load): Properly check for NULL result
21328         from get_base_address.
21329         (mark_store): Likewise.
21330         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21331         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21332         handling for MEM_REF.
21333         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21334         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21335         * builtins.c (stabilize_va_list_loc): Use the function ABI
21336         valist type if we couldn't canonicalize the argument type.
21337         Always dereference with the canonical va-list type.
21338         (maybe_emit_free_warning): Handle MEM_REF.
21339         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21340         memmove to memcpy.
21341         * builtins.c (fold_builtin_memory_op): Use ref-all types
21342         for all memcpy foldings.
21343         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21344         (build_outer_var_ref): Likewise.
21345         (scan_omp_1_op): Likewise.
21346         (lower_rec_input_clauses): Likewise.
21347         (lower_lastprivate_clauses): Likewise.
21348         (lower_reduction_clauses): Likewise.
21349         (lower_copyprivate_clauses): Likewise.
21350         (expand_omp_atomic_pipeline): Likewise.
21351         (expand_omp_atomic_mutex): Likewise.
21352         (create_task_copyfn): Likewise.
21353         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21354         Remove old union trick.  Initialize constant offsets.
21355         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21356         INDIRECT_REF.  Init base_alias_set properly.
21357         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21358         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21359         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21360         for ARRAY_REFs.
21361         (may_insert): Remove.
21362         (visit_reference_op_load): Do not test may_insert.
21363         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21364         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21365         a field to store the constant offset this op applies.
21366         (run_scc_vn): Adjust prototype.
21367         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21368         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21369         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21370         bother about volatile qualifiers on pointers.
21371         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21372         * tree-ssa-loop-ivopts.c
21373         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21374         (strip_offset_1): Likewise.
21375         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21376         MEM_REF handling.
21377         (get_computation_cost_at): Likewise.
21378         * ipa-pure-const.c (check_op): Handle MEM_REF.
21379         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21380         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21381         and constants.
21382         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21383         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21384         (eliminate_local_variables_1): Likewise.
21385         (create_call_for_reduction_1): Likewise.
21386         (create_loads_for_reductions): Likewise.
21387         (create_loads_and_stores_for_name): Likewise.
21388         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21389         (ssa_accessed_in_tree): Handle MEM_REF.
21390         (ssa_accessed_in_assign_rhs): Likewise.
21391         (update_type_size): Likewise.
21392         (analyze_accesses_for_call_stmt): Likewise.
21393         (analyze_accesses_for_assign_stmt): Likewise.
21394         (transform_access_sites): Likewise.
21395         (transform_allocation_sites): Likewise.
21396         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21397         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21398         not handle INDIRECT_REF.
21399         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21400         (cond_store_replacement): Likewise.
21401         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21402         MEM_REF, no not handle INDIRECT_REFs.
21403         (insert_into_preds_of_block): Properly initialize avail.
21404         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21405         for ARRAY_REFs.  Properly handle reference lookups that
21406         require a bit re-interpretation.
21407         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21408         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21409         (build_ref_for_offset_1): Remove.
21410         (build_ref_for_offset): Build MEM_REFs.
21411         (gate_intra_sra): Disable for now.
21412         (sra_ipa_modify_expr): Handle MEM_REF.
21413         (ipa_early_sra_gate): Disable for now.
21414         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21415         MEM_REF handling.
21416         (disqualify_base_of_expr): Likewise.
21417         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21418         MEM_REF handling.
21419         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21420         Use mem_ref_offset.  Remove bogus folding.
21421         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21422         (make_fancy_name_1): Add support for MEM_REF.
21423         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21424         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21425         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21426         (compute_complex_ancestor_jump_func): Likewise.
21427         (ipa_analyze_virtual_call_uses): Likewise.
21428         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21429         INDIRECT_REF folding with more generalized MEM_REF folding.
21430         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21431         (forward_propagate_addr_into_variable_array_index): Also handle
21432         &ARRAY + I in addition to &ARRAY[0] + I.
21433         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21434         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21435         creates assignments with overlap.
21436         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21437         (get_frame_field): Likewise.
21438         (get_nonlocal_debug_decl): Likewise.
21439         (convert_nonlocal_reference_op): Likewise.
21440         (struct nesting_info): Add mem_refs pointer-set.
21441         (create_nesting_tree): Allocate it.
21442         (convert_local_reference_op): Insert to be folded mem-refs.
21443         (fold_mem_refs): New function.
21444         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21445         (free_nesting_tree): Free the pointer-set.
21446         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21447         (vectorizable_load): Likewise.
21448         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21449         (propagate_with_phi): Likewise.
21450         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21451         instead of INDIRECT_REFs.
21452         (compute_object_offset): Handle MEM_REF.
21453         (plus_stmt_object_size): Handle MEM_REF.
21454         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21455         for &MEM_REF.
21456         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21457         (symbol_marked_for_renaming): Likewise.
21458         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21459         (fold-const.o): Add $(TREE_FLOW_H).
21460         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21461         (find_func_clobbers): Likewise.
21462         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21463         (decompose_access): Likewise.
21464         (replace_field_acc): Likewise.
21465         (replace_field_access_stmt): Likewise.
21466         (insert_new_var_in_stmt): Likewise.
21467         (get_stmt_accesses): Likewise.
21468         (reorg_structs_drive): Disable.
21469         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21470         (ix86_canonical_va_list_type): Likewise.
21471
21472 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21473
21474         PR other/44566
21475         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21476         * target.def (struct gcc_target): Replace enum reg_class with
21477         reg_class_t in hook argument / return types.
21478         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21479         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21480         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21481         * targhooks.h (default_branch_target_register_class): Likewise.
21482         (default_ira_cover_classes, default_secondary_reload): Likewise.
21483         (default_memory_move_cost, default_register_move_cost): Likewise.
21484         * targhooks.c (default_branch_target_register_class): Likewise.
21485         (default_ira_cover_classes, default_secondary_reload): Likewise.
21486         (default_memory_move_cost, default_register_move_cost): Likewise.
21487         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21488         * bt-load.c (branch_target_load_optimize): Likewise.
21489         * ira.c (setup_cover_and_important_classes): Likewise.
21490         * ira-costs.c (copy_cost): Likewise.
21491         * reload1.c (emit_input_reload_insns): Likewise.
21492         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21493         * config/frv/frv.c (frv_secondary_reload): Likewise.
21494         * config/s390/s390.c (s390_secondary_reload): Likewise.
21495         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21496         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21497         (ix86_register_move_cost): Likewise.
21498         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21499         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21500         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21501         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21502         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21503         (rs6000_ira_cover_classes): Likewise.
21504         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21505         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21506         Likewise.
21507         * config/pa/pa.c (pa_secondary_reload): Likewise.
21508         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21509         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21510         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21511         * doc/tm.texi: Regenerate.
21512
21513 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21514
21515         PR bootstrrap/44726
21516         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21517         use.
21518         (build_alias_set_optimal_p): Likewise.
21519         (build_base_obj_set_for_drs): Likewise.
21520
21521 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21522
21523         * target.def: Remove comment about licensing problems of function
21524         declarations.
21525
21526         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21527         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21528         * doc/tm.texi: Regenerate.
21529
21530         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21531         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21532
21533         * target.def (enum_va_list_p): Use DEFHOOK.
21534         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21535         Rename ptype to ptree.
21536         * doc/tm.texi: Regenerate.
21537
21538         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21539         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21540         * doc/tm.texi: Regenerate.
21541
21542         * target.def (memory_move_cost): Use DEFHOOK.
21543         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21544         Rename regclass AKA class to rclass.
21545         * doc/tm.texi: Regenerate.
21546
21547         * target.def (pragma_parse): Use DEFHOOK.
21548         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21549         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21550         * doc/tm.texi: Regenerate.
21551
21552         * target.def (pass_by_reference): Use DEFHOOK.
21553         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21554         * doc/tm.texi: Regenerate.
21555
21556         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21557         Use DEFHOOK.
21558         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21559         * doc/tm.texi: Regenerate.
21560
21561         * target.def (return_pops_args): Use DEFHOOK.
21562         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21563         Rename stack-size to size.
21564         * doc/tm.texi: Regenerate.
21565
21566         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21567         last-sched_cycle to last_clock, cur_cycle to clock.
21568         * doc/tm.texi.in: Use @hook.
21569         * doc/tm.texi: Regenerate.
21570
21571         * target.def (print_operand, print_operand_address): Update comment.
21572         (print_operand_punct_valid_p): Likewise.
21573
21574 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21575
21576         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21577         to rtl.h.
21578         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21579         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21580         * rtl-error.h: New.
21581         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21582         * rtl-error.c: Likewise.
21583         * reload.c: Likewise.
21584         * recog.c:  Likewise.
21585         * sel-sched.c: Likewise.
21586         * function.c: Likewise.
21587         * reg-stack.c: Likewise.
21588         * cfgrtl.c: Likewise.
21589         * reload1.c: Likewise.
21590         * final.c: Include rtl-error.
21591         * Makefile.in: Adjust dependencies.
21592
21593 2010-06-30  Jan Hubicka  <jh@suse.cz>
21594
21595         PR middle-end/PR44706
21596         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21597         to return the value.
21598
21599 2010-06-30  Michael Matz  <matz@suse.de>
21600
21601         PR bootstrap/44699
21602         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21603         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21604         a gimple reg, attach the original VDEF to the last store in the
21605         sequence.
21606
21607 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21608
21609         PR other/44034
21610         * config/darwin.c (darwin_override_options): Use renamed
21611         targetm.asm_out.emit_unwind_label.
21612
21613 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21614
21615         PR tree-optimization/39799
21616         * tree-inline.c (remap_ssa_name): Initialize variable only if
21617         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21618
21619 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21620
21621         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21622
21623 2010-06-30  Richard Guenther  <rguenther@suse.de>
21624
21625         PR target/44722
21626         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21627         against oscillation with reverse peephole2.
21628
21629 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21630
21631         PR target/44721
21632         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21633         Fix last commit.
21634
21635 2010-06-30  Nick Clifton  <nickc@redhat.com>
21636
21637         * config/rx/rx-modes.def: New file.
21638         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21639         (CC_REGNUM): Define.
21640         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21641         register.
21642         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21643         (SELECT_CC_MODE): Define.
21644         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21645         (reg:CC CC_REG) instead of (cc0).
21646         (attr "cc"): Delete.
21647         (cbranchsi4): Do not split compare and branch here. Instead move
21648         it to...
21649         (cbranchsi4_<code>): ... here.  New patterns.
21650         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21651         to emit the compare instruction.
21652         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21653         cc_status flags.
21654         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21655         FIRST_PSEUDO_REGNUM.
21656         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21657         (rx_notice_update_cc): Delete.
21658         (rx_cc_modes_compatible): New function.
21659         (flags_needed_for_conditional): New function.
21660         (flags_from_mode): New function.
21661         (rx_compare_redundant): New function - scans backwards through
21662         insn list to find out if condition flags are already set correctly.
21663         (TARGET_CC_MODES_COMPATIBLE): Define.
21664         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21665
21666         * config/rx/rx.h (BRANCH_COST): Define.
21667         (REGISTER_MOVE_COST): Define.
21668         * config/rx/predicates (rx_source_operand): Allow all constant types.
21669         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21670         (tstsi4): New pattern.
21671         * config/rx/rx.c (rx_memory_move_cost): Define.
21672         (TARGET_MEMORY_MOVE_COST): Define.
21673
21674 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21675
21676         * tree.h (block_may_fallthru): Declare here.
21677         * tree-flow.h (block_may_fallthru): Do not declare here.
21678         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21679         bitmap.h
21680         * Makefile.in (c-typeck.o): Update dependencies.
21681
21682 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21683
21684         PR debug/44694
21685         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21686         * cselib.c (cfa_base_preserved_regno): New static variable.
21687         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21688         of REGNO (cfa_base_preserved_val->locs->loc).
21689         (cselib_preserve_cfa_base_value): Add regno argument, set
21690         cfa_base_preserved_regno to it.
21691         (cselib_invalidate_regno): Allow removal of registers other than
21692         cfa_base_preserved_regno from cfa_base_preserved_val.
21693         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21694         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21695         of MEM addresses, if not on LHS.
21696         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21697         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21698
21699 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21700
21701         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21702         static variables.
21703         (peep2_buf_position): New static function.
21704         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21705         peephole2_optimize): Use it.
21706         (peep2_attempt, peep2_update_life): New static functions, broken out
21707         of peephole2_optimize.
21708         (peep2_fill_buffer): New static function.
21709         (peephole2_optimize): Change the main loop to try to fill the buffer
21710         with the maximum number of insns before matching them against
21711         peepholes.  Use a forward scan.  Remove special case for targets with
21712         conditional execution.
21713         * genrecog.c (change_state): Delete dead code.
21714         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21715         Rewrite so as not to expect the second insn to have had a peephole
21716         applied yet.
21717
21718 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21719
21720         * genhooks.c (emit_findices): Cast field precision to int.
21721         (emit_documentation): Likewise.
21722
21723 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21724
21725         PR tree-optimization/43801
21726         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21727         if old_decl was DECL_ONE_ONLY.
21728
21729         PR debug/44668
21730         * dwarf2out.c (add_accessibility_attribute): New function.
21731         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21732         instead of adding DW_AT_accessibility manually.
21733         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21734         gen_typedef_die): Use it.
21735
21736 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21737
21738         * vmsdbgout.c (full_name): Just output the file name if not native.
21739
21740 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21741
21742         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21743         (funcnam_table): New static table.
21744         (funcnum_table): New static table.
21745         (write_rtnbeg): Write value saved in funcnum_table.
21746         (write_rtnend): Write value saved in funcnum_table.
21747         (vmsdbgout_begin_function): Save current function info in
21748         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21749         (vmsdbgout_finish): Iterate over funcnum_table.
21750
21751 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21752
21753         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21754         (vmsdbgout_type_decl): Declare
21755         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21756         (FUNC_EPILOGUE_LABEL): New macro
21757         (vmsdbgout_begin_epilogue): New function.
21758         (vmsdbgout_type_decl): New function.
21759
21760 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21761
21762         * vmsdbg.h: Update copyright.
21763
21764 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21765
21766         * vmsdbg.h (DST_K_TBG): New DST constant.
21767         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21768         (write_modbeg): Cast module_language to avoid warning.
21769         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21770
21771 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21772
21773         PR other/44034
21774         * target.def, doc/tm.texi.in, genhooks.c: New files.
21775         * target.h: Instead of defining individual hook members,
21776         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21777         include target.def.
21778         * target-def.h: Instead of defining individual hook initializers,
21779         include target-hooks-def.h.
21780         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21781         targetm.live_on_entry -> targetm.extra_live_on_entry
21782         targetm.sched.md_finish ->targetm.sched.finish
21783         targetm.sched.md_init -> targetm.sched.init
21784         targetm.sched.md_init_global -> targetm.sched.init_global
21785         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21786         targetm.asm_out.except_table_label ->
21787           targetm.asm_out.emit_except_table_label
21788         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21789         targetm.target_help -> targetm.help
21790         targetm.vectorize.builtin_support_vector_misalignment ->
21791           targetm.vectorize.support_vector_misalignment
21792         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21793         targetm.file_start_file_directive ->
21794          targetm.asm_file_start_file_directive
21795         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21796         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21797         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21798         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21799           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21800         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21801           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21802         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21803         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21804         * Makefile.in (TARGET_H): Depend on target.def.
21805         (TARGET_DEF_H): Depend on target-hooks-def.h.
21806         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21807         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21808         * doc/tm.texi: Regenerate.
21809
21810         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21811
21812         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21813         (targetm.sched.init): Likewise.
21814
21815 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21816
21817         PR bootstrap/44713
21818         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21819         (function_arg_advance_32): Const-ify TYPE parameter.
21820         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21821         (ix86_function_arg_advance): Change type of NAMED to bool.
21822         (function_arg_32): Const-ify CUM and TYPE parameters.
21823         (function_arg_64): Likewise.  Change type of NAMED to bool.
21824         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21825         to bool.
21826         (ix86_function_arg): Change type of NAMED to bool.
21827         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21828         last argument as a bool.
21829
21830 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21831
21832         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21833         (OVERRIDE_OPTIONS): Add note of obsolescence.
21834         Replace references with references to TARGET_OPTION_OVERRIDE.
21835         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21836          the macro).
21837         * targhooks.c (default_target_option_override): New function.
21838         * targhooks.h (default_target_option_override): Declare.
21839         * target.h (struct gcc_target): Add override member to
21840         target_option member.
21841         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21842         targetm.target_option.override call.
21843         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21844         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21845
21846 2010-06-29  Jan Hubicka  <jh@suse.cz>
21847
21848         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21849
21850 2010-06-29  Jan Hubicka  <jh@suse.cz>
21851
21852         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21853         unreachable.
21854         (rebuild_frequencies): New function.
21855         * predict.h (rebuild_frequencies): Declare.
21856         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21857         entry block and edge reaching new_entry.
21858         (tree_function_versioning): When doing partial cloning, rebuild
21859         frequencies when done.
21860         * passes.c (execute_function_todo): Use rebild_frequencies.
21861
21862 2010-06-29  Richard Guenther  <rguenther@suse.de>
21863
21864         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21865         * tree-flow.h (enum noalias_state): Remove.
21866         (struct var_ann_d): Remove noalias_state member.
21867
21868 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21869
21870         PR target/43902
21871         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21872         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21873         (maddhidi4): Likewise.
21874
21875         Revert parts of the change for PR25130.
21876         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21877         MEM_ALIAS_SET.
21878
21879 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21880
21881         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21882         targetm.calls.function_incoming_arg, and
21883         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21884         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21885         * target.h (struct gcc_target): Add function_arg_advance,
21886         function_arg, and function_incoming_arg fields.
21887         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21888         (TARGET_FUNCTION_INCOMING_ARG): Define.
21889         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21890         and TARGET_FUNCTION_INCOMING_ARG.
21891         * targhooks.h (default_function_arg_advance): Declare.
21892         (default_function_arg, default_function_incoming_arg): Declare.
21893         * targhooks.c (default_function_arg_advance): New function.
21894         (default_function_arg, default_function_incoming_arg): New function.
21895         * config/i386/i386.c (function_arg_advance): Rename to...
21896         (ix86_function_arg_advance): ...this.  Make static.
21897         (function_arg): Rename to...
21898         (ix86_function_arg): ...this.  Make static.
21899         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21900         (TARGET_FUNCTION_ARG): Define.
21901         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21902         (FUNCTION_ARG): Delete.
21903         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21904         (function_arg): Delete prototype.
21905
21906 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21907
21908         * reginfo.c (init_reg_sets_1): Adjust comments.
21909         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21910         * calls.c (prepare_call_address): Likewise.
21911         (emit_call_1): Use targetm.calls.return_pops_args.
21912         (expand_call): Likewise.
21913         * function.c (assign_parms): Likewise.
21914         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21915         * target.h (struct gcc_target) [struct calls]: Add
21916         return_pops_args field.
21917         * targhooks.h (default_return_pops_args): Declare.
21918         * targhooks.c (default_return_pops_args): Define.
21919         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21920         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21921         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21922         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21923         documentation.
21924         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21925         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21926         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21927         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21928         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21929         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21930         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21931         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21932         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21933         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21934         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21935         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21936         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21937         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21938         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21939         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21940         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21941         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21942         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21943         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21944         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21945         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21946         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21947         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21948         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21949         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21950         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21951         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21952         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21953         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21954         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21955         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21956         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21957         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21958         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21959         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21960         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21961         * config/i386/i386.c (ix86_return_pops_args): Make static.
21962         Constify arguments.
21963         (TARGET_RETURN_POPS_ARGS): Define.
21964         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21965         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21966         (TARGET_RETURN_POPS_ARGS): Define.
21967         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21968         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21969         (TARGET_RETURN_POPS_ARGS): Define.
21970
21971 2010-06-29  Richard Guenther  <rguenther@suse.de>
21972
21973         PR middle-end/44667
21974         * tree-inline.c (initialize_inlined_parameters): Make sure
21975         to remap the inlined parameter variable substitutions types.
21976
21977 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21978
21979         PR rtl-optimization/44659
21980         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21981         result of force_to_mode if it partially re-expanded the compound.
21982
21983 2010-06-28  Jan Hubicka  <jh@suse.cz>
21984
21985         PR middle-end/44671
21986         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
21987         RESULT_DECL.
21988
21989 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
21990
21991         * double-int.h (force_fit_type_double): Remove declaration.
21992         * double-int.c (force_fit_type_double): Move to tree.c.
21993         * tree.h (force_fit_type_double): Declare.
21994         * tree.h (force_fit_type_double): Moved from double-int.c. Use
21995         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
21996         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
21997         * convert.c (convert_to_pointer): Adjust call to
21998         force_fit_type_double.
21999         * tree-vrp.c (extract_range_from_assert,
22000         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22001         * fold-const.c: Update comment.
22002         (int_const_binop, fold_convert_const_int_from_int,
22003         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22004         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22005         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22006         round_up_loc): Adjust call to force_fit_type_double.
22007
22008 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22009
22010         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22011
22012 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22013
22014         * tree-sra.c (convert_callers): New parameter, change fndecls of
22015         recursive calls.
22016         (modify_function): Pass the old decl to convert_callers.
22017
22018 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22019
22020         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22021         ipa_check_create_node_params and ipa_initialize_node_params with
22022         checking asserts they are not necessary.
22023
22024 2010-06-28  Jan Hubicka  <jh@suse.cz>
22025
22026         PR tree-optimization/44687
22027         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22028
22029 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22030
22031         PR c++/44535
22032         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22033         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22034         instead of BINFO_BASE_BINFO.
22035
22036 2010-06-28  Michael Matz  <matz@suse.de>
22037
22038         PR middle-end/44592
22039         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22040         proper VDEF chain for intermediate stores in the sequence.
22041
22042 2010-06-28  Jan Hubicka  <jh@suse.cz>
22043
22044         PR tree-optimization/44357
22045         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22046         uninlinable functions.
22047
22048 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22049
22050         * config.gcc (powerpc*-*-*): Handle titan.
22051         * config/rs6000/rs6000.c (titan_cost): New costs.
22052         (rs6000_override_options): Add "titan" to processor_target_table.
22053         Add Titan to branch alignment logic.
22054         Correctly set rs6000_cost for titan.
22055         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22056         * config/rs6000/titan.md: New file.
22057         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22058
22059 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22060
22061         * tree-browser.c (TB_history_stack): Convert to a VEC.
22062         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22063         (TB_history_prev): Likewise.
22064
22065 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22066
22067         * vec.h (vec_heap_free): Add parentheses around free.
22068
22069 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22070
22071         * system.h: Poison GCC_EXCEPT_H for front-end files.
22072
22073         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22074         langhook.
22075         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22076         Define to NULL by default.
22077         * except.h: Define GCC_EXCEPT_H.
22078         (doing_eh): Remove prototype.
22079         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22080         (lang_protect_cleanup_actions): Remove.
22081         * except.c (lang_protect_cleanup_actions): Remove.
22082         (doing_eh): Remove.
22083         (gen_eh_region): Don't check doing_eh here.
22084         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22085         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22086         instead of lang_protect_cleanup_actions.
22087         * omp-low.c (maybe_catch_exception): Likewise.
22088         * Makefile.in: Update dependencies.
22089
22090 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22091
22092         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22093         (struct cgraph_local_info): new used_from_object_file flag.
22094         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22095         (cgraph_clone_node): initialize used_from_object_file.
22096         (cgraph_create_virtual_clone): initialize used_from_object_file.
22097         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22098         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22099         when compiling with -fwhole-program.
22100         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22101         internal resolver.
22102         * ipa.c (function_and_variable_visibility): Set externally_visible
22103         flag of varpool_node if used_from_object_file flag is set.
22104         (cgraph_externally_visible_p): check used_from_object_file flag.
22105         * doc/invoke.texi (-fwhole-program option): Change description of
22106         externally_visible attribute accordingly.
22107         * doc/extend.texi (externally_visible): Ditto.
22108
22109 2010-06-27  Jan Hubicka  <jh@suse.cz>
22110
22111         * params.def (max-inline-insns-auto): Default to 40.
22112         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22113
22114 2010-06-27  Jan Hubicka  <jh@suse.cz>
22115
22116         PR middle-end/44671
22117         PR middle-end/44686
22118         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22119         signature change.
22120         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22121         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22122
22123 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22124
22125         * target.h (struct gcc_target): Add register_move_cost field.
22126         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22127         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22128         * targhooks.c (default_register_move_cost): New function.
22129         * targhooks.h (default_register_move_cost): Declare function.
22130         * defaults.h (REGISTER_MOVE_COST): Delete.
22131         * ira-int.h (ira_register_move_cost): Update comment.
22132         * ira.c (ira_register_move_cost): Update comment.
22133         * reload.h (register_move_cost): Declare.
22134         * reginfo.c (register_move_cost): New function.
22135         (move_cost): Update comment.
22136         (init_move_cost, memory_move_secondary_cost): Replace
22137         REGISTER_MOVE_COST with register_move_cost.
22138         * postreload.c (reload_cse_simplify_set): (Ditto.).
22139         * reload.c (find_valid_class, find_reloads): (Ditto.).
22140         * reload1.c (choose_reload_regs): (Ditto.).
22141         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22142         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22143         * doc/md.texi (can_create_pseudo_p): Update documentation.
22144
22145         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22146         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22147         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22148         (TARGET_MEMORY_MOVE_COST): Define.
22149
22150         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22151         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22152         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22153         (TARGET_MEMORY_MOVE_COST): Define.
22154
22155 2010-06-27  Richard Guenther  <rguenther@suse.de>
22156
22157         PR tree-optimization/44683
22158         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22159         false edge from the inverted condition.
22160
22161 2010-06-27  Richard Guenther  <rguenther@suse.de>
22162
22163         PR middle-end/44684
22164         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22165         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22166         for register LHS.  Or non-store assignments.
22167
22168 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22169
22170         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22171         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22172         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22173         (sparc_emit_set_const64): Likewise.
22174
22175 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22176
22177         * config/mips/mips.md (alu_type): New attribute.
22178         (type): Infer type from alu_type.
22179         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22180         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22181         *subsi3_extended, negsi2, negdi2, *low<mode>,
22182         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22183         xor<mode>3, *nor<mode>3,
22184         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22185         *zero_extendhi_truncqi):  Set alu_type instead of type.
22186
22187 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22188
22189         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22190         splay_tree_new_ggc call.
22191         (alpha_use_linkage): Likewise.
22192
22193 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22194
22195         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22196         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22197         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22198         (static_specs): Remove switches_need_spaces.
22199         (process_command, do_self_spec): Hardcode handling "-o" instead of
22200         checking switches_need_spaces.
22201         * system.h (SWITCHES_NEED_SPACES): Poison.
22202
22203 2010-06-26  Richard Guenther  <rguenther@suse.de>
22204
22205         PR tree-optimization/44393
22206         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22207         stmt removal and VOP renaming.
22208         (generate_memset_zero): Remove redundant stmt updating.
22209         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22210         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22211
22212 2010-06-26  Jan Hubicka  <jh@suse.cz>
22213
22214         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22215         edges comming from header are equivalent.
22216         (visit_bb): Handle PHIs correctly.
22217         * tree-inline.c (copy_phis_for_bb): Be able to copy
22218         PHI from entry edge.
22219         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22220
22221 2010-06-26  Richard Guenther  <rguenther@suse.de>
22222
22223         PR middle-end/44674
22224         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22225         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22226
22227 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22228
22229         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22230         add_infile, alloc_switch): New.
22231         (process_command): Remove variable lang_n_infiles.  Process
22232         options in a single pass.  Use new functions for allocating
22233         infiles and switches arrays.  Properly skip operands of
22234         -Xpreprocessor and -Xassembler.
22235
22236 2010-06-26  Jan Hubicka  <jh@suse.cz>
22237
22238         PR middle-end/44671
22239         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22240         cgraph_make_decl_local call; fix typo copying RTL data.
22241
22242 2010-06-25  DJ Delorie  <dj@redhat.com>
22243
22244         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22245         (m32c_output_aligned_common): Likewise.
22246         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22247         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22248         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22249         (m32c_register_pragmas): Register it.
22250         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22251         (m32c_insert_attributes): Set #pragma address decls volatile.
22252         (pragma_entry_eq): New.
22253         (pragma_entry_hash): New.
22254         (m32c_note_pragma_address): New.
22255         (m32c_get_pragma_address): New.
22256         (m32c_output_aligned_common): New.
22257         * doc/extend.texi: Document the new pragma.
22258
22259         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22260         also.
22261         * config/m32c/predicates.md (m32c_any_operand): Check the code
22262         instead of memory_operand so as to allow matching volatile MEMs.
22263         (m32c_nonimmediate_operand): Likewise.
22264         (mra_operand): Allow volatiles.
22265
22266 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22267
22268         PR debug/44610
22269         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22270         address if the offset is unknown.
22271
22272 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22273
22274         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22275         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22276         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22277         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22278         to ia64_start_function. Invoke it.
22279         * config/ia64/ia64.c (ia64_start_function): Call new function
22280         dwarf2out_vms_debug_main_pointer.
22281
22282 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22283
22284         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22285         statements computing the true predicate.
22286
22287 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22288
22289         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22290         to boolean_true_node.
22291         (reset_bb_predicate): New.
22292         (predicate_bbs): Call reset_bb_predicate.
22293
22294 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22295
22296         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22297         (tree_if_conversion): Returns true when something has been changed.
22298         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22299         changed something.
22300
22301 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22302
22303         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22304         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22305         * tree-if-conv.c: Include dbgcnt.h.
22306         (tree_if_conversion): Use if_conversion_tree to count the number of
22307         if-convertible loops.
22308
22309 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22310
22311         * common.opt (fprefetch-loop-arrays): Re-define
22312         -fprefetch-loop-arrays as a tri-state option with the initial
22313         value of -1.
22314         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22315         pass only when flag_prefetch_loop_arrays > 0.
22316         * toplev.c (process_options): Note that, with tri-states,
22317         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22318         * config/i386/i386.c (override_options): Enable prefetching at -O3
22319         for a set of CPUs that sw prefetching is helpful.
22320         (software_prefetching_beneficial_p): New.  Return TRUE if software
22321         prefetching is beneficial for the given CPU.
22322
22323 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22324
22325         PR rtl-optimization/44326
22326         * implicit-zee.c (find_removable_zero_extends): Replace
22327         INSN_P with NONDEBUG_INSN_P.
22328
22329 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22330
22331         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22332         (struct ipa_node_params): Removed the modification_analysis_done flag.
22333         (ipa_is_param_modified): Removed.
22334         (ipa_analyze_node): Declare.
22335         (ipa_compute_jump_functions): Remove declaration.
22336         (ipa_count_arguments): Likewise.
22337         (ipa_detect_param_modifications): Likewise.
22338         (ipa_analyze_params_uses): Likewise.
22339         * ipa-prop.c (struct param_analysis_info): New type.
22340         (visit_store_addr_for_mod_analysis): Removed.
22341         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22342         moved down in the file.
22343         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22344         (ipa_count_arguments): Made static.
22345         (mark_modified): New function.
22346         (is_parm_modified_before_call): New function.
22347         (compute_pass_through_member_ptrs): New parameter parms_info, call
22348         is_parm_modified_before_call instead of ipa_is_param_modified.
22349         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22350         it to compute_pass_through_member_ptrs.
22351         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22352         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22353         on the callee if it is analyzed.  Made static.
22354         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22355         is_parm_modified_before_call instead of ipa_is_param_modified.
22356         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22357         ipa_analyze_indirect_call_uses.
22358         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22359         ipa_analyze_call_uses.
22360         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22361         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22362         (ipa_analyze_node): New function.
22363         (ipa_print_node_params): Do not dump the modified flag.
22364         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22365         it.  Do not stream the modified parameter flag.
22366         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22367         it.  Do not stream the modified parameter flag.
22368         * ipa-cp.c (ipcp_analyze_node): Removed.
22369         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22370         with only a call to ipa_analyze_node.
22371         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22372         node with only a call to ipa_analyze_node.
22373
22374 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22375
22376         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22377
22378 2010-06-25  Jan Hubicka  <jh@suse.cz>
22379
22380         * tree-pass.h (pass_split_functions): Declare.
22381         * opts.c (decode_options): Enable function splitting at -O2
22382         * timevar.def (TV_IPA_FNSPLIT): New macro.
22383         * ipa-split.c: New file.
22384         * common.opt (-fpartial-inlining): New flag.
22385         * Makefile.in (ipa-split.o): New object file.
22386         * passes.c (init_optimization_passes): Add ipa-split.
22387         * params.def (partial-inlining-entry-probability): New parameters.
22388         * doc/invoke.texi (-fpartial-inlining): New.
22389
22390 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22391
22392         PR 44665
22393         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22394         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22395         (gimplify_expr): Likewise.
22396
22397 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22398
22399         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22400         statements instead of bailing out on them.
22401         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22402         parameter are in the same BB as the condition.  Update comments.
22403
22404 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22405
22406         PR middle-end/43866
22407         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22408         true or always false, return NULL_TREE.
22409         (tree_unswitch_single_loop): Optimize conditions even when reaching
22410         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22411         using entry checks, then do still reachable block discovery and consider
22412         only conditions in still reachable basic blocks in the loop.
22413
22414         PR tree-optimization/44539
22415         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22416         the call doesn't have LHS, but has VDEF.
22417
22418 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22419
22420         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22421         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22422         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22423         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22424         * system.h (MODIFY_TARGET_NAME): Poison.
22425
22426 2010-06-25  Alan Modra  <amodra@gmail.com>
22427
22428         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22429         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22430         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22431         CMODEL_LARGE as default.
22432         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22433         (offsettable_ok_by_alignment): Delete.
22434         (rs6000_emit_move): Remove mcmodel=medium optimization.
22435
22436 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22437
22438         With large parts from Jim Wilson:
22439         PR target/43902
22440         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22441         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22442         * optabs.c (optab_for_tree_code): Likewise.
22443         (expand_widen_pattern_expr): Likewise.
22444         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22445         out of execute_optimize_widening_mul.
22446         (convert_plusminus_to_widen): New function.
22447         (execute_optimize_widening_mul): Use the two new functions.
22448         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22449         Remove code to generate widening multiply-accumulate.  Add support
22450         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22451         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22452         (dump_gimple_assign): Call it when appropriate.
22453         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22454         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22455         (expand_gimple_stmt_1): Likewise.
22456         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22457         WIDEN_MULT_MINUS_EXPR.
22458         * tree-ssa-operands.c (get_expr_operands): Likewise.
22459         * tree-inline.c (estimate_operator_cost): Likewise.
22460         * gimple.c (extract_ops_from_tree_1): Renamed from
22461         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22462         (gimple_build_assign_stat): Support operations with three operands.
22463         (gimple_build_assign_with_ops_stat): Likewise.
22464         (gimple_assign_set_rhs_from_tree): Likewise.
22465         (gimple_assign_set_rhs_with_ops_1): Renamed from
22466         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22467         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22468         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22469         WIDEN_MULT_MINUS_EXPR.
22470         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22471         (extract_ops_from_tree_1): Adjust declaration.
22472         (gimple_assign_set_rhs_with_ops_1): Likewise.
22473         (gimple_build_assign_with_ops): Pass NULL for last operand.
22474         (gimple_build_assign_with_ops3): New macro.
22475         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22476         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22477         functions.
22478         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22479         (verify_gimple_assign): Call it.
22480         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22481         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22482         functions for dealing with three-operand statements.
22483         * tree.c (commutative_ternary_tree_code): New function.
22484         * tree.h (commutative_ternary_tree_code): Declare it.
22485         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22486         ternary statements.
22487         (gimple_assign_nonzero_warnv_p): Likewise.
22488         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22489         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22490         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22491         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22492         (struct hashtable_expr): New member ternary in the union.
22493         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22494         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22495         (iterative_hash_hashable_expr): Likewise.
22496         (print_expr_hash_elt): Handle EXPR_TERNARY.
22497         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22498         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22499         statements.  Handle GIMPLE_TERNARY_RHS.
22500
22501 2010-06-25  Jan Hubicka  <jh@suse.cz>
22502
22503         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22504
22505 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22506
22507         PR c/44517
22508         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22509         parameters are not good.
22510         (c_parser_parameter_declaration): Error unknown type name if the type
22511         name can't start declaration specifiers.
22512
22513 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22514
22515         * gcc.c (translate_options): Don't mention +e in comment.
22516         (process_command): Don't handle +e specially.
22517
22518 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22519
22520         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22521
22522         * ira-build.c (merge_hard_reg_conflicts): New function.
22523         (create_cap_allocno, copy_info_to_removed_store_destinations,
22524         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22525         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22526         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22527         copy_nifo_to_removed_store_destination): Use them.
22528         * ira-lives.c (make_hard_regno_born): New function, split out of
22529         make_regno_born.
22530         (make_allocno_born): Likewise.
22531         (make_hard_regno_dead): New function, split out of make_regno_dead.
22532         (make_allocno_dead): Likewise.
22533         (inc_register_pressure): New function, split out of set_allocno_live.
22534         (dec_register_pressure): New function, split out of clear_allocno_live.
22535         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22536         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22537         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22538         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22539         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22540         mark_pseudo_regno_live.
22541         (process_bb_node_lives): Use mark_pseudo_regno_live,
22542         make_hard_regno_born and make_allocno_dead.
22543         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22544         set_allocno_live, clear_allocno_live): Delete functions.
22545
22546         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22547         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22548         functions.
22549         (ira_flattening): Use ira_parent_allocno.
22550         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22551         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22552
22553         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22554         statement.
22555
22556         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22557         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22558         minmax_set_iter_cond, minmax_set_iter_next,
22559         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22560         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22561         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22562         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22563         uses changed.
22564
22565         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22566         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22567         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22568         All uses changed.
22569
22570 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22571
22572         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22573         (peephole2 to convert zero_extract/compare of single bit to
22574          lshift/compare): New.
22575
22576 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22577
22578         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22579         recursive call and call to 'int_const_binop'.
22580         (build_range_check, fold_cond_expr_with_comparison, unextend,
22581         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22582         multiple_of_p): Adjust call to const_binop.
22583
22584 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22585
22586         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22587         determine size of XFmode operand.
22588         (XFmode extended DFmode push splitter): Ditto.
22589         (XFmode extended SFmode push splitter): Ditto.
22590
22591 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22592
22593         PR target/44588
22594         * config/i386/i386.md (extract_code): New.
22595         (<u>divmodqi4): Likewise.
22596         (divmodhiqi3): Likewise.
22597         (udivmodhiqi3): Likewise.
22598         (<u>divqi3): Remvoved.
22599
22600 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22601
22602         PR middle-end/44492
22603         * recog.h (struct recog_data): Add is_asm field.
22604         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22605         present in constraints of inline-asm operand and memory operand
22606         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22607         (extract_insn): Initialize recog_data.is_asm.
22608         * doc/md.texi (Constraints): Document operand side-effect rules.
22609
22610 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22611
22612         * c-parser.c (c_parser_conditional_expression): Call
22613         warn_for_omitted_condop.
22614         * doc/invoke.texi: Document omitted condop warning.
22615
22616 2010-06-24  Nick Clifton<nickc@redhat.com>
22617
22618         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22619         insn in the sequence is a jump insn before setting its label.
22620
22621 2010-06-24  Alan Modra  <amodra@gmail.com>
22622
22623         * collect2.c (main): Match exactly --version and --help.
22624
22625 2010-06-24  DJ Delorie  <dj@redhat.com>
22626
22627         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22628
22629 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22630
22631         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22632         using X87MODEF mode iterator.
22633         (pushsf splitter): Macroize splitter using P mode iterator.
22634         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22635         mode iterator.
22636
22637         (*movxf_internal): Rename from *movxf_integer.
22638         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22639         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22640         (*movdf_internal): Rename from *movdf_integer.
22641         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22642         (*movsf_internal): Rename from *movdf_1.
22643
22644 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22645
22646         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22647         (const_gimple_seq_node): Removed typedefs.
22648
22649         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22650         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22651
22652 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22653
22654         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22655         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22656         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22657         and CODE_FOR_vec_extract_lo_v4df.
22658
22659         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22660         Changed to define_insn_and_split.
22661         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22662         (vec_extract_lo_v16hi): Likewise.
22663         (vec_extract_lo_v32qi): Likewise.
22664         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22665         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22666
22667 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22668
22669         PR target/44640
22670         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22671         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22672         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22673         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22674         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22675
22676         PR target/44640
22677         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22678
22679         PR other/44644
22680         * df-core.c (struct df): Rename to df_d.
22681         * df.h (struct df): Likewise.
22682         * dse.h (struct df): Remove forward declaration.
22683         * recog.h (struct insn_data): Rename to:
22684         (struct_insn_data_d).  Adjusted all users.
22685
22686 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22687
22688         PR ada/22220
22689         * doc/install.texi: Update requirements to build GNAT.
22690
22691 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22692
22693         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22694         enum type.
22695         (m68k_sched_attr_opx_type): Remove unreachable return.
22696         (m68k_sched_attr_opy_type): Likewise.
22697         (m68k_sched_attr_size): Likewise.
22698         (sched_get_opxy_mem_type): Likewise.
22699         (m68k_sched_attr_op_mem): Likewise.
22700
22701 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22702
22703         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22704         new statement and adjust VDEF only if necessary.  Remove superfluous
22705         call to maybe_clean_or_replace_eh_stmt.
22706         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22707         copy the flags.
22708         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22709         * tree-inline.c (copy_bb): ...and not there.
22710
22711 2010-06-22  Cary Coutant  <ccoutant@google.com>
22712
22713         * dwarf2out.c (is_nested_in_subprogram): New function.
22714         (should_move_die_to_comdat): Use it.
22715         (copy_ancestor_tree): Don't mark DIEs here.
22716         (copy_decls_walk): Start walk from root of newly-added tree;
22717         mark DIEs here instead.
22718
22719 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22720
22721         * config/i386/i386.md (unit): Also check sseishft1.
22722
22723 2010-06-22  Jan Hubicka  <jh@suse.cz>
22724
22725         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22726         enabled.
22727
22728 2010-06-22  Jan Hubicka  <jh@suse.cz>
22729
22730         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22731         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22732         Return true if something changed.
22733         * df.h (df_confluence_function_n): Return bool.
22734         * df-core.c (df_worklist_propagate_forward,
22735         df_worklist_propagate_backward): Track changes and ages.
22736         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22737         track ages.
22738         * dse.c (dse_confluence_n): Return always true.
22739
22740 2010-06-22  Jan Hubicka  <jh@suse.cz>
22741
22742         * bitmap.c (bitmap_clear_bit): Micro optimize.
22743
22744 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22745
22746         * config/i386/i386.md (SWI1248x): New mode iterator.
22747         (SWI48x): Ditto.
22748         (SWI12): Ditto.
22749         (SWI24): Ditto.
22750
22751         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22752         SWI1248x mode iterator.
22753         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22754         using SWI124 mode iterator.
22755         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22756         mode iterator.
22757         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22758         *pushdi2_prologue_rex64 using P mode iterator.
22759         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22760         using SWI48 mode iterator.
22761         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22762         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22763         using SWI1248x mode iterator.
22764         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22765         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22766         SWI48 mode iterator.
22767         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22768         iterator.
22769         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22770         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22771         SWI12 mode iterator.
22772         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22773         SWI12 mode iterator.
22774         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22775         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22776         SWI24 mode iterator.
22777         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22778         SWI48 mode iterator.
22779         (mov<mode>_insn_1): New expander.
22780         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22781         using SWI48x mode iterator.
22782
22783         (*movoi_internal_avx): Rename from *movoi_internal.
22784         (*movti_internal_rex64): Rename from *movti_rex64.
22785         (*movti_internal_sse): Rename from *movti_sse.
22786         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22787         (*movdi_internal): Rename from *movdi_2.
22788         (*movsi_internal): Rename from *movsi_1.
22789         (*movhi_internal): Rename from *movhi_1.
22790         (*movqi_internal): Rename from *movqi_1.
22791
22792         (insv): Update the call to gen_movsi_insv_1 for rename.
22793         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22794
22795 2010-06-22  Jan Hubicka  <jh@suse.cz>
22796
22797         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22798         to ...
22799         (execute_todo) ... this one.
22800
22801 2010-06-22  Alan Modra  <amodra@gmail.com>
22802
22803         PR target/44364
22804         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22805         * caller-save.c (insert_restore, insert_save): Use non-validate
22806         form of adjust_address.
22807
22808 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22809
22810         PR target/39690
22811         * config/pa/pa.c (override_options): Disable
22812         -freorder-blocks-and-partition.
22813
22814 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22815
22816         PR target/44615
22817         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22818
22819         * config/i386/i386.md (type): Add sseishft1
22820
22821         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22822         (ppro_insn_load): Likewise.
22823         (ppro_insn_store): Likewise.
22824         (ppro_insn_both): Likewise.
22825
22826         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22827         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22828         for type.
22829         (*vec_extractv2di_1_avx): Likewise.
22830         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22831         type.  Remove atom_unit.
22832         (*vec_extractv2di_1_sse2): Likewise.
22833
22834 2010-06-21  DJ Delorie  <dj@redhat.com>
22835
22836         * diagnostic.h (diagnostic_classification_change_t): New.
22837         (diagnostic_context): Add history and push/pop list.
22838         (diagnostic_push_diagnostics): Declare.
22839         (diagnostic_pop_diagnostics): Declare.
22840         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22841         from pragmas in a history chain instead of the global table.
22842         (diagnostic_push_diagnostics): New.
22843         (diagnostic_pop_diagnostics): New.
22844         (diagnostic_report_diagnostic): Scan history chain to find state
22845         of diagnostics as of the diagnostic location.
22846         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22847         diagnostic_classify_diagnostic.
22848         (enable_warning_as_error): Likewise.
22849         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22850         use in the history chain.
22851         * doc/extend.texi: Document pragma GCC diagnostic changes.
22852
22853 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22854
22855         * dwarf2out.c (add_linkage_name): New function.  Don't add
22856         anything to DW_TAG_member DIEs.
22857         (add_name_and_src_coords_attributes): Use it.
22858         (gen_variable_die): Call it for C++ static data members if
22859         specification is DW_TAG_member.
22860
22861         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22862         C++ char16_t and char32_t.
22863
22864         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22865         * genattrtab.c: Include vecprim.h.
22866         (cached_attrs, cached_attr_count, attrs_seen_once,
22867         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22868         attrs_cached_after): New variables.
22869         (find_attrs_to_cache): New function.
22870         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22871         (write_test_expr): Add attrs_cached argument, return it too,
22872         attempt to cache non-const attributes used more than once in
22873         a single case handling.
22874         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22875         emit cached_* variables.  Adjust write_attr_set callers.
22876         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22877         to find attributes that should be cached in this block.  Adjust
22878         write_test_expr callers.
22879         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22880         callers.
22881         (make_automaton_attrs): Adjust write_test_expr caller.
22882
22883         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22884         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22885         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22886         write separate internal_dfa_insn_code_* and insn_default_latency_*
22887         functions for each attribute's value and emit init_sched_attrs
22888         function and function pointers.
22889         * genattr.c (const_attrs, reservations): New variables.
22890         (gen_attr): Add const attributes to const_attrs vector.
22891         (check_tune_attr, find_tune_attr): New functions.
22892         (main): Add reservations to reservations vector.  If find_tune_attr
22893         returns true, add prototype for init_sched_attrs and make
22894         internal_dfa_insn_code and insn_default_latency function pointers,
22895         otherwise define init_sched_attrs as dummy macro.
22896         * cfgexpand.c: Include insn-attr.h.
22897         (gimple_expand_cfg): Call init_sched_attrs.
22898
22899         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22900
22901         PR target/44575
22902         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22903         va_arg from a set of register save slots into a temporary,
22904         if the container is bigger than type size, do the copying
22905         using smaller mode or using memcpy.
22906
22907         PR bootstrap/44426
22908         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22909         prototype.
22910         (sel_print_to_dot): Remove macro.
22911         (sel_print): Likewise.  New prototype.
22912         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22913         (sel_print): New function.
22914
22915 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22916
22917         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22918         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22919
22920 2010-06-21  Nick Clifton  <nickc@redhat.com>
22921
22922         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22923         (SMALL_REGISTER_CLASS): Define (to zero).
22924         (PRINT_OPERAND): Delete.
22925         (PRINT_OPERAND_ADDRESS): Delete.
22926         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22927         (rx_print_operand_address): Delete prototype.
22928         * config/rx/rx.c (rx_print_operand): Make static.
22929         Allow %H and %L to handle CONST_DOUBLEs.
22930         (rx_print_operand_address): Make static.
22931         (rx_gen_move_template): Rename local variable 'template' to
22932         out_template.
22933         (rx_function_arg): Do not pass unknown sized objects in registers.
22934         (TARGET_PRINT_OPERAND): Define.
22935         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22936
22937 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22938
22939         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22940
22941 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22942
22943         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22944         stack-alignment for simple leaf-functions.
22945
22946 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22947
22948         * doc/install.texi: Document bootstrap-lto.
22949
22950 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22951
22952         PR debug/44248
22953         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22954         (input_function): Drop them here, if VTA is disabled.
22955
22956 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22957
22958         PR target/44546
22959         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22960         New predicate.
22961         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22962         ix86_swapped_fp_comparsion_operator instead of
22963         ix86_fp_comparison_operator.
22964
22965         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22966         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22967         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22968         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22969         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22970         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22971
22972 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22973
22974         PR other/32998
22975         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22976         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22977         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22978         (decode_cmdline_option): Update for this return value.  Set
22979         orig_option_with_args_text field.  Set arg field for unknown
22980         options.  Make static.
22981         (decode_cmdline_options_to_array): New.
22982         (prune_options): Update handling of find_opt return value.
22983         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22984         (read_cmdline_options): Take decoded options.
22985         (decode_options): Add parameters for decoded options.  Use
22986         decode_cmdline_options_to_array.  Use decoded options for -O
22987         scan.  Use integral_argument for -O parameters.  Update call to
22988         read_cmdline_options.
22989         (enable_warning_as_error): Update handling of find_opt return value.
22990         * opts.h: Update comment on unknown options.
22991         (struct cl_decoded_option): Update comments on opt_index and arg.
22992         Add orig_option_with_args_text.
22993         (decode_cmdline_option): Remove.
22994         (decode_cmdline_options_to_array): Declare.
22995         (decode_options): Update prototype.
22996         * toplev.c (save_argv): Remove.
22997         (save_decoded_options, save_decoded_options_count): New.
22998         (read_integral_parameter): Remove.
22999         (print_switch_values): Use decoded options.
23000         (toplev_main): Don't set save_argv.  Update call to decode_options.
23001         * toplev.h (read_integral_parameter): Remove.
23002         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23003
23004 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23005
23006         PR target/44072
23007         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23008         immediate.
23009         * constraints.md (Pw, Px): New constraints.
23010         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23011
23012 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23013
23014         * config/i386/sse.md (fma4modesuffixf4): Removed.
23015         (ssemodesuffixf2s): Likewise.
23016         (ssemodesuffixf4): Likewise.
23017         (ssemodesuffixf2c): Likewise.
23018         (ssescalarmodesuffix2s): Likewise.
23019         (avxmodesuffixf2c): Likewise.
23020         (ssemodesuffix): New.
23021         (ssescalarmodesuffix): Likewise.
23022         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23023
23024 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23025
23026         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23027
23028 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23029
23030         * stor-layout.c (debug_rli): Remove unused local variables.
23031
23032 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23033
23034         PR rtl-optimization/40900
23035         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23036         original expression for later reuse.
23037         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23038         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23039
23040 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23041
23042         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23043         double_int_fits_in_uhwi_p): Implement as static inline.
23044         (double_int_xor): New inline function.
23045         (double_int_lrotate, double_int_rrotate, double_int_max,
23046         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23047         double_int_smin): Declare.
23048         (lrotate_double, rrotate_double): Remove declaration.
23049         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23050         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23051         (double_int_lrotate, double_int_rrotate, double_int_max,
23052         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23053         double_int_smin): New function.
23054         * fold-const.c (int_const_binop): Clean up, use double_int_*
23055         functions.
23056         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23057         double_int_* and immed_double_int_const functions.
23058
23059 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23060
23061         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23062         * function.c (types_used_by_cur_var_decl): Likewise.
23063         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23064
23065 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23066
23067         * tree.h (record_layout_info): Change type of pending_statics field
23068         to a VEC.
23069         * stor-layout.c (start_record_layout): Store NULL into
23070         pending_statics.
23071         (debug_rli): Call debug_vec_tree instead of debug_tree.
23072         (place_field): Likewise.
23073         (finish_record_layout): Likewise.
23074
23075 2010-06-18  Alan Modra  <amodra@gmail.com>
23076
23077         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23078
23079 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23080
23081         PR target/43740
23082         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23083         for SET source operand from SET destination operand.
23084
23085 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23086
23087         PR rtl-optimization/39871
23088         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23089         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23090         (function_invariant_p): Rule out a plus of frame or arg pointer with
23091         a SYMBOL_REF.
23092         * ira.c (find_reg_equiv_invariant_const): Likewise.
23093
23094 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23095
23096         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23097         print_operand_address and puts to output the operand for CONST.
23098
23099 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23100
23101         PR debug/44572
23102         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23103         hook.
23104
23105 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23106
23107         * v850-protos.h (print_operand): Delete.
23108         (print_operand_address): Delete.
23109         * v850.h (PRINT_OPERAND): Delete.
23110         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23111         (PRINT_OPERAND_ADDRESS): Delete.
23112         * v850.c (print_operand_address): Rename to...
23113         (v850_print_operand_address): ...this.  Make static. Call
23114         v850_print_operand.
23115         (print_operand): Rename to...
23116         (v850_print_operand): ...this.  Make static.  Call
23117         v850_print_operand_address.
23118         (v850_print_operand_punct_valid_p): New function.
23119         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23120         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23121
23122 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23123
23124         * config/sh/sh-protos.h (print_operand): Delete.
23125         (print_operand_address): Delete.
23126         * config/sh/sh.h (PRINT_OPERAND): Delete.
23127         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23128         (PRINT_OPERAND_ADDRESS): Delete.
23129         * config/sh/sh.c (sh_print_operand_address): Make static.
23130         (sh_print_operand): Make static.  Call sh_print_operand_address
23131         and sh_print_operand.
23132         (sh_print_operand_punct_valid_p): New function.
23133         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23134         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23135
23136 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23137
23138         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
23139         (mcore_print_operand_address): Delete.
23140         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23141         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23142         (PRINT_OPERAND_ADDRESS): Delete.
23143         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23144         (mcore_print_operand): Make static.
23145         (mcore_print_operand_punct_valid_p): New function.
23146         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23147         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23148
23149 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23150
23151         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23152         (print_operand_address): Delete.
23153         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23154         (PRINT_OPERAND_ADDRESS): Delete.
23155         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23156         static.
23157         (m68hc11_print_operand): Make static.
23158         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23159
23160 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23161
23162         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23163         (m32r_print_operand_address): Delete.
23164         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23165         (PRINT_OPERAND): Delete.
23166         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23167         (PRINT_OPERAND_ADDRESS): Delete.
23168         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23169         (m32r_print_operand_address): Make static.
23170         (m32r_print_operand): Make static.
23171         (m32r_print_operand_punct_valid_p): New function.
23172         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23173         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23174
23175 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23176
23177         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23178         (print_operand_address): Delete.
23179         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23180         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23181         (PRINT_OPERAND_ADDRESS): Delete.
23182         (iq2000_print_operand_punct): Delete.
23183         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23184         (iq2000_print_operand_address): Make static.
23185         (iq2000_print_operand): Make static.
23186         (iq2000_print_operand_punct_valid_p): New function.
23187         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23188         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23189
23190 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23191
23192         * config/frv/frv-protos.h (frv_print_operand): Delete.
23193         (frv_print_operand_address): Delete.
23194         * config/frv/frv.h (PRINT_OPERAND): Delete.
23195         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23196         (PRINT_OPERAND_ADDRESS): Delete.
23197         * config/frv/frv.c (frv_print_operand_address): Make static.
23198         (frv_print_operand): Make static.
23199         (frv_print_operand_punct_valid_p): New function.
23200         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23201         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23202
23203 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23204
23205         * tree.h (vec_member): Declare.
23206         * tree.c (vec_member): Define.
23207
23208 2010-06-17  Richard Guenther  <rguenther@suse.de>
23209
23210         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23211         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23212
23213 2010-06-17  Richard Guenther  <rguenther@suse.de>
23214
23215         * tree-inline.c (declare_return_variable): Remove bogus code.
23216
23217 2010-06-17  Richard Guenther  <rguenther@suse.de>
23218
23219         * gimplify.c (gimplify_bind_expr): Always promote complex
23220         and vector variables to registers if possible.
23221
23222 2010-06-17  Richard Guenther  <rguenther@suse.de>
23223
23224         * expr.c (get_inner_reference): Use double_int for bit_offset
23225         calculation.
23226
23227 2010-06-16  DJ Delorie  <dj@redhat.com>
23228
23229         * common.opt (-fstrict-volatile-bitfields): new.
23230         * doc/invoke.texi: Document it.
23231         * fold-const.c (optimize_bit_field_compare): For volatile
23232         bitfields, use the field's type to determine the mode, not the
23233         field's size.
23234         * expr.c (expand_assignment): Likewise.
23235         (get_inner_reference): Likewise.
23236         (expand_expr_real_1): Likewise.
23237         * expmed.c (store_fixed_bit_field): Likewise.
23238         (extract_bit_field_1): Likewise.
23239         (extract_fixed_bit_field): Likewise.
23240
23241 2010-06-16  Richard Guenther  <rguenther@suse.de>
23242
23243         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23244
23245 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23246
23247         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23248         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23249         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23250         * debug.c: Likewise.
23251         * sdbout.c: Likewise.
23252         * vmsdbgout.c: Likewise.
23253         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23254         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23255         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23256         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23257         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23258         * dwarf2out.c (dw_fde_struct): New fields
23259         dw_fde_vms_{end,begin}_prologue.
23260         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23261         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23262         (dwarf2out_vms_end_prologue): New function.
23263         (dwarf2out_vms_begin_epilogue): New function.
23264         (dw_val_struct): New value dw_val_class_vms_delta.
23265         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23266         begin_epilogue for VMS.
23267         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23268         new static functions.
23269         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23270         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23271         static functions.
23272         (print_die): New case dw_val_class_vms_delta.
23273         (attr_checksum): Likewise.
23274         (same_dw_val_p: Likewise.
23275         (size_of_die): Likewise.
23276         (value_format): Likewise.
23277         (output_die): Likewise.
23278         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23279         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23280         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23281         dwarf2out_cfi_begin_epilogue
23282         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23283
23284 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23285
23286         * config/cris/cris-protos.h (cris_print_operand): Delete.
23287         (cris_print_operand_address): Delete.
23288         * config/cris/cris.h (PRINT_OPERAND): Delete.
23289         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23290         (PRINT_OPERAND_ADDRESS): Delete.
23291         * config/cris/cris.c (cris_print_operand_address): Make static.
23292         (cris_print_operand): Make static.
23293         (cris_print_operand_punct_valid_p): New function.
23294         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23295         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23296
23297 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23298
23299         * config/arm/arm-protos.h (arm_print_operand): Delete.
23300         (arm_print_operand_address): Delete.
23301         * config/arm/arm.h (PRINT_OPERAND): Delete.
23302         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23303         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23304         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23305         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23306         (arm_print_operand): Make static.
23307         (arm_print_operand_punct_valid_p): New function.
23308         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23309         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23310
23311 2010-06-16  Nick Clifton  <nickc@redhat.com>
23312
23313         * config/rx/constraints.md (NEGint4): New constraint.
23314         * config/rx/rx.md (attr cc): Add set_zsc.
23315         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23316         initialised.
23317         (cmpsf): Likewise.
23318         (call_internal): Clobber the cc0 register.
23319         (call_value_internal): Likewise.
23320         (cstoresi4): Likewise.
23321         (movsieq): Likewise.
23322         (movsine): Likewise.
23323         (addsi3): Add alternative to handle small negative constants.
23324         (sunsi3): Likewise.
23325         (addsi3): Do not set the O bit in the cc0 register.
23326         (adddi3): Likewise.
23327         (subsi3): Likewise.
23328         (subdi3): Likewise.
23329         (andsi3): Reorder alternatives to prefer shorter forms.
23330         (mulsi3): Likewise.
23331         (iorsi3): Likewise.
23332         (negsi2): Note that the cc0 flags are set.
23333         (rotlsi3): Note that only the Z and S bits are set in cc0.
23334         (lshrsi3): Likewise.
23335         (ashlsi3): Likewise.
23336         (subsf3): Use %Q for the MEM operand.
23337         (fix_truncsfsi2): Likewise.
23338         (floatsisf2): Likewise.
23339         (bitset): Remove early clobber from destination.
23340         (bitset_in_memory): Likewise.
23341         (lrintsf2): Clobber the cc0 register.
23342         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23343         (rx_print_operand): Handle %N.
23344
23345 2010-06-16  Jan Hubicka  <jh@suse.cz>
23346
23347         * df-core.c (df_compact_blocks): Free problem_temps vector.
23348
23349 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23350
23351         PR tree-optimization/43905
23352         * tree-sra.c: Include tree-inline.h.
23353         (create_abstract_origin): Removed.
23354         (modify_function): Version the call graph node instead of creating
23355         abstract origins and dealing with same_body aliases.
23356         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23357         function is versionable.
23358         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23359
23360 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23361
23362         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23363         (CHOOSE_DYNAMIC_LINKER): Update.
23364
23365 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23366
23367         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23368         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23369         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23370         *prefetch_3dnow_rex.
23371
23372 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23373
23374         * target.h (struct asm_out):Add declare_constant_name field.
23375         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23376         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23377         * output.h (default_asm_declare_constant_name): Declare.
23378         (assemble_label): Update prototype.
23379         * varasm.c (assemble_constant_contents): Use
23380         targetm.asm_out.declare_constant_name target hook.
23381         (assemble_label): Add 'file' argument.
23382         (default_asm_declare_constant_name): New function.
23383         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23384         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23385         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23386
23387         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23388         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23389         (machopic_output_indirection): Update assemble_label argument list.
23390         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23391         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23392
23393 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23394
23395         PR middle-end/44391
23396         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23397         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23398
23399 2010-06-15  Richard Guenther  <rguenther@suse.de>
23400
23401         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23402
23403 2010-06-15  Paul Brook  <paul@codesourcery.com>
23404
23405         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23406         hard-float ABI.
23407
23408 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23409
23410         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23411         don't get a vector type for output.
23412
23413 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23414
23415         PR fortran/44536
23416         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23417         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23418         (LANG_HOOKS_DECLS): Add it.
23419         * gimplify.c (omp_notice_variable): Call
23420         lang_hooks.decls.omp_report_decl.
23421
23422 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23423
23424         PR lto/44464
23425         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23426         on the newly dead SSA name.
23427
23428 2010-06-15  Alan Modra  <amodra@gmail.com>
23429
23430         * doc/invoke.texi: Add mcmodel to powerpc options.
23431         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23432         * configure: Regenerate.
23433         * config.in: Regenerate.
23434         * config/rs6000/linux64.opt (mcmodel): New.
23435         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23436         (TARGET_CMODEL, SET_CMODEL): Define.
23437         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23438         select CMODEL_MEDIUM default.
23439         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23440         (TARGET_CMODEL): Define default.
23441         * config/rs6000/rs6000.c (cmodel): New variable.
23442         (rs6000_explicit_options): Add cmodel field.
23443         (rs6000_handle_option): Handle -mcmodel.
23444         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23445         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23446         (rs6000_delegitimize_address): Recognise new toc reference rtl
23447         and minimal-toc rtl.
23448         (rs6000_legitimize_reload_address): Handle new toc references.
23449         (print_operand_address): Handle legitimate_constant_pool_address_p
23450         match before lo_sum.
23451         (rs6000_eliminate_indexed_memrefs): Tidy.
23452         (rs6000_emit_move): Tweak threshold for inlining constants.
23453         Keep rs6000_emit_allocate_stack large stack frame offsets
23454         loaded into r0 inline.
23455         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23456         (tocrel_base, tocrel_offset): New variables.
23457         (toc_relative_expr_p): Set them here.
23458         (print_operand_address): Skip over any offset on constant pool address.
23459         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23460         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23461         (offsettable_ok_by_alignment): New function.
23462         (rs6000_emit_move): Address suitably aligned local symbol_refs
23463         relative to the toc pointer for -mcmodel=medium.
23464         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23465         strict param.  Allow lo_sum version of addressing.  Verify reg
23466         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23467         * config/rs6000/constraints.md: Update for above change.
23468         * config/rs6000/predicates.md: Likewise.
23469         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23470         code.
23471         (tls_gd): Split for -mcmodel=medium/large.
23472         (tls_gd_high, tls_gd_low): New.
23473         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23474         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23475         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23476         (largetoc_high, largetoc_low): New.
23477         (cmptf_internal2): Add clobber.
23478         * config/rs6000/rs6000-protos.h: Update.
23479
23480 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23481
23482         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23483         true if no prefetch is going to be generated for a given group.
23484         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23485         estimate the prefetch_count.
23486         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23487         prefetch count by considering the unroll_factor and prefetch_mod
23488         for is_loop_prefetching_profitable.
23489
23490 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23491
23492         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23493         anything if the argument is not a MEM.
23494
23495 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23496
23497         PR debug/43650
23498         PR debug/44181
23499         PR debug/44247
23500         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23501         debug stmts.
23502         (canonicalize_loop_ivs): Likewise.
23503
23504 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23505
23506         PR debug/43656
23507         * haifa-sched.c (setup_insn_reg_pressure_info,
23508         update_register_pressure): Reject debug insns.
23509         (ready_sort): Don't setup reg pressure for debug insns.
23510         (schedule_insn): Don't update reg pressure for debug insns.
23511
23512 2010-06-14  Richard Guenther  <rguenther@suse.de>
23513
23514         * lto-streamer.c (cached_bp): Remove.
23515         (bitpack_delete): Likewise.
23516         (bitpack_create): Likewise.
23517         (bp_get_next_word): Likewise.
23518         (bp_pack_value, bp_unpack_value): Move ...
23519         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23520         Re-implement.
23521         (struct bitpack_d): Likewise.
23522         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23523         New inline functions.
23524         * lto-streamer-out.c (lto_output_bitpack): Remove.
23525         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23526         (pack_value_fields): Adjust.
23527         (lto_write_tree): Likewise.
23528         (output_gimple_stmt): Likewise.
23529         (output_function): Likewise.
23530         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23531         (input_function): Likewise.
23532         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23533         (lto_input_bitpack): Remove.
23534         (lto_materialize_tree): Adjust.
23535         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23536         * lto-cgraph.c (lto_output_edge): Adjust.
23537         (lto_output_node): Likewise.
23538         (lto_output_varpool_node): Likewise.
23539         (lto_output_ref): Likewise.
23540         (input_node): Likewise.
23541         (input_varpool_node): Likewise.
23542         (input_ref): Likewise.
23543         (input_edge): Likewise.
23544         (output_node_opt_summary): Likewise.
23545         (input_node_opt_summary): Likewise.
23546         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23547         (pure_const_read_summary): Likewise.
23548         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23549         (ipa_read_indirect_edge_info): Likewise.
23550         (ipa_write_node_info): Likewise.
23551         (ipa_read_node_info): Likewise.
23552
23553 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23554
23555         PR target/44534
23556         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23557         (vec_extract_lo_v16hi): Likewise.
23558         (vec_extract_lo_v32qi): Likewise.
23559
23560 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23561
23562         PR bootstrap/44426
23563         * tree.h (build_call_expr): Don't define as vararg macro, instead
23564         add a prototype.
23565         * builtins.c (build_call_nofold): Remove.
23566         (expand_builtin_int_roundingfn, expand_builtin_pow,
23567         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23568         expand_builtin_memset_args, expand_builtin_strcmp,
23569         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23570         build_call_nofold_loc instead of build_call_nofold.
23571         (build_call_expr): New function.
23572
23573         PR tree-optimization/44508
23574         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23575         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23576         don't eliminate trivially dead stmts.
23577         * tree-vrp.c (vrp_finalize): Pass false as last argument
23578         to substitute_and_fold.
23579         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23580         to substitute_and_fold.
23581         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23582
23583         PR bootstrap/44509
23584         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23585
23586 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23587
23588         PR tree-optimization/44507
23589         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23590         to build initial vector for BIT_AND_EXPR.
23591         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23592
23593 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23594
23595         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23596         adjust z10prop set_attr.
23597
23598 2010-06-13  Jan Hubicka  <jh@suse.cz>
23599
23600         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23601         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23602         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23603         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23604         datastructure checks into checking asserts.
23605         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23606         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23607         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23608         df_ref_create_structure): Likewise.
23609         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23610         pool_free): Use gcc_checking_assert.
23611         * alias.c (get_alias_set): Likewise.
23612         * var-tracking.c (variable_htab_free, shared_hash_copy,
23613         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23614         * lto-streamer.c (bp_unpack_value): Likewise.
23615
23616 2010-06-13  Richard Guenther  <rguenther@suse.de>
23617
23618         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23619         Do not stream but initialize TYPE_CANONICAL to NULL.
23620         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23621         * gimple.c (gimple_types_compatible_p): Disregard
23622         TYPE_STRUCTURAL_EQUALITY_P.
23623         (gimple_register_type): Use TYPE_CANONICAL as cache.
23624         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23625         before registering common types.
23626         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23627         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23628         * tree.h (TYPE_CANONICAL): Clarify documentation.
23629
23630 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23631
23632         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23633         LIBCALL_VALUE): Remove macros.
23634         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23635         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23636         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23637         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23638         (ia64_function_value): Make static. Handle receiving the function
23639         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23640
23641 2010-06-12  Jan Hubicka  <jh@suse.cz>
23642
23643         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23644         at correct place.
23645
23646 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23647
23648         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23649
23650 2010-06-12  Jan Hubicka  <jh@suse.cz>
23651
23652         * df-core.c (df_clear_bb_info): New function.
23653         (df_set_blocks): bb_info is always allocated.
23654         (df_get_bb_info): Use block_info_elt_size.
23655         (df_set_bb_info): Likewise.
23656         (df_compact_blocks): Update for new block_info.
23657         (grow_bb_info): New function.
23658         * df-problems.c (df_grow_bb_info): Move to df-core.c
23659         (df_rd_set_bb_info): Remove.
23660         (df_rd_free_bb_info): Do not free block pool.
23661         (df_rd_alloc): Do not create pool, use check for
23662         obstack presence instead of NULL pointer for new blocks.
23663         (df_rd_free): DO not free alloc pool; clear block_info.
23664         (problem_RD): Add size of block info structure.
23665         (df_lr_set_bb_info): Remove.
23666         (df_lr_free_bb_info): Do not free block pool.
23667         (df_lr_alloc): Do not create pool, use check for
23668         obstack presence instead of NULL pointer for new blocks.
23669         (df_lr_free): DO not free alloc pool; clear block_info.
23670         (problem_LR): Add size of block info structure.
23671         (df_live_set_bb_info): Remove.
23672         (df_live_free_bb_info): Do not free block pool.
23673         (df_live_alloc): Do not create pool, use check for
23674         obstack presence instead of NULL pointer for new blocks.
23675         (df_live_free): DO not free alloc pool; clear block_info.
23676         (problem_LIVE): Add size of block info structure.
23677         (problem_CHAIN): Add size of block info structure.
23678         (df_byte_lr_set_bb_info): Remove.
23679         (df_byte_lr_free_bb_info): Do not free block pool.
23680         (df_byte_lr_alloc): Do not create pool, use check for
23681         obstack presence instead of NULL pointer for new blocks.
23682         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23683         (problem_BYTE_LR): Add size of block info structure.
23684         (problem_NOTE): Add size of block info structure.
23685         (df_byte_MD_set_bb_info): Remove.
23686         (df_byte_MD_free_bb_info): Do not free block pool.
23687         (df_byte_MD_alloc): Do not create pool, use check for
23688         obstack presence instead of NULL pointer for new blocks.
23689         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23690         (problem_BD): Add size of block info structure.
23691         * df-scan.c (df_scan_free_internal): Free block pool.
23692         (df_scan_set_bb_info): Remove.
23693         (df_scan_free_bb_info): Check for artificial_defs instead
23694         of bb_info being non-NULL.
23695         (df_scan_alloc): DO not create df_scan_block pool.
23696         (problem_SCAN): Set size of block info.
23697         (df_bb_refs_record): Do not allocate bb_info.
23698         * df.h (df_problem): Add block_info_elt_size.
23699         (struct dataflow): Change block_info to void *.
23700         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23701         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23702         in-line structures.
23703
23704 2010-06-12  Jan Hubicka  <jh@suse.cz>
23705
23706         PR tree-optimize/44485
23707         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23708         containing use of return value of noreturn function.
23709
23710 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23711
23712         * targhooks.c (default_function_value): Don't use
23713         FUNCTION_OUTGOING_VALUE.
23714         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23715         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23716
23717 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23718
23719         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23720         Add crtfastmath.o to extra_parts.
23721         * config/mips/crtfastmath.c: New.
23722         * config/mips/linux.h (ENDFILE_SPEC): New.
23723
23724 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23725
23726         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23727         old_type in parameter.
23728         (gcc_type_for_value): Update call to gcc_type_for_interval.
23729         (compute_type_for_level_1): Renamed compute_type_for_level.
23730         Update call to gcc_type_for_interval.
23731
23732 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23733
23734         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23735         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23736
23737 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23738
23739         * opts-common.c: Include options.h.
23740         (integral_argument): Move from opts.c.
23741         (decode_cmdline_option): New.  Based on read_cmdline_option.
23742         * opts.c (integral_argument): Move to opts-common.c.
23743         (read_cmdline_option): Move most contents to
23744         decode_cmdline_option.  Use %qs in diagnostics.
23745         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23746         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23747         decode_cmdline_option): New.
23748
23749 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23750
23751         PR target/44481
23752         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23753         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23754         (partiysi2_cmp): Ditto.
23755         (*partiyhi2_cmp): Ditto.
23756         (*parityqi2_cmp): Remove.
23757
23758 2010-06-11  Jan Hubicka  <jh@suse.cz>
23759
23760         * bitmap.h (bmp_iter_next_bit): New.
23761         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23762
23763 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23764             Eric Botcazou  <ebotcazou@adacore.com>
23765
23766         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23767         computed cost.
23768
23769 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23770
23771         * config/i386/i386.md (unspec): New define_c_enum.
23772         (unspecv): Ditto.
23773
23774 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23775
23776         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23777
23778 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23779
23780         PR middle-end/44483
23781         * tree-if-conv.c (bb_predicate_s): New struct.
23782         (bb_predicate_p): New.
23783         (bb_has_predicate): New.
23784         (bb_predicate): New.
23785         (set_bb_predicate): New.
23786         (bb_predicate_gimplified_stmts): New.
23787         (set_bb_predicate_gimplified_stmts): New.
23788         (add_bb_predicate_gimplified_stmts): New.
23789         (init_bb_predicate): New.
23790         (free_bb_predicate): New.
23791         (is_predicated): Use bb_predicate.
23792         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23793         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23794         before processing their successors.
23795         (clean_predicate_lists): Removed.
23796         (find_phi_replacement_condition): Use bb_predicate.
23797         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23798         computations.
23799         (insert_gimplified_predicates): New.
23800         (combine_blocks): Call insert_gimplified_predicates.
23801         (tree_if_conversion): Call free_bb_predicate instead of
23802         clean_predicate_lists.
23803
23804 2010-10-11  Paul Brook  <paul@codesourcery.com>
23805
23806         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23807         * config/arm/arm.c (all_architectures): Change v7e-m default to
23808         cortexm4.
23809         * config/arm/arm-cores.def: Add cortex-m4.
23810         * config/arm/arm-tune.md: Regenerate.
23811
23812 2010-06-11  Jan Hubicka  <jh@suse.cz>
23813
23814         * ipa-pure-const.c (special_builtlin_state): New function.
23815         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23816         (propagate_pure_const): Use it.
23817
23818 2010-06-11  Jan Hubicka  <jh@suse.cz>
23819
23820         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23821         (df_live_alloc): Initialize df_live_scratch when initializing
23822         problem_data.
23823         (df_live_transfer_function): Update uses of df_live_scratch.
23824         (df_live_free): Free problem_data; clear df_live_scratch before
23825         releasing the obstack.
23826         (df_md_free): Free problem data.
23827
23828 2010-06-11  Jan Hubicka  <jh@suse.cz>
23829
23830         * doc/invoke.texi (Wsuggest-attribute): Document.
23831         (Wmissing-noreturn): Remove.
23832         * ipa-pure-const.c (warn_function_noreturn): New function.
23833         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23834         warn_missing_noreturn.
23835         * common.opt (Wsuggest-attribute=noreturn): New.
23836         * tree-flow.h (warn_function_noreturn): Declare.
23837         * tree-cfg.c (execute_warn_function_noreturn): Use
23838         warn_function_noreturn.
23839         (gate_warn_function_noreturn): New.
23840         (pass_warn_function_noreturn): Update.
23841
23842 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23843
23844         * c-typeck.c (handle_warn_cast_qual): Add loc
23845         parameter. Improve warning message.
23846         (build_c_cast): Pass location to handle_warn_cast_qual.
23847
23848 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23849
23850         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23851         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23852         insn mnemonic.
23853         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23854
23855 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23856
23857         Fix bootstap on mips
23858         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23859         be naming typedefs.
23860
23861 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23862
23863         * system.h (helper_const_non_const_cast): New inline for
23864         gcc version <= 4.0.
23865         (CONST_CAST2): For gcc version <= 4.0 use
23866         new helper to do const/non-const casting.
23867
23868 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23869
23870         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23871         * Makefile.in (OBJS-common): Include insn-enums.o.
23872         (insn-enums.o): New rule.
23873         (simple_generated_c): Add insn-enums.c.
23874         (build/genenums.o): New rule.
23875         (genprogmd): Add "enums".
23876         * genconstants.c (print_enum_type): Declare a C string array
23877         for each enum.
23878         * genenums.c: New file.
23879         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23880         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23881         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23882
23883 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23884
23885         * doc/md.texi (define_enum_attr): Document.
23886         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23887         * read-md.h (lookup_enum_type): Declare.
23888         * read-md.c (lookup_enum_type): New function.
23889         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23890         * genattrtab.c (attr_desc): Add an enum_name field.
23891         (evaluate_eq_attr): Take the associated attribute as argument.
23892         Get the enum prefix from the enum_name field, if defined.
23893         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23894         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23895         (add_attr_value): New function, split out from...
23896         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23897         (write_test_expr): Pass attr to evaluate_eq_attr.
23898         (write_attr_get): Use the enum_name as the enum tag, if defined.
23899         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23900         (find_attr): Initialize enum_name.
23901         (main): Handle DEFINE_ENUM_ATTR.
23902         * gensupport.c (process_rtx): Likewise.
23903         * config/mips/mips.h (mips_tune_attr): Delete.
23904         * config/mips/mips.md (cpu): Use define_attr_enum.
23905
23906 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23907
23908         * doc/md.texi (define_c_enum, define_enum): Document.
23909         * read-md.h (md_constant): Add a parent_enum field.
23910         (enum_value, enum_type): New structures.
23911         (upcase_string, traverse_enum_types): Declare.
23912         * read-md.c (enum_types): New variable.
23913         (upcase_string, add_constant): New functions.
23914         (handle_constants): Don't create the hash table here.
23915         Use add_constant.
23916         (traverse_md_constants): Don't check for a null md_constants.
23917         (decimal_string, handle_enum, traverse_enum_types): New functions.
23918         (read_md_files): Initialize md_constants and md_enums.
23919         * genconstants.c (print_md_constant): Ignore info argument.
23920         Only print constants that belong to no enum.
23921         (print_enum_type): New function.
23922         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23923         for each defined enum type.
23924         * config/mips/mips.md (processor): New define_enum.
23925         (unspec): New define_c_enum.
23926         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23927         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23928         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23929         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23930         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23931         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23932         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23933         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23934         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23935         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23936         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23937         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23938         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23939         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23940         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23941         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23942         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23943         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23944         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23945         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23946         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23947         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23948         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23949         (UNSPEC_RDDSP): Move to mips-dsp.md.
23950         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23951         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23952         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23953         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23954         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23955         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23956         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23957         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23958         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23959         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23960         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23961         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23962         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23963         Moved to mips-dspr2.md.
23964         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23965         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23966         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23967         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23968         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23969         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23970         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23971         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23972         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23973         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23974         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23975         UNSPEC_LOONGSON_PSADBH)
23976         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23977         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23978         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23979         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23980         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23981         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23982         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23983         (cpu): Update comment.
23984         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23985         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23986         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
23987         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
23988         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
23989         UNSPEC_LOONGSON_PCMPEQ)
23990         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
23991         UNSPEC_LOONGSON_PINSR_0)
23992         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23993         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23994         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23995         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23996         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23997         UNSPEC_LOONGSON_PSADBH)
23998         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23999         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24000         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24001         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24002         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24003         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24004         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24005         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24006         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24007         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24008         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24009         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24010         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24011         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24012         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24013         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24014         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24015         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24016         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24017         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24018         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24019         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24020         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24021         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24022         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24023         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24024         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24025         (UNSPEC_RDDSP): Moved from mips.md.
24026         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24027         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24028         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24029         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24030         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24031         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24032         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24033         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24034         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24035         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24036         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24037         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24038         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24039         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24040         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24041         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24042         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24043         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24044         (UNSPEC_SCC): Moved from mips.md.
24045         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24046         "processor_type" to "processor".
24047         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24048         * config/mips/mips.h (processor_type): Delete.
24049         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24050         "processor_type" to "processor".
24051
24052 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24053
24054         * configure.ac (tm_include_list): Add insn-constants.h.
24055         * configure: Regenerate.
24056         * Makefile.in (GTM_H): Move insn-constants.h here from...
24057         (TM_H): ...here.
24058         * mkconfig.sh: Remove special handling for insn-constants.h.
24059
24060 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24061
24062         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24063         (BUILD_MD): ...this new variable.
24064         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24065         that include the old contents of simple_generated_h and
24066         simple_generated_c.
24067         (simple_generated_h, simple_generated_c): Include them.  Add
24068         insn-constants.h.
24069         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24070         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24071         Remove these dependencies from the main rule and include
24072         insn-conditions.md in the command line only if it appears
24073         in the dependency list.
24074         (insn-constants.h, s-constants): Delete.
24075         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24076         or gensupport.h.
24077         (build/genmddeps.o): Likewise.
24078         (genprogrtl): New variable that contains everything from genprogmd
24079         except mddeps and constants.
24080         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24081         depend on $(BUILD_MD)
24082         (genprog): New variable.  Make these programs depend on
24083         $(BUILD_ERRORS).
24084         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24085         (main): Use read_md_files instead of init_rtx_reader_args.
24086         * genconstants.c: As for genmddeps.c.
24087         * read-md.h (read_skip_construct): Declare.
24088         * read-md.c (read_skip_construct): New function.
24089         (handle_file): Allow a null handle_directive, skipping the
24090         construct if so.
24091         (parse_include): Update the comment accordingly.
24092
24093 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24094
24095         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24096         * genmddeps.c: Include read-md.h.
24097         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24098         * genattr.c (main): Likewise.
24099         * genattrtab.c (main): Likewise.
24100         * genautomata.c (main): Likewise.
24101         * gencodes.c (main): Likewise.
24102         * genconditions.c (main): Likewise.
24103         * genconfig.c (main): Likewise.
24104         * genconstants.c (main): Likewise.
24105         * genemit.c (main): Likewise.
24106         * genextract.c (main): Likewise.
24107         * genflags.c (main): Likewise.
24108         * genopinit.c (main): Likewise.
24109         * genoutput.c (main): Likewise.
24110         * genpeep.c (main): Likewise.
24111         * genrecog.c (main): Likewise.
24112         * genpreds.c (main): Likewise.
24113         * gensupport.h (in_fname): Move to read-md.h.
24114         (init_md_reader_args_cb): Rename to...
24115         (init_rtx_reader_args_cb): ...this and return a bool.
24116         (init_md_reader_args): Rename to...
24117         (init_rtx_reader_args): ...this and return a bool.
24118         (include_callback): Move to read-md.h.
24119         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24120         (file_name_list, first_dir_md_include): Move to read-md.c
24121         (first_bracket_include): Delete unused variable.
24122         (last_dir_md_include): Move to read-md.c.
24123         (process_include): Delete, moving code to read-md.c:handle_include.
24124         (process_rtx): Don't handle INCLUDE.
24125         (save_string): Delete.
24126         (rtx_handle_directive): New function.
24127         (init_md_reader_args_cb): Rename to...
24128         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24129         Use read_md_args.
24130         (init_md_reader_args): Rename to...
24131         (init_rtx_reader_args): ...this and return a boolean success value.
24132         * rtl.def (INCLUDE): Delete.
24133         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24134         argument.
24135         * read-rtl.c (read_conditions): Don't gobble ')' here.
24136         (read_mapping): Likewise.
24137         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24138         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24139         Store the whole queue in *X.  Remove call to init_md_reader.
24140         (read_rtx_1): Rename to...
24141         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24142         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24143         here.
24144         (read_nested_rtx): New function.  Handle (nil) here rather than
24145         in read_rtx_code.
24146         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24147         gobble ')' here.
24148         * read-md.h (directive_handler_t): New type.
24149         (in_fname, include_callback): Moved from read-md.h.
24150         (read_constants, init_md_reader): Delete.
24151         (read_md_files): Declare.
24152         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24153         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24154         from gensupport.c.
24155         (read_constants): Rename to...
24156         (handle_constants): ...this.  Don't gobble ')' here.
24157         (handle_include, handle_file, handle_toplevel_file)
24158         (parse_include): New functions, mostly taken from gensupport.c.
24159         (init_md_reader): Subsume into...
24160         (read_md_files): ...this new function.
24161
24162 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24163
24164         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24165         (unread_char): Decrement read_md_lineno after putting back '\n'.
24166         * read-md.c (fatal_with_file_and_line): Push back any characters
24167         that we decide not to add to the context.
24168         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24169         fatal_expected_char in cases where '/' ends a line (for example).
24170         (read_name): Don't increment read_md_lineno here.
24171         (read_escape): Likewise.
24172         (read_quoted_string): Likewise.
24173         (read_braced_string): Likewise.
24174
24175 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24176
24177         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24178         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24179         * genconstants.c: Include read-md.h.
24180         * read-rtl.c (md_constants): Move to read-md.c.
24181         (md_name): Move to read-md.h.
24182         (initialize_iterators): Use leading_string_hash instead of def_hash
24183         and leading_string_eq_p instead of def_name_eq_p.
24184         (read_name): Move to read-md.c.
24185         (def_hash, def_name_eq_p): Delete.
24186         (read_constants, traverse_md_constants): Move to read-md.c.
24187         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24188         * read-md.h: Include hashtab.h.
24189         (md_name): Moved from read-rtl.c.
24190         (md_constant): Moved from read-md.h.
24191         (leading_string_hash, leading_string_eq_p, read_name)
24192         (read_constants, traverse_md_constants): Declare.
24193         * read-md.c (md_constants): Moved from read-rtl.c.
24194         (leading_string_hash, leading_string_eq_p): New functions.
24195         (read_name, read_constants, traverse_md_constants): Moved from
24196         read-rtl.c.
24197
24198 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24199
24200         * read-rtl.c (md_name): New structure.
24201         (read_name): Take an md_name instead of a buffer pointer.
24202         Use the "string" field instead of strcpy when expanding constants.
24203         (read_constants): Remove the tmp_char argument.  Update the calls
24204         to read_name, using two local name buffers instead of the tmp_char
24205         argument.  Merge the constant-creation code.
24206         (read_conditions): Remove the tmp_char argument.  Update the calls
24207         to read_name, using a local name buffer instead of the tmp_char
24208         argument.
24209         (read_mapping): Replace tmp_char variable with a local name buffer.
24210         Update the calls to read_name.
24211         (read_rtx_1): Likewise.  Update the calls to read_constants and
24212         read_conditions.
24213
24214 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24215
24216         * Makefile.in (build/read-md.o): Depend on errors.h.
24217         * read-md.h (error_with_line): Declare.
24218         * read-md.c: Include errors.h.
24219         (message_with_line_1): New function, extracted from...
24220         (message_with_line): ...here.
24221         (error_with_line): New function.
24222         * genattrtab.c: If a call to message_with_line is followed by
24223         "have_error = 1;", replace both statements with a call to
24224         error_with_line.
24225         * genoutput.c: Likewise.
24226         * genpreds.c: Likewise.
24227         * genrecog.c: If a call to message_with_line is followed by
24228         "error_count++;", replace both statements with a call to
24229         error_with_line.
24230         (errorcount): Delete.
24231         (main): Don't check it.
24232         * gensupport.c: If a call to message_with_line is followed by
24233         "errors = 1;", replace both statements with a call to error_with_line.
24234         (errors): Delete.
24235         (process_define_cond_exec): Check have_error instead of errors.
24236         (init_md_reader_args_cb): Likewise.  Don't set errors.
24237
24238 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24239
24240         * read-md.h (read_md_file): Declare.
24241         (read_char, unread_char): New functions.
24242         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24243         (read_quoted_string, read_string): Remove FILE * argument.
24244         * read-md.c (read_md_file): New variable.
24245         (read_md_filename, read_md_lineno): Update comments and remove
24246         unnecessary initialization.
24247         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24248         (read_escape, read_quoted_string, read_braced_string, read_string):
24249         Remove FILE * argument.  Update calls accordingly, using read_char
24250         and unread_char instead of getc and ungetc.
24251         * rtl.h (read_rtx): Remove FILE * argument.
24252         * read-rtl.c (iterator_group): Remove FILE * argument from
24253         "find_builtin".
24254         (iterator_traverse_data): Remove "infile" field.
24255         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24256         (add_mapping, read_name, read_constants, read_conditions)
24257         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24258         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24259         Remove file arguments from all calls, using read_char and unread_char
24260         instead of getc and ungetc.
24261         * gensupport.c (process_include): Preserve read_md_file around
24262         the include.  Set read_md_file to the handle of the included file.
24263         Update call to read_rtx.
24264         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24265         and remove local FILE *.  Update calls to read_rtx.
24266
24267 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24268
24269         * read-md.h (read_rtx_lineno): Rename to...
24270         (read_md_lineno): ...this.
24271         (read_rtx_filename): Rename to...
24272         (read_md_filename): ...this.
24273         (copy_rtx_ptr_loc): Rename to...
24274         (copy_md_ptr_loc): ...this.
24275         (print_rtx_ptr_loc): Rename to...
24276         (print_md_ptr_loc): ...this.
24277         * read-md.c: Likewise.  Update references after renaming.
24278         (string_obstack): Replace RTL with MD in comment.
24279         (set_rtx_ptr_loc): Rename to...
24280         (set_md_ptr_loc): ...this.
24281         (get_rtx_ptr_loc): Rename to...
24282         (get_md_ptr_loc): ...this.
24283         * genconditions.c: Update references after renaming.
24284         * genemit.c: Likewise.
24285         * genoutput.c: Likewise.
24286         * genpreds.c: Likewise.
24287         * gensupport.c: Likewise.
24288         * read-rtl.c: Likewise.
24289
24290 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24291
24292         * Makefile.in (READ_MD_H): New variable.
24293         (BUILD_RTL): Add build/read-md.o.
24294         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24295         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24296         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24297         (build/genextract.o, build/genflags.o, build/genoutput.o)
24298         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24299         (build/read-md.o): New rule.
24300         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24301         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24302         * coretypes.h: ...here.
24303         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24304         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24305         * genattr.c: Include read-md.h.
24306         * genattrtab.c: Likewise.
24307         * genconditions.c: Likewise.
24308         * genemit.c: Likewise.
24309         * genextract.c: Likewise.
24310         * genflags.c: Likewise.
24311         * genoutput.c: Likewise.
24312         * genpreds.c: Likewise.
24313         * genrecog.c: Likewise.
24314         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24315         (join_c_conditions, print_c_condition, read_rtx_filename)
24316         (read_rtx_lineno): Move to read-md.h.
24317         * read-rtl.c: Include read-md.h.
24318         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24319         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24320         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24321         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24322         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24323         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24324         (read_braced_string, read_string): Move to read-md.c.
24325         (read_rtx): Move some initialization to init_md_reader and call
24326         init_md_reader here.
24327         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24328         Move to read-md.h.
24329         * gensupport.c: Include read-md.h.
24330         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24331         * read-md.h, read-md.c: New files.
24332
24333 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24334
24335         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24336         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24337         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24338         * config/moxie/moxie.c (moxie_function_value): Make static.
24339         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24340         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24341
24342 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24343
24344         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24345         * dbgcnt.def (tree_sra): New counter.
24346         * tree-sra.c: Include dbgcnt.h.
24347         (gate_intra_sra): Check tree_sra debug counter.
24348
24349 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24350
24351         PR tree-optimization/44258
24352         * tree-sra.c (build_access_subtree): Return false iff there is a
24353         partial overlap.
24354         (build_access_trees): Likewise.
24355         (analyze_all_variable_accesses): Disqualify candidates if
24356         build_access_trees returns true for them.
24357
24358 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24359
24360         PR debug/41371
24361         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24362         tail-recurse into canonical node.  Fast-forward over
24363         non-canonical VALUEs.
24364
24365 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24366
24367         PR boostrap/44470
24368         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24369         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24370         (add lea splitter): Likewise.
24371         (add_zext lea splitter): Likewise.
24372
24373 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24374
24375         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24376
24377 2010-06-10  Jan Hubicka  <jh@suse.cz>
24378
24379         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24380         (df_live_alloc): Initialize problem data and live_osbtacks.
24381         (df_live_finalize): Remove obstack, problem data; do not
24382         clear all bitmaps.
24383         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24384         data when not allocated.
24385         (df_live_verify_solution_start): Do not allocate problem data.
24386         (df_live_verify_solution_end): Check if out is allocated.
24387         (struct df_md_problem_data): New structure.
24388         (df_md_alloc): Allocate problem data.
24389         (df_md_free): Free problem data; do not clear bitmaps.
24390
24391 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24392
24393         PR bootstrap/37304
24394         * configure.ac: Replace $() with ${} when intending to expand
24395         variables rather than invoking commands.
24396         * configure: Re-generate.
24397
24398 2010-06-10  Jan Hubicka  <jh@suse.cz>
24399
24400         PR rtl-optimization/44460
24401         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24402         TYPE_NEEDS_CONSTRUCTING sanity check.
24403
24404 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24405
24406         * doc/include/fdl.texi: Move to GFDL version 1.3.
24407
24408         * doc/cpp.texi: Move to GFDL version 1.3.
24409         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24410         * doc/gccint.texi: Move to GFDL version 1.3.
24411         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24412         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24413         * doc/invoke.texi: Move to GFDL version 1.3.
24414
24415 2010-06-09  Jan Hubicka  <jh@suse.cz>
24416
24417         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24418         Break out from ...
24419         (propagate) ... here; swap the order.
24420
24421 2010-06-09  Jan Hubicka  <jh@suse.cz>
24422
24423         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24424         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24425         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24426         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24427
24428 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24429
24430         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24431         Do not the gather memory reference in the outer loop if the step
24432         is not a constant.
24433
24434 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24435
24436         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24437         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24438         8 to 4.  Minor change of the related comments.
24439
24440 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24441
24442         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24443         the scev analysis when the variable is not used outside the loop
24444         in a close phi node: call compute_overall_effect_of_inner_loop.
24445
24446 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24447
24448         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24449         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24450         (build_sese_conditions_before): Renamed call to single_pred_cond.
24451         (build_sese_conditions_after): Same.
24452
24453 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24454
24455         * graphite-poly.h: Fix comments and indentation.
24456         * graphite-sese-to-poly.c: Same.
24457         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24458         * tree-chrec.c: Fix comments and indentation.
24459         (tree-ssa-loop-niter.c): Same.
24460
24461 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24462
24463         PR rtl-optimization/42461
24464         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24465         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24466
24467 2010-06-09  Jan Hubicka  <jh@suse.cz>
24468
24469         * bitmap.c (bitmap_and): Walk array forward.
24470         (bitmap_and_compl_into): Likewise.
24471         (bitmap_xor): Likewise.
24472         (bitmap_xor_into):  Likewise.
24473         (bitmap_equal_p): Likewise.
24474         (bitmap_intersect_p): Likewise.
24475         (bitmap_intersect_compl_p): Likewise.
24476         (bitmap_ior_and_into): Likewise.
24477         (bitmap_elt_copy): Likewise.
24478         (bitmap_and_compl): Likewise.
24479         (bitmap_elt_ior): Likewise.
24480
24481 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24482
24483         * opts-common.c (prune_options): Ensure replacement argv array
24484         is correctly terminated by a NULL entry.
24485
24486 2010-06-09  Jan Hubicka  <jh@suse.cz>
24487
24488         * cgraph.h (varpool_first_static_initializer,
24489         varpool_next_static_initializer): Make checking only when
24490         checking enabled.
24491         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24492         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24493         gcc_assert to gcc_checking_assert.
24494         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24495         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24496         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24497         op_iter_init_phiuse, op_iter_init_phidef,
24498         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24499         gcc_checking_assert.
24500         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24501         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24502         partition_is_global, live_on_entry, live_on_exit,
24503         live_merge_and_clear): Likewise.
24504         * system.h (gcc_checking_assert): New macro.
24505         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24506
24507 2010-06-09  Jason Merrill  <jason@redhat.com>
24508
24509         * Makefile.in (TAGS): Collect tags info from c-family.
24510
24511 2010-06-09  Jan Hubicka  <jh@suse.cz>
24512
24513         * gimple.h (gcc_gimple_checking_assert): New macro.
24514         (gimple_set_def_ops, gimple_set_use_ops,
24515         gimple_set_vuse, gimple_set_vdef,
24516         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24517         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24518         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24519         gimple_asm_output_op, gimple_asm_output_op_ptr,
24520         gimple_asm_set_output_op, gimple_asm_clobber_op,
24521         gimple_asm_set_clobber_op, gimple_asm_label_op,
24522         gimple_asm_set_label_op, gimple_try_set_kind,
24523         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24524         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24525         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24526         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24527         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24528         gimple_omp_for_set_initial, gimple_omp_for_final,
24529         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24530         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24531         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24532         conditional with ENABLE_GIMPLE_CHECKING.
24533         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24534
24535 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24536
24537         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24538         (get_computation_cost_at): Use it.
24539         (determine_use_iv_cost_condition): Likewise.
24540         (determine_iv_cost): Likewise.
24541
24542 2010-06-09  Richard Guenther  <rguenther@suse.de>
24543
24544         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24545         replace constants.
24546
24547 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24548
24549         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24550
24551 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24552
24553         PR tree-optimization/44423
24554         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24555         (analyze_access_subtree): Pass negative allow_replacements to children
24556         if the current type is scalar.
24557
24558 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24559
24560         PR testsuite/42843
24561         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24562         * doc/plugins.texi (Plugin license check): Update information
24563         on type of plugin_is_GPL_compatible.
24564         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24565         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24566
24567 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24568
24569         * config/arm/arm.c (thumb2_reorg): New function.
24570         (arm_reorg): Call it.
24571         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24572         arithmetic operations): Delete.
24573
24574 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24575
24576         PR target/44067
24577         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24578         e500v2 target.
24579
24580 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24581
24582         PR plugins/44459
24583         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24584
24585 2010-06-08  Jan Hubicka  <jh@suse.cz>
24586
24587         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24588         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24589
24590 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24591
24592         PR tree-optimization/39874
24593         PR middle-end/28685
24594         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24595         Declare.
24596         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24597         same_bool_result_p): New.
24598         (and_var_with_comparison, and_var_with_comparison_1,
24599         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24600         (or_var_with_comparison, or_var_with_comparison_1,
24601         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24602         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24603         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24604         of combine_comparisons.
24605         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24606
24607 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24608
24609         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24610         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24611         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24612         pdp11_function_value_regno_p): New functions.
24613         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24614         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24615
24616 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24617
24618         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24619         Thumb-2 in the MINUS case.
24620
24621 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24622
24623         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24624
24625         * doc/gty.texi (GTY Options): Document typed GC allocation and
24626         variable_size GTY option.
24627
24628         * ggc-internal.h: New.
24629
24630         * ggc.h: Update copyright year.
24631         (digit_string): Move to stringpool.c.
24632         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24633         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24634         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24635         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24636         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24637         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24638         (ggc_force_collect, ggc_get_size, ggc_statistics)
24639         (ggc_print_common_statistics): Move to ggc-internal.h.
24640         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24641         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24642         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24643         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24644         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24645         (ggc_alloc_zone_pass_stat): Remove.
24646         (ggc_internal_alloc_stat, ggc_internal_alloc)
24647         (ggc_internal_cleared_alloc_stat): New.
24648         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24649         (ggc_internal_vec_alloc_stat)
24650         (ggc_internal_cleared_vec_alloc_stat)
24651         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24652         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24653         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24654         (ggc_cleared_alloc_ptr_array_two_args): New.
24655         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24656         (ggc_splay_alloc): Change the type of the first argument to
24657         enum gt_types_enum.
24658         (ggc_alloc_string): Make macro.
24659         (ggc_alloc_string_stat): New.
24660         (ggc_strdup): Redefine.
24661         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24662         (ggc_alloc_rtvec_sized): New.
24663         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24664         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24665         (ggc_internal_cleared_alloc_zone_stat)
24666         (ggc_internal_zone_alloc_stat)
24667         (ggc_internal_zone_cleared_alloc_stat)
24668         (ggc_internal_zone_vec_alloc_stat)
24669         (ggc_alloc_zone_rtx_def_stat)
24670         (ggc_alloc_zone_tree_node_stat)
24671         (ggc_alloc_zone_cleared_tree_node_stat)
24672         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24673
24674         * ggc-common.c: Include ggc-internal.h.
24675         (ggc_internal_cleared_alloc_stat): Rename from
24676         ggc_alloc_cleared_stat.
24677         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24678         (ggc_calloc): Remove.
24679         (ggc_cleared_alloc_htab_ignore_args): New.
24680         (ggc_cleared_alloc_ptr_array_two_args): New.
24681         (ggc_splay_alloc): Add obj_type parameter.
24682         (init_ggc_heuristics): Formatting fixes.
24683
24684         * ggc-none.c: Update copyright year.
24685         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24686         (ggc_alloc_cleared_stat): Rename to
24687         ggc_internal_cleared_alloc_stat.
24688         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24689
24690         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24691         Remove references to ggc_alloc in comments.
24692         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24693         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24694         (new_ggc_zone, destroy_ggc_zone): Remove.
24695         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24696
24697         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24698         ggc_alloc in comments.
24699         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24700         (ggc_internal_alloc_zone_pass_stat): New.
24701         (ggc_internal_cleared_alloc_zone_stat): New.
24702         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24703         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24704         (new_ggc_zone, destroy_ggc_zone): Remove.
24705
24706         * stringpool.c: Update copyright year.  Include ggc-internal.h
24707         (digit_vector): Make static.
24708         (digit_string): Moved from ggc.h.
24709         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24710         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24711
24712         * Makefile.in (GGC_INTERNAL_H): New.
24713         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24714         $(GGC_INTERNAL_H) to dependencies.
24715
24716         * gengtype.c: Update copyright year.
24717         (walk_type): Accept variable_size GTY option.
24718         (USED_BY_TYPED_GC_P): New macro.
24719         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24720         whitespace at the end of strings.
24721         (get_type_specifier, variable_size_p): New functions.
24722         (alloc_quantity, alloc_zone): New enums.
24723         (write_typed_alloc_def): New function.
24724         (write_typed_struct_alloc_def): Likewise.
24725         (write_typed_typed_typedef_alloc_def): Likewise.
24726         (write_typed_alloc_defns): Likewise.
24727         (output_typename, write_splay_tree_allocator_def): Likewise.
24728         (write_splay_tree_allocators): Likewise.
24729         (main): Call write_typed_alloc_defns and
24730         write_splay_tree_allocators.
24731
24732         * lto-streamer.h (lto_file_decl_data_ptr): New.
24733
24734         * passes.c (order): Define using cgraph_node_ptr.
24735
24736         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24737         ht_identifier_ptr.
24738
24739         * gimple.h (union gimple_statement_d): Likewise.
24740
24741         * rtl.h (struct rtx_def): Likewise.
24742         (struct rtvec_def): Likewise.
24743
24744         * tree.h (union tree_node): Likewise.
24745
24746         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24747
24748         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24749
24750         * tree-scalar-evolution.c (scev_initialize): Likewise.
24751
24752         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24753
24754         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24755
24756         * omp-low.c (lower_omp_critical): Likewise.
24757
24758         * bitmap.h (struct bitmap_head_def): Update comment to not
24759         reference ggc_alloc.
24760
24761         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24762
24763         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24764
24765         * ipa-prop.c (duplicate_ggc_array): Rename to
24766         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24767         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24768
24769         * gimple.c (gimple_alloc_stat): Use
24770         ggc_alloc_cleared_gimple_statement_d_stat.
24771
24772         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24773
24774         * tree.c (make_node_stat): Use
24775         ggc_alloc_zone_cleared_tree_node_stat.
24776         (make_tree_vec_stat): Likewise.
24777         (build_vl_exp_stat): Likewise.
24778         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24779         (make_tree_binfo_stat): Likewise.
24780         (tree_cons_stat): Likewise.
24781
24782         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24783         (shallow_copy_rtx_stat): Likewise.
24784         (make_node_stat): Likewise.
24785
24786         * lto-symtab.c: Fix comment.
24787
24788         * tree-cfg.c (create_bb): Update comment to not reference
24789         ggc_alloc_cleared.
24790         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24791
24792         * varpool.c (varpool_node): Use typed GC allocation.
24793         (varpool_extra_name_alias): Likewise.
24794
24795         * varasm.c (emutls_decl): Likewise.
24796         (get_unnamed_section): Likewise.
24797         (get_noswitch_section): Likewise.
24798         (get_section): Likewise.
24799         (get_block_for_section): Likewise.
24800         (build_constant_desc): Likewise.
24801         (create_constant_pool): Likewise.
24802         (force_const_mem): Likewise.
24803
24804         * tree.c (build_vl_exp_stat): Likewise.
24805         (build_real): Likewise.
24806         (build_string): Likewise.
24807         (decl_debug_expr_insert): Likewise.
24808         (decl_value_expr_insert): Likewise.
24809         (type_hash_add): Likewise.
24810         (build_omp_clause): Likewise.
24811
24812         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24813
24814         * tree-ssa.c (init_tree_ssa): Likewise.
24815
24816         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24817
24818         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24819
24820         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24821
24822         * tree-ssa-alias.c (get_ptr_info): Likewise.
24823
24824         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24825
24826         * tree-phinodes.c (allocate_phi_node): Likewise.
24827
24828         * tree-iterator.c (tsi_link_before): Likewise.
24829         (tsi_link_after): Likewise.
24830
24831         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24832
24833         * tree-dfa.c (create_var_ann): Likewise.
24834
24835         * tree-cfg.c (create_bb): Likewise.
24836
24837         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24838         (general_init): Likewise.
24839
24840         * stringpool.c (stringpool_ggc_alloc): Likewise.
24841         (gt_pch_save_stringpool): Likewise.
24842
24843         * sese.c (if_region_set_false_region): Likewise.
24844
24845         * passes.c (do_per_function_toporder): Likewise.
24846
24847         * optabs.c (set_optab_libfunc): Likewise.
24848         (set_conv_libfunc): Likewise.
24849
24850         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24851
24852         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24853         (input_eh_region): Likewise.
24854         (input_eh_lp): Likewise.
24855         (make_new_block): Likewise.
24856         (unpack_ts_real_cst_value_fields): Likewise.
24857
24858         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24859
24860         * lto-cgraph.c (input_node_opt_summary): Likewise.
24861
24862         * loop-init.c (loop_optimizer_init): Likewise.
24863
24864         * lambda.h (lambda_vector_new): Likewise.
24865
24866         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24867
24868         * ira.c (update_equiv_regs): Likewise.
24869
24870         * ipa.c (cgraph_node_set_new): Likewise.
24871         (cgraph_node_set_add): Likewise.
24872         (varpool_node_set_new): Likewise.
24873         (varpool_node_set_add): Likewise.
24874
24875         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24876         (duplicate_ipa_jump_func_array): Likewise.
24877         (ipa_read_node_info): Likewise.
24878
24879         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24880
24881         * integrate.c (get_hard_reg_initial_val): Likewise.
24882
24883         * gimple.c (gimple_alloc_stat): Likewise.
24884         (gimple_build_omp_for): Likewise.
24885         (gimple_seq_alloc): Likewise.
24886         (gimple_copy): Likewise.
24887
24888         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24889         (gsi_insert_after_without_update): Likewise.
24890
24891         * function.c (add_frame_space): Likewise.
24892         (insert_temp_slot_address): Likewise.
24893         (assign_stack_temp_for_type): Likewise.
24894         (allocate_struct_function): Likewise.
24895         (types_used_by_var_decl_insert): Likewise.
24896
24897         * except.c (init_eh_for_function): Likewise.
24898         (gen_eh_region): Likewise.
24899         (gen_eh_region_catch): Likewise.
24900         (gen_eh_landing_pad): Likewise.
24901         (add_call_site): Likewise.
24902
24903         * emit-rtl.c (get_mem_attrs): Likewise.
24904         (get_reg_attrs): Likewise.
24905         (start_sequence): Likewise.
24906         (init_emit): Likewise.
24907
24908         * dwarf2out.c (new_cfi): Likewise.
24909         (queue_reg_save): Likewise.
24910         (dwarf2out_frame_init): Likewise.
24911         (new_loc_descr): Likewise.
24912         (find_AT_string): Likewise.
24913         (new_die): Likewise.
24914         (add_var_loc_to_decl): Likewise.
24915         (clone_die): Likewise.
24916         (clone_as_declaration): Likewise.
24917         (break_out_comdat_types): Likewise.
24918         (new_loc_list): Likewise.
24919         (loc_descriptor): Likewise.
24920         (add_loc_descr_to_each): Likewise.
24921         (add_const_value_attribute): Likewise.
24922         (tree_add_const_value_attribute): Likewise.
24923         (add_comp_dir_attribute): Likewise.
24924         (add_name_and_src_coords_attributes): Likewise.
24925         (lookup_filename): Likewise.
24926         (store_vcall_insn): Likewise.
24927         (dwarf2out_init): Likewise.
24928
24929         * dbxout.c (dbxout_init): Likewise.
24930
24931         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24932
24933         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24934
24935         * config/score/score7.c (score7_output_external): Likewise.
24936
24937         * config/score/score3.c (score3_output_external): Likewise.
24938
24939         * config/s390/s390.c (s390_init_machine_status): Likewise.
24940
24941         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24942         (rs6000_init_machine_status): Likewise.
24943         (output_toc): Likewise.
24944
24945         * config/pa/pa.c (pa_init_machine_status): Likewise.
24946         (get_deferred_plabel): Likewise.
24947
24948         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24949
24950         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24951
24952         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24953
24954         * config/mep/mep.c (mep_init_machine_status): Likewise.
24955         (mep_note_pragma_flag): Likewise.
24956
24957         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24958
24959         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24960
24961         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24962
24963         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24964         (i386_pe_maybe_record_exported_symbol): Likewise.
24965
24966         * config/i386/i386.c (get_dllimport_decl): Likewise.
24967         (ix86_init_machine_status): Likewise.
24968         (assign_386_stack_local): Likewise.
24969
24970         * config/frv/frv.c (frv_init_machine_status): Likewise.
24971
24972         * config/darwin.c (machopic_indirection_name): Likewise.
24973
24974         * config/cris/cris.c (cris_init_machine_status): Likewise.
24975
24976         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24977
24978         * config/avr/avr.c (avr_init_machine_status): Likewise.
24979
24980         * config/arm/arm.c (arm_init_machine_status): Likewise.
24981
24982         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24983         (alpha_need_linkage): Likewise.
24984         (alpha_use_linkage): Likewise.
24985
24986         * cgraph.c (cgraph_allocate_node): Likewise.
24987         (cgraph_create_edge_1): Likewise.
24988         (cgraph_create_indirect_edge): Likewise.
24989         (cgraph_add_asm_node): Likewise.
24990
24991         * cfgrtl.c (init_rtl_bb_info): Likewise.
24992
24993         * cfgloop.c (alloc_loop): Likewise.
24994         (rescan_loop_exit): Likewise.
24995
24996         * cfg.c (init_flow): Likewise.
24997         (alloc_block): Likewise.
24998         (unchecked_make_edge): Likewise.
24999
25000         * c-parser.c (c_parse_init): Likewise.
25001         (c_parse_file): Likewise.
25002
25003         * c-decl.c (bind): Likewise.
25004         (record_inline_static): Likewise.
25005         (push_scope): Likewise.
25006         (make_label): Likewise.
25007         (lookup_label_for_goto): Likewise.
25008         (finish_struct): Likewise.
25009         (finish_enum): Likewise.
25010         (c_push_function_context): Likewise.
25011
25012         * bitmap.c (bitmap_element_allocate): Likewise.
25013         (bitmap_gc_alloc_stat): Likewise.
25014
25015         * alias.c (record_alias_subset): Likewise.
25016         (init_alias_analysis): Likewise.
25017
25018 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25019
25020         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25021         * tree-inline.c (expand_call_inline): Pass translated return value of
25022         cgraph_inline_failed_string to diagnostic function.
25023
25024 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25025             Shujing Zhao  <pearly.zhao@oracle.com>
25026
25027         PR c/37724
25028         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25029         implicit bad conversions is initialization.
25030         (error_init): Use gmsgid instead of msgid for argument name and change
25031         the call for error.
25032         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25033         change the call for pedwarn.
25034         (warning_init): Use gmsgid instead of msgid for argument name and
25035         change the call for warning.
25036
25037 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25038
25039         * config/mips/mips-protos.h (mips_print_operand): Delete.
25040         (mips_print_operand_address): Delete.
25041         * config/mips/mips.h (mips_print_operand_punct): Delete.
25042         (PRINT_OPERAND): Delete.
25043         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25044         (PRINT_OPERAND_ADDRESS): Delete.
25045         * config/mips/mips.c (mips_print_operand_punct): Make static.
25046         (mips_print_operand_address): Make static.
25047         (mips_print_operand): Make static.  Call
25048         mips_print_operand_punct_valid_p.
25049         (mips_print_operand_punct_valid_p): New function.
25050         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25051         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25052
25053 2010-06-07  Jan Hubicka  <jh@suse.cz>
25054
25055         PR middle-end/44454
25056         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25057         are allocated.
25058
25059 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25060
25061         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25062         name of RECORD.
25063
25064 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25065
25066         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25067         attributes): Document gas.
25068
25069 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25070
25071         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25072         <TYPE_LEA>: Split instruction.
25073         <default>: Remove alternative 2 handling.
25074         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25075         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25076         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25077
25078         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25079         (ashift_zext lea splitter): Use DImode for multiplication.
25080
25081         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25082         to generate addition.
25083
25084 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25085
25086         * common.opt (fira-verbose): Use Var.
25087         (fpcc-struct-return): Use Init instead of VarExists.
25088         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25089         toplev.c.
25090         * flags.h (flag_signed_char, flag_short_enums,
25091         flag_pcc_struct_return, flag_ira_verbose,
25092         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25093         * toplev.c (flag_detailed_statistics, flag_signed_char,
25094         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25095         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25096         * toplev.h (flag_crossjumping, flag_if_conversion,
25097         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25098         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25099         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25100         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25101         flag_ira_coalesce, flag_ira_move_spills,
25102         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25103
25104 2010-06-07  Jan Hubicka  <jh@suse.cz>
25105
25106         * df-core.c (df_analyze_problem): Do verification after allocation.
25107
25108         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25109         (df_lr_alloc): Initialize problem data; move bitmaps to
25110         lr_bitmaps obstack.
25111         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25112         (df_lr_verify_solution_start): Do not initialize problem data;
25113         allocate bitmaps in lr_bitmaps.
25114         (df_lr_verify_solution_end): Do not free problem data.
25115
25116 2010-06-07  Jan Hubicka  <jh@suse.cz>
25117
25118         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25119         if caller is noreturn.
25120         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25121         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25122         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25123         * ipa-pure-const.c (check_decl): Add IPA parameter.
25124         (state_from_flags): New function.
25125         (better_state, worse_state): New functions.
25126         (check_call): When in IPA mode, do not care about callees.
25127         (check_load, check_store): Update.
25128         (check_ipa_load, check_ipa_store): New.
25129         (check_stmt): When in IPA mode, use IPA checkers.
25130         (analyze_function): Use state_from_flags.
25131         (propagate): Check indirect edges and references.
25132
25133 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25134
25135         PR rtl-optimization/44404
25136         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25137         of count_occurrences to see if it's safe to modify mem_insn.
25138
25139 2010-06-07  Richard Guenther  <rguenther@suse.de>
25140
25141         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25142         and EH-only cleanup drop the cleanup instead of inserting it
25143         unconditionally.
25144
25145 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25146
25147         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25148         documentation.
25149         * targhooks.c (default_builtin_vectorization_cost): New function.
25150         * targhooks.h (default_builtin_vectorization_cost): Declare.
25151         * target.h (enum vect_cost_for_stmt): Define.
25152         (builtin_vectorization_cost): Change argument and comment.
25153         * tree-vectorizer.h: Remove cost model macros.
25154         * tree-vect-loop.c: Include target.h.
25155         (vect_get_cost): New function.
25156         (vect_estimate_min_profitable_iters): Replace cost model macros with
25157         calls to vect_get_cost.
25158         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25159         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25160         default implementation.
25161         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25162         calls to target hook builtin_vectorization_cost.
25163         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25164         Likewise.
25165         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25166         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25167         implementation to return costs.
25168         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25169         * config/spu/spu.h: Remove vectorizer cost model macros.
25170         * config/i386/i386.h: Likewise.
25171         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25172         a call to target hook builtin_vectorization_cost.
25173
25174 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25175
25176         PR target/44319
25177         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25178         and above and defer till target is known.
25179         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25180         turn off otherwise.
25181
25182 2010-05-25  Jan Hubicka  <jh@suse.cz>
25183
25184         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25185         (df_compact_blocks): Likewise.
25186         * df.h (struct df): Turn hardware_regs_used,
25187         regular_block_artificial_uses, eh_block_artificial_uses,
25188         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25189         bitmap_head.
25190         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25191         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25192         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25193         df_scan_blocks, df_insn_delete, df_insn_rescan,
25194         df_insn_rescan_debug_internal, df_insn_rescan_all,
25195         df_process_deferred_rescans, df_process_deferred_rescans,
25196         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25197         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25198         df_record_entry_block_defs, df_record_exit_block_uses,
25199         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25200         df_scan_verify): Update.
25201
25202 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25203
25204         PR c++/44188
25205         * c-common.c (is_typedef_decl): Move this definition ...
25206         * tree.c (is_typedef_decl): ... here.
25207         (typdef_variant_p): Move definition here from cp/tree.c.
25208         * c-common.h (is_typedef_decl): Move this declaration ...
25209         * tree.h (is_typedef_decl): ... here.
25210         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25211         * dwarf2out.c (is_naming_typedef_decl): New function.
25212         (gen_tagged_type_die): Split out of ...
25213         (gen_type_die_with_usage): ... this function. When an anonymous
25214         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25215         is emitted for the typedef.
25216         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25217         anonymous tagged types.
25218
25219 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25220
25221         PR c/20000
25222         * c-decl.c (grokdeclarator): Delete warning.
25223
25224 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25225
25226         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25227         newly built CALL_EXPR.
25228         * tree-profile.c (tree_profiling): Don't profile functions produced
25229         for built-in stuff.
25230
25231 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25232
25233         PR bootstrap/44427
25234         PR bootstrap/44428
25235         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25236         endianness-independent.
25237
25238 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25239
25240         * c-common.c: Move to c-family/.
25241         * c-common.def: Likewise.
25242         * c-common.h: Likewise.
25243         * c-cppbuiltin.c: Likewise.
25244         * c-dump.c: Likewise.
25245         * c-format.c: Likewise.
25246         * c-format.h : Likewise.
25247         * c-gimplify.c: Likewise.
25248         * c-lex.c: Likewise.
25249         * c-omp.c: Likewise.
25250         * c.opt: Likewise.
25251         * c-opts.c: Likewise.
25252         * c-pch.c: Likewise.
25253         * c-ppoutput.c: Likewise.
25254         * c-pragma.c: Likewise.
25255         * c-pragma.h: Likewise.
25256         * c-pretty-print.c: Likewise.
25257         * c-pretty-print.h: Likewise.
25258         * c-semantics.c: Likewise.
25259         * stub-objc.c: Likewise.
25260
25261         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25262         (get_output_file_with_visibility): Fix name for c-common.h.
25263         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25264
25265         * c-tree.h: Update include path for moved files.
25266         * c-lang.c: Likewise.
25267         * c-lang.h: Likewise.
25268         * c-parser.c: Likewise.
25269         * c-convert.c: Likewise.
25270         * c-decl.c: Likewise.
25271         * c-objc-common.c: Likewise.
25272         * configure.ac: Make sure c-family/ exists in the build directory.
25273         * configure: Regenerate.
25274         * Makefile.in: Update paths for moved files.  Regroup files per
25275         location and update dependencies.  Move generated_files down after
25276         ALL_GTFILES_H.
25277
25278         * config/spu/spu-c.c: Update paths for moved files.
25279         * config/mep/mep-pragma.c: Likewise.
25280         * config/darwin-c.c: Likewise.
25281         * config/i386/msformat-c.c: Likewise.
25282         * config/i386/i386-c.c: Likewise.
25283         * config/avr/avr-c.c: Likewise.
25284         * config/sol2-c.c: Likewise.
25285         * config/ia64/ia64-c.c: Likewise.
25286         * config/rs6000/rs6000-c.c: Likewise.
25287         * config/arm/arm.c: Likewise.
25288         * config/arm/arm-c.c: Likewise.
25289         * config/h8300/h8300.c: Likewise.
25290         * config/v850/v850-c.c: Likewise.
25291
25292         * config/t-darwin: Fix dependencies for moved files.
25293         * config/t-sol2: Fix dependencies for moved files.
25294         * config/mep/t-mep: Fix dependencies for moved files.
25295         * config/ia64/t-ia64: Fix dependencies for moved files.
25296         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25297         * config/v850/t-v850: Fix dependencies for moved files.
25298         * config/v850/t-v850e: Fix dependencies for moved files.
25299
25300         * config/m32c/m32c-pragma.c
25301
25302         * po/exgettext: Look in c-family/ also.
25303
25304 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25305
25306         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25307         (mark_control_dependent_edges_necessary): Call it instead of marking
25308         the last statement manually.
25309         (propagate_necessity): Likewise.
25310
25311 2010-06-05  Jan Hubicka  <jh@suse.cz>
25312
25313         * basic-block.h (compute_dominance_frontiers): Updated.
25314         (compute_idf): Likewise.
25315
25316         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25317         for dominance frontiers.
25318         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25319         (insert_updated_phi_nodes_for): Likewise.
25320         (update_ssa): Likewise.
25321         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25322         (compute_dominance_frontiers): Likewise.
25323         (compute_idf): Likewise.
25324         * df-problems.c (df_md_local_compute): Likewise.
25325
25326 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25327
25328         * target.h (struct gcc_target): Add memory_move_cost field.
25329         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25330         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25331         * targhooks.c (default_memory_move_cost): New function.
25332         * targhooks.h (default_memory_move_cost): Declare function.
25333         * reload.h (memory_move_cost): Declare.
25334         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25335         * reginfo.c (memory_move_cost): New function.
25336         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25337         * ira.h (ira_memory_move_cost): Update comment.
25338         * ira.c (ira_memory_move_cost): Update comment.
25339         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25340         with memory_move_cost.
25341         * postreload.c (reload_cse_simplify_set): (Ditto.).
25342         * reload1.c (choose_reload_regs): (Ditto.).
25343         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25344         (MEMORY_MOVE_COST):  Revise documentation.
25345
25346         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25347         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25348         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25349         type of 'in' argument to bool.
25350         (TARGET_MEMORY_MOVE_COST): Define.
25351
25352 2010-06-05  Jan Hubicka  <jh@suse.cz>
25353
25354         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25355         that cannot return.  Be more careful when merging the results with
25356         previously known ones.
25357
25358 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25359
25360         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25361         function to add the -iplugindir option.
25362         (find_plugindir_spec_function): Add new declaration and function.
25363         (static_spec_func): Use it for "find-plugindir".
25364
25365 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25366
25367         PR c++/44361
25368         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25369         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25370         statement expression.
25371
25372 2010-06-05  Jan Hubicka  <jh@suse.cz>
25373
25374         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25375         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25376         dense_invalidated_by_call to bitmap head.
25377         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25378         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25379         df_rd_start_dump, df_lr_verify_transfer_functions,
25380         df_live_verify_transfer_functions, df_chain_create_bb,
25381         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25382         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25383         df_simulate_one_insn_forwards, df_md_alloc,
25384         df_md_bb_local_compute_process_def,
25385         df_md_bb_local_compute_process_def, df_md_local_compute,
25386         df_md_transfer_function df_md_free): Update.
25387
25388 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25389
25390         PR c/44322
25391         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25392         target type for ADDR_EXPR; require no changes to qualifiers except
25393         for function types.
25394         * c-tree.h (c_build_type_variant): Remove.
25395
25396 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25397
25398         * genautomata.c (get_excl_set): Do work per element, not per char.
25399         (check_presence_pattern_sets): Similar.
25400         (check_absence_pattern_sets): Similar.
25401
25402 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25403
25404         * genautomata.c (curr_state_pass_num): Delete.
25405         (min_issue_delay_pass_states): Delete.
25406         (min_issue_delay): Delete.
25407         (initiate_min_issue_delay_pass_states): Delete.
25408         (output_min_issue_delay_table): Compute min_issue_delay_vect
25409         using a breadth-first search variant.
25410         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25411
25412 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25413
25414         PR boostrap/44421
25415         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25416         (df_byte_lr_bb_local_compute): Likewise.
25417
25418 2010-06-03  Jason Merrill  <jason@redhat.com>
25419
25420         Implement noexcept operator (5.3.7)
25421         * c-common.c (c_common_reswords): Add noexcept.
25422         * c-common.h (enum rid): Add RID_NOEXCEPT.
25423
25424 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25425
25426         * config/darwin-driver.c (darwin_default_min_version): Use
25427         GCC-specific formats in diagnostics.
25428         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25429         diagnostics.
25430         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25431         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25432         eval_spec_function, handle_braces, process_brace_body, main,
25433         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25434         getenv_spec_function, compare_version_strings,
25435         version_compare_spec_function): Use GCC-specific formats in
25436         diagnostics.
25437
25438 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25439
25440         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25441         that operand 0 and operand 1 are equal.
25442         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25443         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25444         and operand 1 are equal.
25445         <default>: Ditto.  Remove ??? comment.
25446         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25447         and operand 1 are equal.
25448         <default>: Ditto.  Remove ??? comment.
25449         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25450         are equal.
25451         (*add<mode>_4) <default>: Ditto.
25452         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25453
25454 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25455
25456         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25457         * config/i386/i386.c (ix86_print_operand): Make non-static.
25458         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25459         * output.h (output_operand): Declare.
25460         * final.c (output_operand): Make non-static.
25461
25462 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25463
25464         PR rtl-optimization/44013
25465         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25466         when processing debug insns.
25467
25468         PR debug/41371
25469         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25470         recursing.  Check that recursion is bounded.  Rename inner var
25471         to avoid hiding incoming argument.
25472
25473 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25474
25475         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25476         operands[2] == 255.
25477         (*addqi_3): Ditto.
25478         (*addqi_4): Ditto.
25479         (*addqi_5): Ditto.
25480         (*addqi_ext_1_rex64): Ditto.
25481         (*addqi_ext_1): Ditto.
25482
25483         (*addqi_4): Check for incdec_operand in QImode.
25484
25485         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25486         using SWI mode iterator.
25487         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25488         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25489         mode iterator.
25490         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25491         using SWI mode iterator.
25492
25493 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25494
25495         PR c/25880
25496         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25497         * c-format.c (gcc_diag_flag_specs): Add hash.
25498         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25499         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25500         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25501         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25502         (pp_c_type_qualifier_list): Call the function above.
25503         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25504         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25505         (WARN_FOR_QUALIFIERS): New macro.
25506         (convert_for_assignment): Use it.
25507
25508 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25509
25510         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25511
25512 2010-06-04  Jan Hubicka  <jh@suse.cz>
25513
25514         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25515         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25516         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25517         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25518         * fwprop.c (single_def_use_enter_block): Likewise.
25519         * ddg.c (create_ddg_dep_from_intra_loop_link,
25520         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25521         * loop-iv.c (latch_dominating_def): Likewise.
25522         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25523         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25524         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25525         df_rd_transfer_function, df_rd_top_dump,
25526         df_rd_bottom_dump): Update.
25527         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25528         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25529         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25530         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25531         df_lr_verify_solution_start, df_lr_verify_solution_end,
25532         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25533         df_live_free_bb_info, df_live_alloc, df_live_reset,
25534         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25535         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25536         df_live_verify_solution_start, df_live_verify_solution_end,
25537         df_live_verify_transfer_functions, df_chain_create_bb,
25538         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25539         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25540         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25541         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25542         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25543         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25544         df_byte_lr_bottom_dump, df_create_unused_note,
25545         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25546         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25547         df_md_transfer_function, df_md_init, df_md_confluence_0,
25548         df_md_confluence_n,
25549         df_md_top_dump, df_md_bottom_dump): Update.
25550         (struct df_lr_problem_data): Embedd bitmap headers.
25551
25552 2010-06-04  Jan Hubicka  <jh@suse.cz>
25553
25554         * dce.c (dce_process_block): Do not re-scan already marked
25555         instructions.
25556
25557 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25558
25559         PR rtl-optimization/39871
25560         PR rtl-optimization/40615
25561         PR rtl-optimization/42500
25562         PR rtl-optimization/42502
25563         * ira.c (init_reg_equiv_memory_loc: New function.
25564         (ira): Call it twice.
25565         * reload.h (calculate_elim_costs_all_insns): Declare.
25566         * ira-costs.c: Include "reload.h".
25567         (regno_equiv_gains): New static variable.
25568         (init_costs): Allocate it.
25569         (finish_costs): Free it.
25570         (ira_costs): Call calculate_elim_costs_all_insns.
25571         (find_costs_and_classes): Take estimated elimination costs
25572         into account.
25573         (ira_adjust_equiv_reg_cost): New function.
25574         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25575         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25576         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25577         (elim_bb): New static variable.
25578         (reload): Move code out of here into init_eliminable_invariants and
25579         free_reg_equiv.  Call them.
25580         (calculate_elim_costs_all_insns): New function.
25581         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25582         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25583         but call note_reg_elim_costly if we turned a valid memory address
25584         into an invalid one.
25585         * Makefile.in (ira-costs.o): Depend on reload.h.
25586
25587 2010-06-04  Julian Brown  <julian@codesourcery.com>
25588
25589         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25590         for pool ranges.
25591
25592 2010-06-04  Richard Guenther  <rguenther@suse.de>
25593
25594         PR lto/41584
25595         * cgraph.h (struct varpool_node): Add lto_file_data field.
25596         * lto-cgraph.c (input_varpool_node): Initialize it.
25597
25598 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25599
25600         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25601         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25602         predicate in "type" attribute calculation.
25603         (*addsi_1_zext): Ditto.
25604         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25605         (*addsi_2_zext): Ditto.
25606         (*add<mode>_3): Ditto.
25607         (*addsi_3_zext): Ditto.
25608         (*add<mode>_5): Ditto.
25609
25610 2010-06-03  Jan Hubicka  <jh@suse.cz>
25611
25612         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25613         of bitmap_bit_p.
25614         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25615
25616 2010-06-03  Jan Hubicka  <jh@suse.cz>
25617
25618         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25619         micro-optimize the checks when to add new note.
25620
25621 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25622
25623         * final.c (output_asm_insn): Call
25624         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25625         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25626         (output_address): Call targetm.asm_out.print_operand_address.
25627         Update comments.
25628         * target.h (struct gcc_target): Add print_operand,
25629         print_operand_address, and print_operand_punct_valid_p fields.
25630         * targhooks.h (default_print_operand): Declare.
25631         (default_print_operand_address): Declare.
25632         (default_print_operand_punct_valid_p): Declare.
25633         * targhooks.c (default_print_operand): Define.
25634         (default_print_operand_address): Define.
25635         (default_print_operand_punct_valid_p): Define.
25636         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25637         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25638         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25639         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25640         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25641         * vmsdbgout.c (addr_const_to_string): Update comment.
25642         * config/i386/i386.c (print_operand): Rename to...
25643         (ix86_print_operand): ...this.  Make static.
25644         (print_operand_address): Rename to...
25645         (ix86_print_operand_address): ...this.  Make static.  Call
25646         ix86_print_operand instead of PRINT_OPERAND.
25647         (ix86_print_operand_punct_valid_p): New function.
25648         (TARGET_PRINT_OPERAND): Define.
25649         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25650         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25651         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25652         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25653         (PRINT_OPERAND): Delete.
25654         (PRINT_OPERAND_ADDRESS): Delete.
25655         * config/i386/i386-protos.h (print_operand): Delete prototype.
25656         (print_operand_address): Delete prototype.
25657
25658 2010-06-03  Richard Guenther  <rguenther@suse.de>
25659
25660         PR tree-optimization/44403
25661         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25662         Preserve pointer qualifiers.
25663         (vect_create_data_ref_ptr): Likewise.
25664
25665 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25666
25667         PR c++/44294
25668         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25669
25670         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25671
25672 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25673
25674         PR debug/44375
25675         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25676         return false if merging the bbs would lead to goto_locus
25677         location being lost from the IL.
25678
25679 2010-06-03  Jan Hubicka  <jh@suse.cz>
25680             Jakub Jelinek  <jakub@redhat.com>
25681
25682         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25683         set->regs[i] is NULL or has just one entry.
25684
25685 2010-06-03  Jan Hubicka  <jh@suse.cz>
25686
25687         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25688         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25689
25690 2010-06-03  Paul Brook  <paul@codesourcery.com>
25691
25692         * config/arm/arm.c (FL_TUNE): Define.
25693         (arm_default_cpu, arm_cpu_select): Remove.
25694         (all_cores): Populate core field.
25695         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25696         (arm_find_cpu): New function.
25697         (arm_handle_option): Lookup cpu/architecture names.
25698         (arm_override_options): Cleanup mcpu/march/mtune handling.
25699         (arm_file_start): Ditto.
25700
25701 2010-06-03  Alan Modra  <amodra@gmail.com>
25702
25703         PR target/44169
25704         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25705         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25706         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25707         (rs6000_emit_load_toc_table): Likewise.
25708
25709 2010-06-02  Jan Hubicka  <jh@suse.cz>
25710
25711         * passes.c (init_optimization_passes): Put ipa reference
25712         after ipa pure-const.
25713
25714 2010-06-02  Jan Hubicka  <jh@suse.cz>
25715
25716         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25717         calls_read_all and calls_write_all.
25718         (get_reference_optimization_summary): Fix formatting.
25719         (is_proper_for_analysis): Check that decl is not readonly.
25720         (propagate_bits): Check CONST/PURE/noreturn flags.
25721         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25722         (analyze_function): Ignore indirect edges.
25723         (copy_global_bitmap): For all module statics, do nothing.
25724         (generate_summary): Do not print calls_read_all/calls_write_all.
25725         (read_write_all_from_decl): Take node as argument; check
25726         cgraph_node_cannot_return.
25727         (propagate): Reorganize read_all/write_all computation;
25728         check indirect edges; check ecf flags; use all_module_statics
25729         in the results; do not free all_module_statics.
25730         (stream_out_bitmap): Handle all_module_statics.
25731         (ipa_reference_write_optimization_summary): Likewise; use
25732         varpool/cgraph encoders to get boundaries.
25733         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25734         use it when possible.
25735
25736 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25737
25738         PR target/44218
25739         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25740         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25741
25742         * doc/extend.texi (powerpc builtins): Document vec_recip,
25743         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25744
25745         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25746         (rs6000_emit_swrsqrt): Ditto.
25747         (rs6000_emit_swdivsf): Delete.
25748         (rs6000_emit_swdivdf): Ditto.
25749         (rs6000_emit_swrsqrtsf): Ditto.
25750
25751         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25752         describe the reciprocal estimate support for each type.
25753         (recip_options): Map -mrecip=<opt> into option bits.
25754         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25755         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25756         reciprocal estimate instructions.
25757         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25758         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25759         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25760         cost information if -mdebug=cost or -mdebug=reg.
25761         (rs6000_override_options): Set -mrecip-precision for power6, and
25762         power7 machines.  If -mvsx or -mdfp, enable various options that
25763         came in previous instruction set ISAs, unless the option was
25764         explicitly disabled by the command line option.  Parse
25765         -mrecip=<opt> options.
25766         (rs6000_builtin_vectorized_function): Add support for vectorizing
25767         the reciprocal estimate builtins and expansions.
25768         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25769         (bdesc_2arg): Add reciprocal estimate builtins.
25770         (bdesc_1arg): Add reciprocal square root estimate builtins.
25771         (rs6000_expand_builtin): Rewrite to use a switch statement,
25772         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25773         (rs6000_init_builtins): Create declarations for reciprocal
25774         estimate builtins.
25775         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25776         sized, prefer traditional floating point registers, if integer
25777         vector types, prefer altivec registers.  Don't actually look at
25778         the memory address any more.
25779         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25780         builtins.
25781         (rs6000_load_constant_and_splat): New helper function to load up
25782         the constant for reciprocal estimate instructions.
25783         (rs6000_emit_madd): New helper function for generating
25784         multiply/add type instructions, based on the current switches.
25785         (rs6000_emit_msub): Ditto.
25786         (rs6000_emit_mnsub): Ditto.
25787         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25788         replace a divide with a reciprocal estimate and fixup, adding
25789         support for machines with high precision and vectors.
25790         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25791         low precision machines.
25792         (rs6000_emit_swdiv): New common function to be called to replace a
25793         division with reciprocal estimate and fixup.
25794         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25795         for double and vector types.  Add support for high precision machines.
25796
25797         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25798         the reciprocal estimate instructions can be generated.
25799         (TARGET_FRE): Ditto.
25800         (TARGET_FRSQRTES): Ditto.
25801         (TARGET_FRSQRTE): Ditto.
25802         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25803
25804         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25805         square root estimate on vectors.
25806         (re<mode>2): New insn for reciprocal division estimate on vectors.
25807
25808         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25809         New builtin.
25810         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25811         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25812         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25813         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25814         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25815         (RS6000_BUILTIN_RSQRT): Ditto.
25816         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25817         floating point builtin.
25818
25819         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25820         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25821         __RECIP_PRECISION__ based on the command line switches.
25822         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25823
25824         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25825         replacing division instructions with reciprocal estimate and fixup.
25826         (-mrecip=<opt>): New option.
25827         (-mrecip-precision): Ditto.
25828
25829         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25830         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25831         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25832         precision scalar.
25833
25834         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25835         (UNSPEC_VREFP): Ditto.
25836         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25837         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25838         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25839         reciprocal estimate instructions to be generated.
25840         (altivec_vrefp): Ditto.
25841
25842         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25843         estimate support.
25844         (rreg): New mode attribute for reciprocal estimate support.
25845         (recip<mode>3): New insn for division using reciprocal estimate
25846         and fixup builtins.
25847         (divide define_split): New define_split to convert floating point
25848         division to use reciprocal estimate if the user used the
25849         appropriate options and the split is run when we can add new
25850         pseudo registers for the fixup.
25851         (rsqrt<mode>2): New insn for reciprocal square root support.
25852         (recipsf3): Move into recip<mode>3.
25853         (recipdf3): Ditto.
25854         (fres): Use TARGET_FRES.
25855         (rsqrtsf2): Move into rsqrt<mode>2.
25856         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25857         (copysignsf3): Add support for VSX.
25858         (fred): Use TARGET_FRE.
25859         (fred_fpr): Ditto.
25860         (rsqrtdf_internal1): New function for frsqrte instruciton.
25861
25862         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25863         (vec_rsqrt): Ditto.
25864
25865 2010-06-03  Richard Guenther  <rguenther@suse.de>
25866
25867         PR middle-end/44291
25868         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25869         (set_user_assembler_libfunc): Likewise.
25870
25871 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25872
25873         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25874         defaults.h.
25875         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25876         to defaults.h
25877         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25878         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25879         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25880         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25881         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25882         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25883         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25884         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25885         * defaults.h: Updated for above mentioned changes.
25886
25887 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25888
25889         * c-common.c: Remove header include of tm_p.h.
25890         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25891
25892 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25893
25894         * tree.h (struct tree_decl_map): New type.
25895         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25896         (tree_decl_map_hash): New prototype.
25897         (debug_expr_for_decl, value_expr_for_decl): Change into
25898         tree_decl_map hashtab from tree_map.
25899         (init_ttree): Adjust initialization.
25900         (tree_decl_map_hash): New function.
25901         (decl_debug_expr_lookup, decl_debug_expr_insert,
25902         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25903
25904 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25905
25906         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25907         linker emulations.
25908         * configure: Regenerate.
25909         * config.in: Regenerate.
25910
25911         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25912         (X86_64_EMULATION): Define.
25913         (TARGET_LD_EMULATION): Use them.
25914
25915         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25916         (SPARC64_EMULATION): Define.
25917         (LINK_ARCH_SPEC): Use them.
25918
25919 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25920
25921         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25922         smallest_mode_for_size for computing the precision types of new
25923         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25924
25925 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25926
25927         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25928         information.
25929         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25930
25931 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25932
25933         PR middle-end/44363
25934         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25935         return false instead.
25936
25937 2010-06-02  Jan Hubicka  <jh@suse.cz>
25938
25939         PR middle-end/44295
25940         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25941         create new cgraph node to check callee.
25942
25943 2010-06-02  Richard Guenther  <rguenther@suse.de>
25944
25945         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25946
25947 2010-06-02  Richard Guenther  <rguenther@suse.de>
25948
25949         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25950         (lto_wrapper_cleanup): ... this.  Do not exit.
25951         (fatal): Adjust.  Exit here.
25952         (fatal_perror): Likewise.
25953         (fatal_signal): New function.
25954         (main): Set up signal handlers to cleanup temporary files.
25955         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25956
25957 2010-06-02  Richard Guenther  <rguenther@suse.de>
25958
25959         PR tree-optimization/44377
25960         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25961
25962 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25963
25964         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25965         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25966         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25967         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25968         instruction.
25969         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25970
25971 2010-06-02  Jan Hubicka  <jh@suse.cz>
25972
25973         * bitmap.c (bitmap_descriptor): Add search_iter.
25974         (bitmap_find_bit): Increment it.
25975         (print_statistics): Print it.
25976
25977 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25978
25979         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25980         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25981
25982 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25983
25984         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25985         change from yesterday.
25986
25987 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25988
25989         * c-ada-spec.c: Clean up redundant includes.
25990
25991 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
25992
25993         * gimplify.c: Do not include except.h and optabs.h.
25994         (gimplify_body): Do not initialize RTL profiling.
25995         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
25996         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
25997         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
25998         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
25999         langhooks.h.
26000
26001         * tree-pretty-print.h: Include pretty-print.h.
26002         * gimple-pretty-print.h: Include pretty-print.h.
26003
26004         * tree-pretty-print.c: Do not include diagnostic.h.
26005         * tree-vrp.c: Likewise.
26006         * tree-tailcall.c: Likewise
26007         * tree-scalar-evolution.c: Likewise
26008         * tree-ssa-dse.c: Likewise
26009         * tree-chrec.c: Likewise
26010         * tree-ssa-sccvn.c: Likewise
26011         * tree-ssa-copyrename.c: Likewise
26012         * tree-nomudflap.c: Likewise
26013         * tree-call-cdce.c: Likewise
26014         * tree-stdarg.c: Likewise
26015         * tree-ssa-math-opts.c: Likewise
26016         * tree-nrv.c: Likewise
26017         * tree-ssa-sink.c: Likewise
26018         * tree-browser.c: Likewise
26019         * tree-ssa-loop-ivcanon.c: Likewise
26020         * tree-ssa-loop.c: Likewise
26021         * tree-parloops.c: Likewise
26022         * tree-ssa-address.c: Likewise
26023         * tree-ssa-ifcombine.c: Likewise
26024         * tree-if-conv.c: Likewise
26025         * tree-data-ref.c: Likewise
26026         * tree-affine.c: Likewise
26027         * tree-ssa-phiopt.c: Likewise
26028         * tree-ssa-coalesce.c: Likewise
26029         * tree-ssa-pre.c: Likewise
26030         * tree-ssa-live.c: Likewise
26031         * tree-predcom.c: Likewise
26032         * tree-ssa-forwprop.c: Likewise
26033         * tree-ssa-dce.c: Likewise
26034         * tree-ssa-ter.c: Likewise
26035         * tree-ssa-loop-prefetch.c: Likewise
26036         * tree-optimize.c: Likewise
26037         * tree-ssa-phiprop.c: Likewise
26038         * tree-object-size.c: Likewise
26039         * tree-outof-ssa.c: Likewise
26040         * tree-ssa-structalias.c: Likewise
26041         * tree-switch-conversion.c: Likewise
26042         * tree-ssa-reassoc.c: Likewise
26043         * tree-ssa-operands.c: Likewise
26044         * tree-vectorizer.c: Likewise
26045         * tree-vect-data-refs.c: Likewise
26046         * tree-vect-generic.c: Likewise
26047         * tree-vect-stmts.c: Likewise
26048         * tree-vect-patterns.c: Likewise
26049         * tree-vect-slp.c: Likewise
26050         * tree-vect-loop.c: Likewise
26051         * tree-ssa-loop-ivopts.c: Likewise
26052         * tree-ssa-loop-im.c: Likewise
26053         * tree-ssa-loop-niter.c: Likewise
26054         * tree-ssa-loop-unswitch.c: Likewise
26055         * tree-ssa-loop-manip.c: Likewise
26056         * tree-ssa-loop-ch.c: Likewise
26057         * tree-dump.c: Likewise
26058         * tree-complex.c: Likewise
26059
26060         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26061         * tree-ssa-uninit.c: Likewise
26062         * tree-ssa-threadupdate.c: Likewise
26063         * tree-ssa-uncprop.c: Likewise
26064         * tree-ssa-ccp.c: Likewise
26065         * tree-ssa-dom.c: Likewise
26066         * tree-ssa-propagate.c: Likewise
26067         * tree-ssa-alias.c: Likewise
26068         * tree-dfa.c: Likewise
26069         * tree-cfgcleanup.c: Likewise
26070         * tree-sra.c: Likewise
26071         * tree-ssa-copy.c: Likewise
26072         * tree-ssa.c: Likewise
26073         * tree-profile.c: Likewise
26074         * tree-cfg.c: Likewise
26075         * tree-ssa-threadedge.c: Likewise
26076         * tree-vect-loop-manip.c: Likewise
26077
26078         * tree-inline.c: Do not include diagnostic.h and expr.h.
26079         Include rtl.h.
26080         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26081
26082         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26083         * tree-loop-distribution.c: Likewise.
26084
26085 2010-06-01  Jan Hubicka  <jh@suse.cz>
26086
26087         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26088
26089 2010-06-01  Jan Hubicka  <jh@suse.cz>
26090
26091         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26092         remove return value.
26093         (split_bbs_on_noreturn_calls) .... here.
26094         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26095         * tree-flow.h (fixup_noreturn_call): New.
26096
26097 2010-06-01  Jan Hubicka  <jh@suse.cz>
26098
26099         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26100
26101 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26102
26103         * tree.h (build_nt_call_list): Delete.
26104         * tree.c (build_nt_call_list): Delete.
26105
26106 2010-06-01  Jan Hubicka  <jh@suse.cz>
26107
26108         * fwprop.c: Make emit-rtl.h include last.
26109         * rtlanal.c: Include emit-rtl.h.
26110         * genautomata.c: Output emit-rtl include into insn-automata.c
26111         * df-scan.c: Include emit-rtl.h.
26112         * haifa-sched.c: Indlude emit-rtl.h.
26113         * mode-switching.c: Indlude emit-rtl.h.
26114         * graph.c: Indlude emit-rtl.h.
26115         * sel-sched.c: Include emit-rtl.h.
26116         * sel-sched-ir.c: Include emit-rtl.h.
26117         * ira-build.c: Include emit-rtl.h.
26118         * emit-rtl.c (first_insn, last_insn): Remove defines.
26119         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26120         Move to emit-rtl.h.
26121         (set_new_first_and_last_insn, get_last_insn_anywhere,
26122         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26123         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26124         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26125         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26126         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26127         Use accessor functions.
26128         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26129          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26130         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26131         mem_expr_equal_p): Move here from rtl.h.
26132         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26133         Move here from emit-rtl.c; make inline.
26134         * cfglayout.h: Include emit-rtl.h.
26135         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26136          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26137         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26138         mem_expr_equal_p, get_insns, set_first-insn,
26139         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26140         * reg-stack.c: Include emit-rtl.h.
26141         * dce.c: Likewise.
26142
26143 2010-06-01  Jan Hubicka  <jh@suse.cz>
26144
26145         * cgraph.h (tree_function_versioning): Update prototype.
26146         (cgraph_function_versioning): Update prototype.
26147         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26148         bitmap.
26149         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26150         (cgraph_materialize_clone, save_inline_function_body): Update use of
26151         tree_function_versioning.
26152         * tree-inline.c (copy_bb): Look for previous copied block to link
26153         after; fix debug output.
26154         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26155         (copy_body): Likewise.
26156         (expand_call_inline): Update use of copy_body.
26157         (tree_function_versioning): Update use of copy body; accept
26158         blocks_to_copy and new_entry.
26159
26160 2010-06-01  Jan Hubicka  <jh@suse.cz>
26161
26162         * gegenrtl.c: Remove unnecesary prototypes.
26163         (gendecl): Remove.
26164         (gendef): Produce static inline.
26165         (gencode): Remove.
26166         (main): Do not decode parameters; generate header only.
26167         * Makefile.in (genrtl.c): Remove.
26168
26169 2010-06-01  Jan Hubicka  <jh@suse.cz>
26170
26171         * tree-switch-conversion.c (build_one_array): Make it readonly.
26172
26173 2010-06-01  Richard Guenther  <rguenther@suse.de>
26174
26175         * optabs.c (init_optabs): Guard all accesses to reinit.
26176         * ipa-pure-const.c (propagate): Fix another typo.
26177         * opts.c (common_handle_option): Split assignment to bool.
26178         * c-opts.c (c_common_handle_option): Likewise.
26179
26180 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26181             Matthew Gingell  <gingell@adacore.com>
26182
26183         * doc/invoke.texi: Mention -fdump-ada-spec.
26184         * tree-dump.c (dump_files): Add ada-spec.
26185         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26186         * tree-pass.h (tree_dump_index): Add TDI_ada.
26187         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26188         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26189         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26190         * c-decl.c: Include c-ada-spec.h.
26191         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26192         functions.
26193         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26194         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26195         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26196         * c-ada-spec.h, c-ada-spec.c: New files.
26197
26198 2010-06-01  Richard Guenther  <rguenther@suse.de>
26199
26200         PR lto/43853
26201         * ipa-pure-const.c (get_function_state): Hand back varying state
26202         if we do not have one.
26203         (has_function_state): New function.
26204         (duplicate_node_data): Adjust.
26205         (remove_node_data): Likewise.
26206         (pure_const_write_summary): Likewise.
26207         (propagate): Likewise.  Fix typo.
26208
26209 2010-06-01  Jan Hubicka  <jh@suse.cz>
26210
26211         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26212         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26213         (execute_all_ipa_transforms): Do not play with the states.
26214
26215 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26216
26217         * config/arm/t-linux-androideabi: New.
26218         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26219
26220 2010-06-01  Jan Hubicka  <jh@suse.cz>
26221
26222         * tree-inline.c (estimate_num_insns): For stdarg functions look
26223         into call statement to count cost of argument passing.
26224
26225 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26226
26227         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26228         argument for fprintf.
26229         (ix86_output_addr_diff_elt): Likewise.
26230         (x86_function_profiler): Likewise.
26231         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26232         (LPREFIX): Likewise.
26233         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26234
26235 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26236
26237         PR target/44338
26238         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26239         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26240         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26241         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26242         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26243         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26244         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26245         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26246         TARGET_FUSED_MADD.
26247
26248 2010-05-31  Jan Hubicka  <jh@suse.cz>
26249
26250         * tree.h (tree_range_check_failed): Declare noreturn.
26251
26252 2010-05-31  Jan Hubicka  <jh@suse.cz>
26253
26254         * gimple.c (gimple_call_builtin_p): New function.
26255         * gimple.h (gimple_call_builtin_p): Declare.
26256         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26257         to exit.
26258         (execute_warn_function_return): BUILT_IN_RETURN is return.
26259         (split_critical_edges): Return edges are not critical.
26260         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26261         (gimple_verify_flow_info): Handle built_in_return.
26262         (execute_warn_function_return): Handle built_in_return.
26263         * ipa-pure-const.c (check_call): Ignore builtin_return.
26264
26265 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26266
26267         PR middle-end/44337
26268         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26269         array accesses with non-MEM.
26270
26271         PR tree-optimization/44182
26272         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26273         newly needs to end a bb is followed by debug stmts, instead return
26274         true from the function at the end.
26275         (maybe_move_debug_stmts_to_successors): New function.
26276         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26277
26278 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26279
26280         PR target/44161
26281         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26282
26283 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26284
26285         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26286         for nested functions in non-optimized compilation.
26287
26288 2010-05-31  Richard Guenther  <rguenther@suse.de>
26289
26290         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26291
26292 2010-05-30  Jan Hubicka  <jh@suse.cz>
26293
26294         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26295
26296 2010-05-30  Richard Guenther  <rguenther@suse.de>
26297
26298         PR lto/42975
26299         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26300         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26301         no longer needed.
26302
26303 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26304
26305         * config/darwin.c (output_objc_section_asm_op): Add comment.
26306         (name_needs_quotes): Add '_' to list of valid comment chars.
26307         (machopic_output_function_base_name): Remove unneeded quotes.
26308         (darwin_encode_section_info): Adjust asm whitespace.
26309         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26310         (ASM_OUTPUT_LOCAL): Ditto.
26311         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26312         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26313         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26314
26315 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26316
26317         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26318         RS6000_OUTPUT_BASENAME unconditionally.
26319         (rs6000_output_function_epilogue): Likewise.
26320
26321 2010-05-30  Jan Hubicka  <jh@suse.cz>
26322
26323         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26324         nodes.
26325
26326 2010-05-30  Richard Guenther  <rguenther@suse.de>
26327
26328         * tree-cfg.c (verify_gimple_assign_single): Implement
26329         verification for COND_EXPR rhs.
26330
26331 2010-05-30  Jan Hubicka  <jh@suse.cz>
26332
26333         * cgraph.h (cgraph_dump_file): Declare.
26334         * cgraphunit.c (cgraph_dump_file): Export.
26335         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26336
26337 2010-05-30  Jan Hubicka  <jh@suse.cz>
26338
26339         * dwarf2out.c (reference_to_unused,
26340         premark_types_used_by_global_vars_helper): Avoid creation of new
26341         varpool nodes.
26342
26343 2010-05-30  Jan Hubicka  <jh@suse.cz>
26344
26345         * cgraph.h (cgraph_node_cannot_return,
26346         cgraph_edge_cannot_lead_to_return): New functions.
26347         * cgraph.c (cgraph_node_cannot_return,
26348         cgraph_edge_cannot_lead_to_return): Use them.
26349         * ipa-pure-const.c (pure_const_names): New static var.
26350         (check_call): Handle calls not leading to return.
26351         (pure_const_read_summary): Dump info read.
26352         (propagate): Dump info about propagation process; ignore side effects
26353         of functions not leading to exit; fix handling of pure functions.
26354
26355 2010-05-30  Jan Hubicka  <jh@suse.cz>
26356
26357         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26358         for tail call epilogues.
26359
26360 2010-05-30  Jan Hubicka  <jh@suse.cz>
26361
26362         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26363         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26364         dump files.
26365
26366 2010-05-29  Jan Hubicka  <jh@suse.cz>
26367
26368         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26369         node; remove references in node we no longer keep in cgrpah but need
26370         body of.
26371
26372 2010-05-29  Jan Hubicka  <jh@suse.cz>
26373
26374         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26375
26376 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26377
26378         PR target/44165
26379         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26380
26381 2010-05-29  Jan Hubicka  <jh@suse.cz>
26382
26383         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26384         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26385         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26386         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26387         debug_names_replaced_by, debug_update_ssa): Likewise.
26388         * sbitmap.c (debug_sbitmap): Likewise.
26389         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26390         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26391         debug_tree_chain): Likewise.
26392         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26393         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26394         * optabs.c (debug_optab_libfuncs): Likewise.
26395         (verify_loop_closed_ssa): Likewise.
26396         * value-prof.c (verify_histograms): Likewise.
26397         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26398         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26399         * cfghooks.c (verify_flow_info): Likewise.
26400         * fold-const.c (debug_fold_checksum): Likewise.
26401         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26402         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26403         Likewise.
26404         * omega.c (debug_omega_problem): Likewise.
26405         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26406         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26407         * dominance.c (verify_dominators, debug_dominance_info,
26408         debug_dominance_tree): Likewise.
26409         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26410         * df_regno_debug, df_ref_debug,
26411         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26412         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26413         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26414         * sel-sched.c (debug_state): Likewise.
26415         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26416         Likewise.
26417         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26418         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26419         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26420         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26421         Likewise.
26422         * c-pretty-print.c (debug_c_tree): Likewise.
26423         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26424         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26425         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26426         * ebitmap.c (debug_ebitmap): Likewise.
26427         * function.c (debug_find_var_in_block_tree): Likewise.
26428         * print-rtl.c (debug_rtx): Likewise.
26429         (debug_rtx_count): Likewise.
26430         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26431         * stor-layout.c (debug_rli): Likewise.
26432         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26433         * tree-data-ref.c (debug_data_references,
26434         debug_data_dependence_relations, debug_data_reference,
26435         debug_data_dependence_relation, debug_rdg_vertex,
26436         debug_rdg_component, debug_rdg): Likewise.
26437         * tree-affine.c (debug_aff): Likewise.
26438         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26439         Likewise.
26440         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26441         * emit-rtl.c (verify_rtl_sharing): Likewise.
26442         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26443         debug_value_expressions): Likewise.
26444         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26445         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26446         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26447         * cfglayout.c (verify_insn_chain): Likewise.
26448         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26449         debug_clast_stmt, debug_generated_program): Likewise.
26450         * ggc-page.c (debug_print_page_list): Likewise.
26451         * tree-ssa-ter.c (debug_ter): Likewise.
26452         * graphite-dependences.c (debug_pddr): Likewise.
26453         * sched-deps.c (debug_ds): Likewise.
26454         * tree-ssa.c (verify_ssa): Likewise.
26455         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26456         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26457         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26458         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26459         * tree-inline.c (debug_find_tree): Likewise.
26460         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26461         debug_ppl_powerset_matrix): Likewise.
26462         * var-tracking.c (debug_dv): Likewise.
26463         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26464         * cfgloop.c (verify_loop_structure): Likewise.
26465         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26466         * c-common.c (verify_sequence_points): Likewise.
26467         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26468         debug_candidates, debug_rgn_dependencies): Likewise.
26469         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26470         * debug_constraint_graph, debug_solution_for_var,
26471         debug_sa_points_to_info): Likewise.
26472         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26473         Likewie.
26474         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26475         debug_loops, debug_loop, debug_loop_num): Likewise.
26476         * passes.c (debug_pass): Likewise.
26477         (dump_properties): Likewise; add cfglayout property.
26478         (debug_properties): Likewise.
26479         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26480         * varpool.c (debug_varpool): Likewise.
26481         * regcprop.c (debug_value_data): Likewise.
26482         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26483         debug_immediate_uses_for): Likewise.
26484
26485 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26486
26487         PR bootstrap/44315
26488         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26489         Filter out insn-flags.h.
26490
26491 2010-05-29  Jan Hubicka  <jh@suse.cz>
26492
26493         * cgraph.h (struct varpool_node_set_def,
26494         struct cgraph_node_set_def): Remove unused AUX pointer.
26495         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26496         VEC_empty macro.
26497
26498 2010-05-29  Jan Hubicka  <jh@suse.cz>
26499
26500         PR middle-end/44324
26501         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26502
26503 2010-05-29  Richard Guenther  <rguenther@suse.de>
26504
26505         * lto-streamer.c (cached_bp): New global variable.
26506         (bitpack_create): Return the cached bitpack, if available.
26507         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26508         (bp_pack_value): Remove redundant asserts.
26509
26510 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26511
26512         PR middle-end/44306
26513         * tree-if-conv.c (is_true_predicate): New.
26514         (is_predicated): Use is_true_predicate.
26515         (add_to_predicate_list): Same.  Do not use unshare_expr.
26516         (add_to_dst_predicate_list): Same.
26517
26518 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26519
26520         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26521         field on edges.
26522         (predicate_bbs): Same.
26523         (clean_predicate_lists): Same.
26524         (find_phi_replacement_condition): Do not AND the predicate from
26525         edge->aux.
26526
26527 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26528
26529         PR bootstrap/44315
26530         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26531
26532 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26533
26534         PR target/44261
26535         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26536         (negdf2): Adjust expander pattern and use negdf2_slow.
26537         (negsf2): Likewise.
26538
26539 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26540
26541         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26542         up.
26543         * df.h (struct df_base_ref): Move regno field up.
26544         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26545         * expr.h (struct separate_ops): Move location field up.
26546         * optabs.h (struct optab_d): Move libcall_basename field down.
26547         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26548         * config/i386/i386.h (struct machine_function): Convert call_abi field
26549         into a bitfield.  Move cfa field to the end of the structure.
26550
26551 2010-05-29  Jan Hubicka  <jh@suse.cz>
26552
26553         * varpool.c (varpool_get_node): Fix lookup.
26554
26555 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26556
26557         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26558         RTL specific prototypes with #ifdef RTX_CODE.
26559         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26560         * config/spu/t-spu-elf: Fix dependencies.
26561
26562         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26563
26564 2010-05-29  Mike Stump  <mikestump@comcast.net>
26565
26566         PR bootstrap/44315
26567         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26568         TM_H when building to avoid dependency loops.
26569
26570 2010-05-29  Jan Hubicka  <jh@suse.cz>
26571
26572         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26573         refs and body; not the whole node for masters of materialized clones.
26574
26575 2010-05-29  Mike Stump  <mikestump@comcast.net>
26576
26577         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26578
26579 2010-05-29  Jan Hubicka  <jh@suse.cz>
26580
26581         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26582         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26583         use of clone_function_name.
26584         * cgraph.h (cgraph_create_virtual_clone,
26585         cgraph_function_versioning): update prototypes.
26586         (clone_function_name): Declare.
26587         * ipa-cp.c (ipcp_insert_stage): Update call of
26588         cgraph_create_virtual_clone.
26589         * omp-low.c (create_omp_child_function_name): Use
26590         cgraph_create_virtual_clone.
26591         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26592         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26593         and make decl local.
26594
26595 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26596
26597         * vec.h: Include statistics.h
26598         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26599         with VEC_H.
26600
26601 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26602
26603         * c-lex.c: Do not include c-tree.h.
26604         * c-pretty-print.c: Likewise.
26605         * c-opts.c: Likewise.
26606         * c-gimplify.c: Likewise.
26607         * c-common.c: Likewise.
26608         * c-dump.c: Likewise.  Include c-common.h.
26609
26610 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26611
26612         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26613         before including diagnostic-core.h.
26614         (c_cpp_error): New prototype moved from c-tree.h.
26615         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26616         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26617         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26618         (c_cpp_error): Prototype moved to c-common.h.
26619         * Makefile.in: Update dependency for C_COMMON_H.
26620
26621 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26622
26623         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26624         * c-common.c (c_register_addr_space): Remove here.
26625         * c-decl.c (c_register_addr_space): Re-add here.
26626
26627 2010-05-28  Mike Stump  <mikestump@comcast.net>
26628
26629         * config/darwin-c.c: Remove c-tree.h include.
26630
26631 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26632
26633         * gcc.c: Include diagnostic.h.
26634         (error_count): Remove.  All users changed to use errorcount.
26635         (programname): Remove.  All users changed to use progname.
26636         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26637         fnotice): Remove.
26638         (execute): Don't include "Internal error" and bug reporting
26639         information in argument of internal_error call.
26640         (process_command): Don't increment error_count after calling
26641         perror_with_name.
26642         (input_filename): Rename to gcc_input_filename.  All users
26643         changed.
26644         (main): Call diagnostic_initialize.  Register delete_temp_files
26645         with atexit.  Use seen_error to test for errors.
26646         * gcc.h: Include diagnostic-core.h.
26647         (fatal_error, error, warning): Remove.
26648         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26649         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26650         (gcc.o): Update dependencies.
26651
26652 2010-05-28  Jeff Law  <law@redhat.com>
26653
26654         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26655         functions.
26656         * ira.h (ira_bad_reload_regno): Declare
26657         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26658
26659         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26660         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26661         (allocno_reload_assign): Likewise.
26662
26663 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26664
26665         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26666         build1_stat.
26667
26668 2010-05-28  Richard Guenther  <rguenther@suse.de>
26669
26670         PR lto/44312
26671         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26672         Stream fixed-point constants mode.
26673         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26674         and TYPE_PRECISION.
26675         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26676         Stream fixed-point constants mode.
26677         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26678         and TYPE_PRECISION.
26679
26680 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26681
26682         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26683         only place it was called from.
26684         (number_of_latch_executions): Do not return chrec_dont_know when the
26685         may_be_zero is a runtime condition: instead, return a COND_EXPR
26686         including the may_be_zero condition.
26687         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26688         of nb_iterations.
26689         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26690         COND_EXPRs.
26691
26692 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26693
26694         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26695         generate COND_EXPRs for degenerate_phi_result.
26696
26697 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26698
26699         PR middle-end/44293
26700         * tree-if-conv.c (if_convertible_loop_p): Check the
26701         if-convertibility of phi nodes in non predicated BBs.
26702
26703 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26704
26705         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26706
26707 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26708
26709         PR driver/15303
26710         * gcc.c (inform, warning, inform): New functions.
26711         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26712         gmsgid.  All callers changed.
26713         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26714         (fatal_error): Rename to fatal_signal.  All users changed.
26715         (fatal): Rename to fatal_error; change cmsgid parameter to
26716         gmsgid.  All callers changed.
26717         (process_command): Use warning instead of error for warnings.
26718         (end_going_arg): Don't use _() around argument of error.
26719         (do_spec_1): Use inform for message from %n specs.  Use warning
26720         instead of error for warnings.
26721         (main): Use inform for comparison messages.  Use warning for
26722         message about unused linker input.
26723         (error): Increment error_count.  Print "error: ".
26724         * gcc.h (fatal): Change to fatal_error.
26725         (warning): Declare.
26726         * config/darwin-driver.c (darwin_default_min_version): Use warning
26727         instead of fprintf for warnings.
26728         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26729
26730 2010-05-28  Julian Brown  <julian@codesourcery.com>
26731
26732         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26733         (*thumb2_addsi3_compare0_scratch): New.
26734         * config/arm/constraints.md (Pv): New.
26735         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26736         for ARM mode only.
26737         (*addsi3_compare0_scratch): Likewise.
26738
26739 2010-05-28  Jan Hubicka  <jh@suse.cz>
26740
26741         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26742         check.
26743         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26744         only on local statics.
26745
26746 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26747
26748         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26749
26750 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26751
26752         PR bootstrap/44314
26753         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26754         (OPTION_GLIBC): Define.
26755
26756 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26757
26758         PR debug/41048
26759         * dwarf2out.c (double_int_type_size_in_bits): New function.
26760         (round_up_to_align): Change first argument and return value to
26761         double_int.
26762         (field_byte_offset): Work internally on double_ints.
26763
26764         PR target/43636
26765         * builtins.c (expand_movstr): Use a temporary pseudo instead
26766         of target even when target is not NULL and not const0_rtx, but
26767         fails movstr predicate.
26768         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26769
26770 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26771
26772         * final.c (rest_of_clean_state): Use %m in errors instead of
26773         strerror (errno).
26774         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26775         instead of strerror.
26776         * toplev.c (process_options): Use %m in errors instead of strerror
26777         (errno).
26778         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26779         (errno).
26780
26781 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26782
26783         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26784         (ix86_canonical_va_list_type): Make static.  Add declaration.
26785         (ix86_enum_va_list): Make static.  Reindent.
26786         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26787         (ix86_canonical_va_list_type): Ditto.
26788         (ix86_enum_va_list): Ditto.
26789
26790 2010-05-28  Richard Guenther  <rguenther@suse.de>
26791
26792         * lto-wrapper.c (run_gcc): With -save-temps generate a
26793         user-visible ltrans filename.  Fixup ltrans unit numbering.
26794
26795 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26796
26797         * c-common.c (c_common_nodes_and_builtins): Replace use
26798         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26799         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26800         to ix86_enum_va_list.
26801         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26802         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26803         (TARGET_ENUM_VA_LIST_P): Add hook description.
26804         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26805         * target.h (gcc_target): Add enum_va_list hook.
26806
26807         PR bootstrap/44299
26808         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26809         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26810         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26811
26812 2010-05-28  Alan Modra  <amodra@gmail.com>
26813
26814         PR target/44266
26815         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26816         emit_library_call machinery to set up __tls_get_addr calls.
26817
26818 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26819
26820         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26821
26822 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26823
26824         Revert fix for PR c++/44188
26825         * c-common.c (is_typedef_decl): Revert the moving of  this
26826         definition ...
26827         * tree.c (is_typedef_decl): ... here.
26828         (typdef_variant_p): Revert the moving of this  definition
26829         here from cp/tree.c.
26830         * c-common.h (is_typedef_decl): Revert the moving of this
26831         declaration ...
26832         * tree.h (is_typedef_decl): ... here.
26833         (typedef_variant_p): Revert the moving of this  declaration here
26834         from cp/cp-tree.h
26835         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26836         (gen_tagged_type_die): Revert the splitting out of ...
26837         (gen_type_die_with_usage): ... this function. Revert the anonymous
26838         tagged type handling.
26839         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26840         typedefs naming anonymous tagged types.
26841
26842 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26843
26844         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26845
26846 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26847
26848         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26849         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26850         throughout.
26851         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26852         "xer" to "ca".
26853         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26854         XER_REGS to CA_REGS throughout.
26855         * config/rs6000/rs6000.h: Same.
26856         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26857         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26858         that mode_iterator "P" is the size for arithmetic carries as well.
26859         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26860
26861 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26862
26863         PR bootstrap/44255
26864         * combine.c (struct rtx_subst_pair): Define unconditionally.
26865         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26866         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26867         Call make_compound_operation on pair->to.
26868         (propagate_for_debug): Don't call make_compound_operation here.
26869         Always use simplify_replace_fn_rtx.
26870
26871 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26872
26873         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26874         * config/xtensa/xtensa.c (override_options): Check
26875           TARGET_FORCE_NO_PIC and set flag_pic.
26876         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26877
26878 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26879
26880         PR bootstrap/44299
26881         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26882         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26883
26884 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26885
26886         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26887         toplev.h.
26888         * diagnostic.c: Don't include toplev.h.
26889         (progname): Define.  Moved from toplev.c.
26890         (seen_error): New function.
26891         * diagnostic.h: Include diagnostic-core.h.
26892         (diagnostic_t, emit_diagnostic): Don't declare here.
26893         * toplev.c (progname): Move to toplev.c.
26894         (emit_debug_global_declarations, compile_file, finalize,
26895         do_compile, toplev_main): Use seen_error.
26896         * toplev.h: Include diagnostic-core.h.
26897         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26898         internal_error, warning, warning_at, error, error_n, error_at,
26899         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26900         verbatim, fnotice, progname): Move to diagnostic-core.h.
26901         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26902         (expand_builtin_expect): Use seen_error.
26903         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26904         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26905         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26906         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26907         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26908         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26909         errorcount for errors.
26910         * c-opts.c (c_common_finish): Use seen_error.
26911         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26912         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26913         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26914         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26915         (get_coverage_counts): Use seen_error.
26916         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26917         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26918         gimplify_body): Use seen_error.
26919         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26920         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26921         * ipa-reference.c (gate_reference): Use seen_error.
26922         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26923         * lambda-code.c: Include diagnostic-core.h instead of
26924         diagnostic.h.
26925         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26926         * lto-compress.c: Include diagnostic-core.h instead of
26927         diagnostic.h.
26928         * lto-section-in.c: Include diagnostic-core.h instead of
26929         diagnostic.h.
26930         * lto-streamer-out.c: Include diagnostic-core.h instead of
26931         diagnostic.h.
26932         * lto-streamer.c: Include diagnostic-core.h instead of
26933         diagnostic.h.
26934         (gate_lto_out): Use seen_error.
26935         * matrix-reorg.c: Include diagnostic-core.h instead of
26936         diagnostic.h.
26937         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26938         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26939         (gate_expand_omp, lower_omp_1): Use seen_error.
26940         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26941         (rest_of_decl_compilation, rest_of_type_compilation,
26942         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26943         * tree-cfg.c (label_to_block_fn): Use seen_error.
26944         * tree-inline.c (optimize_inline_calls): Use seen_error.
26945         * tree-mudflap.c (mudflap_finish_file): Use
26946         seen_error.
26947         * tree-optimize.c (gate_all_optimizations,
26948         gate_all_early_local_passes, gate_all_early_optimizations): Use
26949         seen_error.
26950         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26951         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26952         (varpool_remove_unreferenced_decls,
26953         varpool_assemble_pending_decls): Use seen_error.
26954         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26955         (TOPLEV_H, DIAGNOSTIC_H): Update.
26956         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26957         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26958         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26959         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26960         coverage.o, lambda-code.o): Update dependencies.
26961
26962 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26963
26964         PR c++/44188
26965         * c-common.c (is_typedef_decl): Move this definition ...
26966         * tree.c (is_typedef_decl): ... here.
26967         (typdef_variant_p): Move definition here from cp/tree.c.
26968         * c-common.h (is_typedef_decl): Move this declaration ...
26969         * tree.h (is_typedef_decl): ... here.
26970         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26971         * dwarf2out.c (is_naming_typedef_decl): New function.
26972         (gen_tagged_type_die): Split out of ...
26973         (gen_type_die_with_usage): ... this function. When an anonymous
26974         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26975         is emitted for the typedef.
26976         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26977         anonymous tagged types.
26978
26979 2010-05-27  Jason Merrill  <jason@redhat.com>
26980
26981         * print-tree.c (debug_vec_tree): New fn.
26982         (print_vec_tree): New fn.
26983         * tree.h: Declare them.
26984         * gdbinit.in (pvt): New command.
26985
26986         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
26987
26988         * gdbinit.in (pdd): New command.
26989
26990 2010-05-27  Jan Hubicka  <jh@suse.cz>
26991
26992         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
26993         (update_caller_keys): Return early if there are no callers;
26994         only update fibheap when decresing the key.
26995         (update_callee_keys): Avoid recursion.
26996         (decide_inlining_of_small_functions): When badness does not match;
26997         re-insert into fibheap.
26998
26999 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27000
27001         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27002         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27003         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27004         (ALL_HOST_OBJS): Now a union of the above two.
27005         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27006         all files in ALL_HOST_FRONTEND_OBJS.
27007         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27008
27009         * c-common.c: Pretend to be a backend file by undefining
27010         IN_GCC_FRONTEND (still need rtl.h here).
27011
27012 2010-05-27  Jan Hubicka  <jh@suse.cz>
27013
27014         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27015         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27016
27017 2010-05-27  Jan Hubicka  <jh@suse.cz>
27018
27019         * sched-ebb.c: Rename struct deps to struct deps_desc.
27020         * ddg.c: Likewise.
27021         * sel-sched-ir.c: Likewise.
27022         * sched-deps.c: Likewise.
27023         * sched-int.h: Likewise.
27024         * sched-rgn.c: Likewise.
27025
27026 2010-05-27  Jon Beniston  <jon@beniston.com>
27027
27028         PR 43726
27029         * config/lm32/lm32.h: Remove definition of
27030         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27031
27032 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27033
27034         PR lto/44230
27035         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27036
27037 2010-05-27  Richard Guenther  <rguenther@suse.de>
27038
27039         PR tree-optimization/44284
27040         * tree-vect-stmts.c (vectorizable_assignment): Handle
27041         sign-changing conversions as simple copy.
27042
27043 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27044
27045         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27046         Bionic C library.
27047         (__gthread_active_p): Check for pthread_create if compiling against
27048         Bionic C library.
27049
27050 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27051
27052         Support compilation for Android platform.  Reimplement -mandroid.
27053
27054         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27055         (*android*): Set ANDROID_DEFAULT.
27056         (arm*-*-linux*): Include linux-android.h.
27057         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27058         * config/arm/eabi.h: Remove, move Android-specific parts ...
27059         * config/linux-android.h: ... here.  New file.
27060         * config/arm/eabi.opt: Rename to ...
27061         * config/linux-android.opt: ... this.
27062         (mandroid): Allow -mno-android option.  Initialize based on
27063         ANDROID_DEFAULT.
27064         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27065         Move logic to corresponding LINUX_TARGET_* macros.
27066         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27067         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27068         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27069         Android definitions.
27070         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27071         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27072         Document.
27073
27074 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27075
27076         Add support for Bionic C library
27077
27078         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27079         macro.
27080         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27081         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27082
27083         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27084         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27085         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27086         to support multiple C libraries.  Handle Bionic.
27087         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27088         (BIONIC_DYNAMIC_LINKER64): Define.
27089         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27090         Update.
27091         (TARGET_HAS_SINCOS): Enable for Bionic.
27092
27093         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27094         the last option specified on command line take effect.
27095         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27096         (mbionic): New.
27097         (mglibc, muclibc): Update.
27098
27099         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27100         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27101         DEFAULT_LIBC.
27102
27103         * doc/invoke.texi (-mglibc, -muclibc): Update.
27104         (-mbionic): Document.
27105
27106 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27107
27108         * c-common.h (c_register_addr_space): Add prototype.
27109         (ADDR_SPACE_KEYWORD): Remove.
27110         * c-common.c (c_register_addr_space): New function.
27111         (c_addr_space_name): Reimplement.
27112         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27113
27114         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27115         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27116
27117         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27118         Remove TARGET_ADDR_SPACE_KEYWORDS.
27119
27120 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27121
27122         * input.c: New file.
27123         * input.h (main_input_filename): Move declaration to toplev.h.
27124         * toplev.c (input_location, line_table): Move to input.c
27125         * toplev.h (main_input_filename): Move declaration from input.h.
27126         * tree.c (expand_location): Move to input.c.
27127         * Makefile.in (OBJS-common): Add input.o.
27128         (input.o): Add dependencies.
27129
27130 2010-05-27  Richard Guenther  <rguenther@suse.de>
27131
27132         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27133         for non-existant files.
27134         (fork_execute): Mark args_name file as deleted.
27135
27136 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27137
27138         PR bootstrp/44287
27139         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27140         (narrow_signed_type): Likewise.
27141
27142 2010-05-26  Jan Hubicka  <jh@suse.cz>
27143
27144         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27145         edge only when checking is enabled; check using former_clone_of;
27146         check inline clones too.
27147         (cgraph_materialize_clone): Record former_clone_of pointer.
27148         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27149         combining redirections; dump args_to_skip bitmap
27150         (cgraph_materialize_all_clones): Do no redirection here.
27151         * ipa-inline.c (inline_transform): Do redirection here.
27152         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27153         cheking only).
27154
27155 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27156
27157         * config/avr/avr-c.c: Do not include regs.h.
27158         Include cpplib.h for cpp_define and tree.h for c-common.h.
27159         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27160         * config/avr/t-avr: Fix dependencies for avr-c.o.
27161
27162 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27163
27164         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27165         string instead of SYMBOL_REF rtx.
27166         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27167         * libfuncs.h: ...to here.  Adjust for explow.c change.
27168
27169 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27170
27171         * pretty-print.c: Don't include ggc.h.
27172         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27173         (identifier_to_locale): Use them for allocation.
27174         * pretty-print.h (identifier_to_locale_alloc,
27175         identifier_to_locale_free): Declare.
27176         * toplev.c (alloc_for_identifier_to_locale): New.
27177         (general_init): Set identifier_to_locale_alloc and
27178         identifier_to_locale_free.
27179         * Makefile.in (pretty-print.o): Update dependencies.
27180
27181 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27182
27183         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27184         pointer types if they have different alignment or mode.
27185
27186 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27187
27188         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27189         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27190         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27191         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27192         sparc_function_value_regno_p): New functions.
27193         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27194         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27195         (function_value): Rename to...
27196         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27197         argument to 'outgoing'.
27198         (function_arg_record_value, function_arg_union_value,
27199         function_arg_vector_value): Update comment.
27200
27201 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27202
27203         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27204         (fde_needed_for_eh_p): New predicate.
27205         (output_call_frame_info): Use it throughout to decide whether FDEs
27206         are needed for EH purpose.
27207         (dwarf2out_begin_prologue): Reorder assignments.
27208
27209 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27210
27211         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27212         special case loop->header.
27213         (is_predicated): New.
27214         (if_convertible_loop_p): Call it.
27215
27216 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27217
27218         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27219         iterator in parameter.  Do not generate code during the analysis.
27220         (tree_if_convert_cond_stmt): Removed.
27221         (tree_if_convert_stmt): Removed.
27222         (predicate_bbs): New.
27223         (if_convertible_loop_p): Call predicate_bbs.
27224         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27225         now contains all the analysis part.
27226
27227 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27228
27229         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27230         statements in the analysis part.
27231         (tree_if_convert_stmt): Update comment.
27232         (remove_conditions_and_labels): New.
27233         (combine_blocks): Call remove_conditions_and_labels.
27234         (tree_if_conversion): Update comment.
27235
27236 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27237
27238         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27239         than 2 predecessors or more than 2 successors.
27240
27241 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27242
27243         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27244         of loops in which the data dependence analysis fails.
27245
27246 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27247
27248         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27249         CDI_POST_DOMINATORS.
27250         (tree_if_conversion): Same.
27251
27252 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27253
27254         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27255
27256 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27257
27258         * tree-if-conv.c: Update copyright years.  Fix comments.
27259         Fix indentation.
27260
27261 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27262
27263         * builtin-types.def (BT_INT128): New primitive type.
27264         (BT_UINT128): Likewise.
27265         * c-common.c (c_common_r): Add __int128 keyword.
27266         (c_common_type_for_size): Handle __int128.
27267         (c_common_type_for_mode): Likewise.
27268         (c_common_signed_or_unsigned_type): Likewise.
27269         (c_common_nodes_and_builtins): Add builtin type
27270         if target supports 128-bit integer scalar.
27271         * c-common.h (enum rid): Add RID_INT128.
27272         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27273         if target supports 128-bit integer scalar.
27274         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27275         (finish_declspecs): Likewise.
27276         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27277         (c_token_starts_declspecs): Likewise.
27278         (c_parser_declspecs): Likewise.
27279         (c_parser_attributes): Likewise.
27280         (c_parser_objc_selector): Likewise.
27281         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27282         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27283         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27284         * tree.c (make_or_reuse_type): Likewise.
27285         (make_unsigned_type): Likewise.
27286         (build_common_tree_nodes_2): Likewise.
27287         * tree.h (enum integer_type_kind): Add itk_int128 and
27288         itk_unsigned_int128.
27289         (int128_integer_type_node): New define.
27290         (int128_unsigned_type_node): New define.
27291         * doc/extend.texi: Add documentation about __int128 type.
27292
27293 2010-05-26  Richard Guenther  <rguenther@suse.de>
27294
27295         * tree-ssa-sccvn.c (copy_nary): Adjust.
27296         (copy_phis): Rename to ...
27297         (copy_phi): ... this.  Adjust.
27298         (copy_references): Rename to ...
27299         (copy_reference): ... this.  Adjust.
27300         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27301         result into the valid table.
27302
27303 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27304
27305         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27306         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27307
27308 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27309
27310         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27311
27312 2010-05-26  Richard Guenther  <rguenther@suse.de>
27313
27314         * opts.c (common_handle_option): Handle OPT_Ofast.
27315
27316 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27317
27318         * diagnostic.c: Don't include opts.h.
27319         (permissive_error_option): Define.
27320         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27321         for classify_diagnostic.  Don't use memset for
27322         classify_diagnostic.  Initialize new and recently added fields.
27323         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27324         N_OPTS.
27325         (diagnostic_report_diagnostic): Pass context parameter to
27326         diagnostic_report_warnings_p.  Use option_enabled and option_name
27327         hooks from context.
27328         (emit_diagnostic): Use permissive_error_option.
27329         (permerror): Likewise.
27330         * diagnostic.h: Don't include options.h.
27331         (struct diagnostic_context): Add n_opts, opt_permissive,
27332         inhibit_warnings, warn_system_headers, option_enabled and
27333         option_name fields.  Change classify_diagnostic to a pointer.
27334         * opts-diagnostic.h: New file.
27335         * opts.c: Include opts-diagnostic.h.
27336         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27337         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27338         (option_name): New function.
27339         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27340         (c_common_handle_option): Set global_dc->permissive for
27341         -fpermissive.
27342         * c-common.c (c_cpp_error): Save and restore
27343         global_dc->warn_system_headers, not variable warn_system_headers.
27344         * toplev.c: Include opts-diagnostic.h.
27345         (general_init): Update call to diagnostic_initialize.  Set
27346         global_dc->show_column, global_dc->option_enabled and
27347         global_dc->option_name.
27348         (process_options): Don't set global_dc fields here.
27349         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27350         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27351
27352 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27353
27354         * config/picochip/picochip.md (movsi): Split a movsi from a
27355         const after reload.
27356
27357 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27358
27359         * ggc-zone.c: Update copyright year.
27360         (poison_region): Mark memory for Valgrind as undefined before
27361         memset () call and inaccessible afterwards.
27362         (ggc_pch_total_size): Change type of i to int.
27363
27364 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27365
27366         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27367
27368 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27369
27370         * ggc-common.c: Update copyright year.
27371         (ggc_rlimit_bound): Remove prototype.  Compile only if
27372         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27373         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27374         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27375         (ggc_min_heapsize_heuristic): Likewise.
27376
27377 2010-05-26  Richard Guenther  <rguenther@suse.de>
27378
27379         PR rtl-optimization/44164
27380         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27381         no-common access-path disambiguation.
27382         (indirect_ref_may_alias_decl_p): Adjust.
27383         (indirect_refs_may_alias_p): Likewise.
27384         (refs_may_alias_p_1): Likewise.
27385
27386 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27387
27388         * c-typeck.c: Do not include expr.h.
27389
27390 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27391
27392         * rtl.h (decl_default_tls_model): Move prototype from here...
27393         * output.h: ...to here.
27394         * c-decl.c: Do not include rtl.h.
27395         * c-pragma.c: Likewise.
27396         * c-parser.c: Likewise.
27397         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27398         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27399         FIXME note for it.  Add a FIXME note for expr.h.
27400         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27401         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27402         defined.
27403
27404 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27405
27406         PR target/44199
27407         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27408         or total_size is larger than red zone size for non-V4 ABI, emit a
27409         stack_tie resp. frame_tie insn before stack pointer restore.
27410         * config/rs6000/rs6000.md (frame_tie): New insn.
27411
27412 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27413
27414         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27415         * lto-streamer-in.c (input_function): Stream it in.
27416         * lto-streamer-out.c (output_function): Stream it out.
27417         * function.c (allocate_struct_function): Set it.
27418         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27419         for flag_non_call_exceptions.
27420         * cfgbuild.c (control_flow_insn_p): Likewise.
27421         (make_edges): Likewise.
27422         * cfgexpand.c (expand_stack_alignment): Likewise.
27423         * combine.c (distribute_notes): Likewise.
27424         * cse.c (cse_extended_basic_block): Likewise.
27425         * except.c (insn_could_throw_p): Likewise.
27426         * gcse.c (simple_mem): Likewise.
27427         * ipa-pure-const.c (check_call): Likewise.
27428         (check_stmt ): Likewise.
27429         * lower-subreg.c (lower-subreg.c): Likewise.
27430         * optabs.c (emit_libcall_block): Likewise.
27431         (prepare_cmp_insn): Likewise.
27432         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27433         * postreload.c (rest_of_handle_postreload): Likewise.
27434         * reload1.c (reload_as_needed): Likewise.
27435         (emit_input_reload_insns): Likewise.
27436         (emit_output_reload_insns): Likewise.
27437         (fixup_abnormal_edges): Likewise.
27438         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27439         * store-motion.c (find_moveable_store): Likewise.
27440         * tree-eh.c (stmt_could_throw_p): Likewise.
27441         (tree_could_throw_p): Likewise.
27442         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27443         * config/arm/arm.c (arm_expand_prologue): Likewise.
27444         (thumb1_expand_prologue): Likewise.
27445         * config/rx/rx.md (cbranchsf4): Likewise.
27446         (cmpsf): Likewise.
27447         * config/s390/s390.c (s390_emit_prologue): Likewise.
27448         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27449         (inline_forbidden_into_p): New predicate.
27450         (expand_call_inline): Use it to forbid inlining.
27451         (tree_can_inline_p): Likewise.
27452
27453 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27454
27455         * config/i386/i386-c.c: Do not include rtl.h.
27456         * config/i386/t-i386: Update dependencies.
27457
27458 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27459
27460         * attribs.c: Do not include rtl.h.
27461         * Makefile.in: Update dependencies.
27462
27463 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27464
27465         * double-int.h (double_int_and): New.
27466         * combine.c (try_combine): Clean up, use double_int_* and
27467         immed_double_int_const functions.
27468
27469 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27470
27471         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27472         stderr to /dev/null instead of grep -q.
27473         * configure: Regenerate.
27474
27475 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27476
27477         * Makefile.in (EXCEPT_H): Fix typo.
27478
27479 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27480
27481         * ira-build.c (update_conflict_hard_reg_costs): New.
27482         (ira_build): Call update_conflict_hard_reg_costs.
27483
27484 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27485
27486         PR debug/41371
27487         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27488         ENABLE_CHECKING.
27489         (intersect_loc_chains): Walk the s2var's loc_chain together
27490         with s1node chain as long as the locations are equal, don't
27491         call find_loc_in_1pdv in that case.
27492
27493         PR debug/42801
27494         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27495         (copy_bind_expr): ... instead of here.
27496         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27497         if the block hasn't been remapped.
27498         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27499         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27500
27501 2010-05-25  Richard Guenther  <rguenther@suse.de>
27502
27503         PR middle-end/44069
27504         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27505         out-of-bounds array accesses.
27506
27507 2010-05-25  Richard Guenther  <rguenther@suse.de>
27508
27509         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27510         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27511         (run_gcc): Re-organize to make cleanup easier.
27512
27513 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27514
27515         * config/s390/s390.c (optimization_options): Fix and move the
27516         flag_prefetch_loop_arrays override ...
27517         (override_options): ... here.
27518
27519 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27520
27521         * diagnostic.c: Don't include plugin.h.
27522         (diagnostic_report_diagnostic): Don't handle plugins specially
27523         here.  Pass context to internal_error callback.
27524         * diagnostic.h (struct diagnostic_context): Add context parameter
27525         to internal_error callback.
27526         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27527         * plugin.h (struct diagnostic_context): Declare.
27528         (warn_if_plugins, plugins_internal_error_function): Declare.
27529         * toplev.c (general_init): Set global_dc->internal_error.
27530         * Makefile.in (diagnostic.o): Update dependencies.
27531
27532 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27533
27534         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27535         * config/rs6000/t-darwin64: New.
27536         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27537         build crt2.
27538
27539 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27540
27541         PR 44203
27542         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27543         match the original (and intended) behaviour before r159557.  This
27544         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27545         in two ways.
27546
27547 2010-05-25  Richard Guenther  <rguenther@suse.de>
27548
27549         * doc/invoke.texi: Document -Ofast.
27550         * target.h (struct gcc_target): Add handle_ofast.
27551         * target-def.h (TARGET_HANDLE_OFAST): Add.
27552         (TARGET_INITIALIZER): Adjust.
27553         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27554         * common.opt (Ofast): Add.
27555
27556 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27557
27558         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27559         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27560
27561 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27562
27563         PR target/43610
27564         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27565         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27566         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27567         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27568
27569 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27570
27571         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27572         DW_OP_minus with negated offset instead of DW_OP_plus.
27573         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27574
27575 2010-05-25  Wei Guozhi  <carrot@google.com>
27576
27577         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27578         tst instruction and a new alternative.
27579         * config/arm/constraints.md (Pu): New constraint.
27580
27581 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27582
27583         * function.c (assign_stack_local_1): Initialize variable
27584         to avoid warning when bootstrapping at -O3.
27585
27586 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27587
27588         * configure.ac (all_lang_makefiles): Remove everything related to it.
27589         * configure: Regenerate.
27590         * Makefile.in: Fix reference to ada Make-lang.in.
27591         Remove support for LANG_MAKEFILES.
27592
27593 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27594             Sandra Loosemore  <sandra@codesourcery.com>
27595
27596         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27597         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27598         description.  Add arm_neon_fp16_ok.
27599         (Add Options): Add arm_neon and arm_neon_fp16.
27600
27601 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27602
27603         * diagnostic.c: Don't include flags.h.
27604         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27605         context parameters.  Check flags in the context passed as a parameter.
27606         (diagnostic_build_prefix): Add context parameter.  Check
27607         show_column flag in context.
27608         (diagnostic_action_after_output): Check fatal_errors flag in context.
27609         (diagnostic_report_current_module): Check show_column flag in context.
27610         (default_diagnostic_starter): Update call to
27611         diagnostic_build_prefix.
27612         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27613         (emit_diagnostic): Pass context to permissive_error_kind.
27614         (permerror): Pass context to permissive_error_kind.
27615         * diagnostic.h (struct diagnostic_context): Add show_column,
27616         pedantic_errors, permissive and fatal_errors fields.
27617         (diagnostic_build_prefix): Update prototype.
27618         * langhooks.c
27619         * toplev.c (process_options): Set flags in global_dc from
27620         flag_show_column, flag_pedantic_errors, flag_permissive,
27621         flag_fatal_errors.
27622         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27623         to diagnostic_build_prefix.
27624         * Makefile.in (diagnostic.o): Update dependencies.
27625
27626 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27627
27628         * config/i386/ia32intrin.h (__crc32q): Define only if
27629         __SSE4_2__ is defined.
27630
27631 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27632
27633         PR target/44132
27634         PR middle-end/43602
27635         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27636         DECL_VISIBILITY_SPECIFIED.
27637         (emutls_decl): Set DECL_PRESERVE_P and copy
27638         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27639         (emutls_finalize_control_var): New callback.
27640         (emutls_finish): Finalize emutls control variables.
27641         * toplev.c (compile_file): Move the call to emutls_finish ()
27642         before varpool_assemble_pending_decls ().
27643
27644 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27645
27646         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27647         added to the preprocessor condition.
27648
27649 2010-05-24  Paul Brook  <paul@codesourcery.com>
27650
27651         * gengtype-lex.l: Add HARD_REG_SET.
27652         * expr.c (expand_expr_real_1): Record writes to hard registers.
27653         * function.c (rtl_data): Add asm_clobbers.
27654         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27655         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27656         Use crtl->asm_clobbers.
27657
27658 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27659
27660         * doc/makefile.texi (Makefile): Mention stages 'profile'
27661         and 'feedback' for profiledbootstrap.
27662
27663 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27664
27665         PR target/44245
27666         * config/i386/i386.c (def_builtin): Properly check
27667         OPTION_MASK_ISA_64BIT.
27668
27669 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27670
27671         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27672         typedefs with different but compatible types.  Allow duplicate
27673         typedefs with the same type except for pedantic non-C1X, but give
27674         warning for variably modified types.
27675         * c-typeck.c (tagged_types_tu_compatible_p,
27676         function_types_compatible_p, type_lists_compatible_p,
27677         comptypes_internal): Add parameter different_types_p; set
27678         *different_types_p for different but compatible types.  All
27679         callers changed.
27680         (comptypes_check_different_types): New.
27681         * c-tree.h (comptypes_check_different_types): Declare.
27682
27683 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27684
27685         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27686         * jump.c: Include basic-block.h.
27687         * profile.c: Likewise.
27688         * tree-profile.c: Likewise.
27689         * coverage.c: Likewise.
27690         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27691         (optimize_function_for_speed_p): Likewise.
27692         * function.h (optimize_function_for_size_p,
27693         optimize_function_for_speed_p): Moved here from basic-block.h.
27694         * Makefile.in: Update dependencies.
27695
27696 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27697
27698         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27699         before calling make; allow override through $MAKE.
27700         * doc/invoke.texi (Optimize Options): Document override.
27701
27702 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27703
27704         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27705         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27706         (rs6000_mode_dependent_address_ptr): Make static.
27707         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27708         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27709         Remove.
27710
27711 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27712
27713         PR target/43869
27714         * config/i386/i386.c: Make sure that the correct regparm is passed.
27715
27716 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27717
27718         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27719         * sbitmap.c: ...to here to internalize sbitmap element access.
27720         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27721         Explain why basic-block.h is included.
27722         * function.h: Include tm.h for CUMULATIVE_ARGS.
27723         * Makefile.in: Update dependencies.
27724
27725 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27726
27727         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27728         New core types.
27729         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27730         * sbitmap.c: Include sbitmap.h.
27731         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27732         hard-reg-set.h.  Split everything related to regsets out from here...
27733         * regset.h: ...to here.  New file.
27734         * df.h: Include regset.h and sbitmap.h.
27735         * tree-flow.h: Likewise.
27736         * cfgloop.h: Likewise.
27737         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27738         * cgraph.h: Include vec.h and function.h.
27739         * reload.h (struct insn_chain): Change types of live_throughout
27740         and dead_or_set from regset_head to bitmap_head.
27741         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27742         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27743         spilled_regs from regset_head to bitmap_head to avoid dependency
27744         in regset.h.
27745         * sel-sched-ir.h: Include regset.h.
27746         * reload.c: Include df.h before reload.h.
27747         * caller-save.c: Likewise.
27748         * reload1.c: Likewise.
27749         * ira.c: Likewise.
27750         (mark_elimination): Update type of r to bitmap, consistent with
27751         DF_LR_IN.
27752         * dominance.c: Include bitmap.h.
27753         * modulo-sched.c: Include df.h.
27754         * cfganal.c: Include bitmap.h and sbitmap.h.
27755         * cfgbuild.c: Include sbitmap.h.
27756         * lcm.c: Include sbitmap.h.
27757         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27758         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27759         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27760         * cselib.c: Include bitmap.h.
27761         * tree-optimize.c: Include regset.h.
27762         * stmt.c: Include bitmap.h.
27763         * Makefile.in: Update dependencies.
27764
27765 2010-05-22  Jan Hubicka  <jh@suse.cz>
27766
27767         * cgraph.h (struct varpool_node): Add same_comdat_group.
27768         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27769         pointer.
27770         (output_varpool): Update call of lto_output_varpool_node.
27771         (input_varpool): Read same_comdat_group pointer.
27772         (input_varpool_1): Fixup same_comdat_group pointer.
27773         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27774         group is needed, all are.
27775         * varpool.c (varpool_remove_node): Remove node from same comdat group
27776         linklist too.
27777         (varpool_analyze_pending_decls): Walk same comdat groups.
27778
27779 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27780
27781         * rtl.h (union rtunion_def): Remove rt_bit member.
27782         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27783         * print-rtl (print_rtx): Do not print the member.
27784         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27785         * gengenrtl.c (type_from_format): Likewise.
27786         (accessor_from_format): Likewise.
27787
27788 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27789
27790         * dbgcnt.c: Include toplev.h instead of errors.h.
27791         * ira-emit.c: Don't include errors.h.
27792         * ira.c: Include toplev.h instead of errors.h.
27793         * lto-compress.c: Include toplev.h instead of errors.h.
27794         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27795         ira.o, dbgcnt.o): Update dependencies.
27796
27797 2010-05-22  Richard Guenther  <rguenther@suse.de>
27798
27799         * gimple.c (gimple_types_compatible_p): Check type qualifications
27800         before merging pointer to complete and pointer to incomplete type.
27801         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27802         we use our own resolution algorithm.  The gold linker plugin
27803         doesn't do the job we want it to do here.
27804
27805 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27806
27807         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27808         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27809         (sparc_mode_dependent_address_p): New function.
27810
27811 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27812
27813         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27814
27815         * timevar.c: Do not include any core headers.
27816         (timevar_print): De-i18n-ize.
27817         (print_time): Likewise.
27818         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27819
27820 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27821
27822         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27823         langhooks-def.h.
27824         (diagnostic_initialize): Initialize x_data not last_function.
27825         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27826         (default_diagnostic_starter): Call
27827         diagnostic_report_current_module not
27828         diagnostic_report_current_function.
27829         (diagnostic_report_diagnostic): Initialize x_data not
27830         abstract_origin.
27831         (verbatim): Likewise.
27832         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27833         x_data.
27834         (struct diagnostic_context): Change last_function to x_data.
27835         (diagnostic_auxiliary_data): Replace with
27836         diagnostic_context_auxiliary_data and
27837         diagnostic_info_auxiliary_data.
27838         (diagnostic_last_function_changed, diagnostic_set_last_function,
27839         diagnostic_report_current_function): Move to tree-diagnostic.h.
27840         (print_declaration, dump_generic_node, print_generic_stmt,
27841         print_generic_stmt_indented, print_generic_expr,
27842         print_generic_decl, debug_c_tree, dump_omp_clauses,
27843         print_call_name, debug_generic_expr, debug_generic_stmt,
27844         debug_tree_chain, default_tree_printer): Move to
27845         tree-pretty-print.h.
27846         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27847         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27848         gimple-pretty-print.h.
27849         * pretty-print.c: Don't include tree.h
27850         (pp_base_format): Don't handle %K here.
27851         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27852         * pretty-print.h (text_info): Change abstract_origin to x_data.
27853         (pp_tree_identifier, pp_unsupported_tree,
27854         pp_base_tree_identifier): Move to tree-pretty-print.h.
27855         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27856         tree-pretty-print.h: New files.
27857         * tree-pretty-print.c: Include tree-pretty-print.h.
27858         (percent_K_format): New.  Moved from pretty-print.c.
27859         (pp_base_tree_identifier): Move from pretty-print.c.
27860         * c-objc-common.c: Include tree-pretty-print.h.
27861         (c_tree_printer): Handle %K here.
27862         * langhooks.c: Include tree-diagnostic.h.
27863         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27864         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27865         (default_tree_printer): Handle %K using percent_K_format.
27866         (general_init): Use default_tree_diagnostic_starter.
27867         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27868         (free_lang_data): Use default_tree_diagnostic_starter.
27869         * c-pretty-print.c: Include tree-pretty-print.h.
27870         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27871         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27872         * dwarf2out.c: Include tree-pretty-print.h.
27873         * except.c: Include tree-pretty-print.h.
27874         * gimple-pretty-print.c: Include tree-pretty-print.h and
27875         gimple-pretty-print.h.
27876         * gimplify.c: Include tree-pretty-print.h.
27877         * graphite-poly.c: Include tree-pretty-print.h and
27878         gimple-pretty-print.h.
27879         * ipa-cp.c: Include tree-pretty-print.h.
27880         * ipa-inline.c: Include gimple-pretty-print.h.
27881         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27882         * ipa-pure-const.c: Include gimple-pretty-print.h.
27883         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27884         gimple-pretty-print.h.
27885         * ipa-type-escape.c: Include tree-pretty-print.h.
27886         * print-rtl.c: Include tree-pretty-print.h.
27887         * print-tree.c: Include gimple-pretty-print.h.
27888         * sese.c: Include tree-pretty-print.h.
27889         * tree-affine.c: Include tree-pretty-print.h.
27890         * tree-browser.c: Include tree-pretty-print.h.
27891         * tree-call-cdce.c: Include gimple-pretty-print.h.
27892         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27893         * tree-chrec.c: Include tree-pretty-print.h.
27894         * tree-data-ref.c: Include tree-pretty-print.h and
27895         gimple-pretty-print.h.
27896         * tree-dfa.c: Include tree-pretty-print.h.
27897         * tree-if-conv.c: Include tree-pretty-print.h and
27898         gimple-pretty-print.h.
27899         * tree-inline.c: Include tree-pretty-print.h.
27900         * tree-into-ssa.c: Include tree-pretty-print.h and
27901         gimple-pretty-print.h.
27902         * tree-nrv.c: Include tree-pretty-print.h.
27903         * tree-object-size.c: Include tree-pretty-print.h and
27904         gimple-pretty-print.h.
27905         * tree-outof-ssa.c: Include tree-pretty-print.h and
27906         gimple-pretty-print.h.
27907         * tree-parloops.c: Include tree-pretty-print.h and
27908         gimple-pretty-print.h.
27909         * tree-predcom.c: Include tree-pretty-print.h and
27910         gimple-pretty-print.h.
27911         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27912         gimple-pretty-print.h.
27913         * tree-sra.c: Include tree-pretty-print.h.
27914         * tree-ssa-address.c: Include tree-pretty-print.h.
27915         * tree-ssa-alias.c: Include tree-pretty-print.h.
27916         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27917         gimple-pretty-print.h.
27918         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27919         * tree-ssa-copy.c: Include tree-pretty-print.h and
27920         gimple-pretty-print.h.
27921         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27922         * tree-ssa-dce.c: Include tree-pretty-print.h and
27923         gimple-pretty-print.h.
27924         * tree-ssa-dom.c: Include tree-pretty-print.h and
27925         gimple-pretty-print.h.
27926         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27927         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27928         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27929         * tree-ssa-live.c: Include tree-pretty-print.h and
27930         gimple-pretty-print.h.
27931         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27932         gimple-pretty-print.h.
27933         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27934         gimple-pretty-print.h.
27935         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27936         gimple-pretty-print.h.
27937         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27938         gimple-pretty-print.h.
27939         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27940         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27941         * tree-ssa-operands.c: Include tree-pretty-print.h and
27942         gimple-pretty-print.h.
27943         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27944         gimple-pretty-print.h.
27945         * tree-ssa-pre.c: Include tree-pretty-print.h and
27946         gimple-pretty-print.h.
27947         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27948         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27949         gimple-pretty-print.h.
27950         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27951         gimple-pretty-print.h.
27952         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27953         * tree-ssa-ter.c: Include tree-pretty-print.h and
27954         gimple-pretty-print.h.
27955         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27956         * tree-ssa.c: Include tree-pretty-print.h and
27957         gimple-pretty-print.h.
27958         * tree-stdarg.c: Include gimple-pretty-print.h.
27959         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27960         * tree-tailcall.c: Include tree-pretty-print.h and
27961         gimple-pretty-print.h.
27962         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27963         gimple-pretty-print.h.
27964         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27965         gimple-pretty-print.h.
27966         * tree-vect-loop.c: Include tree-pretty-print.h and
27967         gimple-pretty-print.h.
27968         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27969         * tree-vect-slp.c: Include tree-pretty-print.h and
27970         gimple-pretty-print.h.
27971         * tree-vect-stmts.c: Include tree-pretty-print.h and
27972         gimple-pretty-print.h.
27973         * tree-vectorizer.c: Include tree-pretty-print.h.
27974         * tree-vrp.c: Include tree-pretty-print.h and
27975         gimple-pretty-print.h.
27976         * value-prof.c: Include tree-pretty-print.h and
27977         gimple-pretty-print.h.
27978         * var-tracking.c: Include tree-pretty-print.h.
27979         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27980         (tree-diagnostic.o): New dependencies.
27981         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27982         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27983         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27984         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27985         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27986         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
27987         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
27988         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
27989         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
27990         tree-ssa-address.o, tree-ssa-loop-niter.o,
27991         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
27992         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
27993         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
27994         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
27995         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
27996         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
27997         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
27998         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
27999         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28000         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28001         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28002         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28003         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28004         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28005         cfgexpand.o, pretty-print.o): Update dependencies.
28006
28007 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28008
28009         * tree-ssa-structalias.c: Remove tm_p.h from include.
28010
28011 2010-05-21  Jeff Law  <law@redhat.com>
28012
28013         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28014
28015 2010-05-21  Jason Merrill  <jason@redhat.com>
28016
28017         * tree-eh.c (cleanup_is_dead_in): New.
28018         (lower_try_finally): Don't generate a dead cleanup region.
28019         (lower_cleanup): Likewise.
28020
28021 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28022
28023         PR debug/44223
28024         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28025         unchain each use from the cyclic next_regno_use chain first.
28026
28027 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28028
28029         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28030         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28031         (real_value_negate, real_value_abs): New prototypes.
28032         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28033         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28034         new include file for interface between MPFR and REAL_VALUE_TYPE.
28035         * real.c: Include realmpfr.h.
28036         (real_arithmetic2): Remove legacy function.
28037         (real_value_negate): New.
28038         (real_value_abs): New.
28039         (mfpr_from_real, real_from_mpfr): Move from here...
28040         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28041         * builtins.c: Include realmpfr.h.
28042         * fold-const.c: Include realmpfr.h.
28043         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28044         (fold_negate_const): Likewise.
28045         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28046         * toplev.c: Include realmpfr.h.
28047         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28048         and real_value_negate.
28049         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28050         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28051         (vfp3_const_double_index): Likewise.
28052         (arm_print_operand): Likewise.
28053         * Makefile.in: Update dependencies.
28054
28055 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28056
28057         * config/s390/s390.c (override_options): Increase the default
28058         of max-completely-peel-times.
28059
28060 2010-05-21  Julian Brown  <julian@codesourcery.com>
28061             Mark Mitchell  <mark@codesourcery.com>
28062
28063         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28064         sibling calls for Thumb-1.
28065         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28066         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28067         Thumb-2.
28068         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28069         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28070         for Thumb-2.
28071         (return): New expander.
28072         (*arm_return): New name for ARM return insn.
28073         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28074
28075 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28076
28077         * config.gcc (sparc64-*-rtems*): New target.
28078
28079 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28080
28081         * tree.c (build_function_decl_skip_args): Fix grammar.
28082         (build_function_type_list_1): Fix typos, adjust formatting.
28083
28084 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28085
28086         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28087         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28088         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28089         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28090         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28091         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28092         tree-pretty-print.c, tree-loop-distribution.c,
28093         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28094         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28095         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28096         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28097         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28098         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28099         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28100         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28101         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28102         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28103         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28104         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28105         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28106         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28107         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28108         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28109         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28110         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28111         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28112         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28113         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28114         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28115         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28116         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28117         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28118         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28119         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28120         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28121         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28122         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28123         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28124         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28125         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28126         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28127         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28128         config/bfin/bfin.c: Clean up redundant includes.
28129         * Makefile.in: Update accordingly.
28130
28131 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28132
28133         PR middle-end/44204
28134         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28135         statement has no arguments.
28136
28137 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28138
28139         PR/44139
28140         * varasm.c (emutls_decl): Merge attributes to new decl.
28141
28142 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28143
28144         PR middle-end/44101
28145         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28146         around the uniquized constructor if its type requires a conversion.
28147
28148 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28149
28150         PR debug/44205
28151         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28152         at -O0 goto_locus of any of the incoming edges differs from
28153         goto_locus of outgoing edge, or gimple_location of any of the
28154         labels differs.
28155
28156 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28157
28158         * ira.c (ira_non_ordered_class_hard_regs): Define.
28159         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28160         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28161         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28162         cost of unaligned hard regs when allocating multi-reg pseudos.
28163
28164 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28165
28166         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28167         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28168         for TARGET_NO_FLOAT.
28169         * config/mips/mips.c (mips_file_start): Expand conditional expression
28170         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28171         (mips_override_options): Move -mno-float override -msoft-float and
28172         -mhard-float.
28173         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28174         Condition(TARGET_SUPPORTS_NO_FLOAT).
28175         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28176         __mips_no_float here.
28177         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28178         (TARGET_SUPPORTS_NO_FLOAT): Define.
28179         * config/mips/sdemtk.opt: Delete.
28180
28181 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28182
28183         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28184
28185 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28186
28187         PR target/43733
28188         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28189         * configure: Regenerate.
28190         * config.in: Regenerate.
28191         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28192         instead of sahf only for 64bit targets.
28193
28194 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28195
28196         PR debug/44178
28197         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28198         setup_ref_regs for DEBUG_INSNs.
28199
28200 2010-05-20  Jan Hubicka  <jh@suse.cz>
28201
28202         PR middle-end/44197
28203         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28204
28205 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28206
28207         PR bootstrap/43870
28208         * df-scan.c (df_ref_compare): Stabilize sort.
28209
28210 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28211
28212         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28213         argument.  Don't use DW_OP_piece if offset is non-zero,
28214         put offset into second DW_OP_bit_piece argument.
28215         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28216         compute offset.
28217
28218 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28219
28220         PR target/44202
28221         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28222         settings for 16-bit-constant "addo" alternative.
28223
28224 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28225
28226         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28227         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28228
28229         PR target/43764
28230         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28231         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28232         Use it.
28233
28234 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28235
28236         * diagnostic.c (FLOAT, FFS): Don't undefine.
28237         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28238         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28239         include ordering.
28240
28241 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28242
28243         * combine.c (propagate_for_debug): Call make_compound_operation
28244         on the source value.
28245         (try_combine): When implementing a split chosen by find_split_point,
28246         either copy i2src or set it to null.  Assert that i2src is not null
28247         before substituting into CALL_INSN_FUNCTION_USAGE.
28248
28249 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28250
28251         * double-int.h (double_int_ior): New function.
28252         * tree.h (build_int_cst_wide_type): Remove.
28253         * tree.c (build_int_cst_wide_type): Remove.
28254         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28255         of build_int_cst_wide_type.
28256         * stor-layout.c (set_sizetype): (Ditto.).
28257         * dojump.c (do_jump): Use build_int_cstu instead of
28258         build_int_cst_wide_type.
28259
28260 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28261
28262         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28263         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28264         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28265         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28266         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28267         propagate the 'data' argument to copy_tree_r.
28268         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28269         Propagate 'data' argument to walk_tree.
28270         (copy_if_shared): New function.
28271         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28272         (unmark_visited): New function.
28273         (unshare_body): Call copy_if_shared instead of doing it manually.
28274         (unvisit_body): Call unmark_visited instead of doing it manually.
28275
28276 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28277
28278         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28279         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28280         * hooks.c: Likewise.
28281         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28282         hook_tree_tree_int_treep_bool_null.
28283         * target.h (struct gcc_target): Update signature of fold_builtin
28284         field.
28285         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28286         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28287         instead of the call expression.
28288         (fold_builtin_call_array): Pass n and argarray directly.
28289         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28290         consing a list.
28291         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28292         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28293         `i' and use it in place of `arity'.
28294         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28295         Dereference `args' directly.
28296         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28297
28298 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28299
28300         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28301         3dnow, sse3, sse2.
28302         (Directives): Document optional dg-require-effective-target
28303         selector.
28304
28305 2010-05-19  Richard Guenther  <rguenther@suse.de>
28306
28307         PR lto/44196
28308         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28309
28310 2010-05-19  Richard Guenther  <rguenther@suse.de>
28311
28312         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28313         * common.opt (fwhopr=): New.
28314         * opts.c (common_handle_option): Handle OPT_fwhopr.
28315         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28316         * collect2.c (main): Match -fwhopr*.
28317         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28318         Execute ltrans stage in parallel when jobs is bigger than 1.
28319
28320 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28321
28322         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28323         pentiumpro on Solaris 8/x86 with Sun as.
28324         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28325         hidden alias bug.
28326         (gcc_cv_as_ix86_quad): Check for .quad directive.
28327         * configure: Regenerate.
28328         * config.in: Regenerate.
28329         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28330
28331 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28332
28333         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28334         also for indirect edges.  Actual printing moved...
28335         (ipa_print_node_jump_functions_for_edge): ...here.
28336         (ipa_compute_jump_functions): Renamed to
28337         ipa_compute_jump_functions_for_edge and made static.
28338         (ipa_compute_jump_functions): New function.
28339         (make_edge_direct_to_target): Check if the number of arguments on
28340         the newly direct edge is the same as the number of parametrs of
28341         the callee.
28342         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28343         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28344         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28345         analysis functions unconditionally, call the new
28346         ipa_analyze_params_uses on the node instead of every edge.
28347
28348 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28349
28350         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28351         to tree.
28352         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28353         also checks for a constant int vs.  non-constant but
28354         loop-invariant steps.
28355         (find_or_create_group): Change the sort algorithm to only consider
28356         steps that are constant ints.
28357         (idx_analyze_ref): Adopt code to handle a tree instead of a
28358         HOST_WIDE_INT for step.
28359         (gather_memory_references_ref): Handle tree instead of int and be
28360         prepared to see a NULL_TREE.
28361         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28362         prefetches if the step cannot be calculated at compile time.
28363         (issue_prefetch_ref): Issue prefetches for non-constant but
28364         loop-invariant steps.
28365
28366 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28367
28368         Revert:
28369         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28370
28371         * tree.h (build_call_list): Remove.
28372         * tree.c (build_call_list): Remove.
28373
28374 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28375
28376         * tree.h (build_call_list): Remove.
28377         * tree.c (build_call_list): Remove.
28378
28379 2010-05-18  Jan Hubicka  <jh@suse.cz>
28380
28381         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28382
28383 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28384
28385         PR rtl-optimization/43332
28386         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28387
28388 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28389
28390         * tree.h (build_int_cstu): Implement as static inline.
28391         * tree.c (build_int_cstu): Remove function.
28392         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28393         sign extended.
28394
28395 2010-05-18  Richard Guenther  <rguenther@suse.de>
28396
28397         PR lto/44143
28398         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28399         (debug): Initialize from -save-temps.
28400         (collect_execute): Print command-line when verbose.
28401         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28402         for ltrans invocation.  Produce -dumpbase flag again.
28403         (process_args): Remove.
28404         (main): Simplify.
28405         * collect2.c (maybe_run_lto_and_relink): Only pass object
28406         files to lto-wrapper.
28407         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28408
28409 2010-05-18  Jan Hubicka  <jh@suse.cz>
28410
28411         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28412         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28413
28414 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28415
28416         PR lto/44184
28417         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28418         in a GIMPLE_ASM.
28419         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28420         in a GIMPLE_ASM.
28421
28422 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28423
28424         PR debug/41371
28425         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28426         rtx_equal_p inline.
28427
28428 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28429
28430         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28431         lto-macho as lto_binary_reader.
28432
28433         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28434         after .section directive; just print it before the directive instead.
28435
28436 2010-05-17  Jan Hubicka  <jh@suse.cz>
28437
28438         * cgraph.c (cgraph_create_virtual_clone): Only check
28439         versionable_function_p when not in wpa and checking is enabled.
28440         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28441         there are no more functions to materialize.
28442
28443 2010-05-17  Jan Hubicka  <jh@suse.cz>
28444
28445         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28446         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28447         New functions.
28448         (output_cgraph): Call output_cgraph_opt_summary.
28449         (input_cgrpah): Call input_cgraph_opt_summary.
28450         (output_cgraph_opt_summary_p, output_node_opt_summary,
28451         input_node_opt_summary, input_cgraph_opt_section): New functions.
28452         * lto-section-in.c (lto_section_name): Add cgraphopt.
28453         * tree-inline.c (tree_function_versioning): Handle parm_num.
28454         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28455         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28456
28457 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28458
28459         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28460         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28461         the insn to prefetch ratio heuristic to loops with known trip count.
28462
28463 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28464
28465         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28466         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28467         is far from what is required by the prefetch.
28468
28469 2010-05-17  Jan Hubicka  <jh@suse.cz>
28470
28471         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28472         (ipcp_estimate_growth): Likewise.
28473         (ipcp_const_param_count): Likewise.
28474         (ipcp_insert_stage): Likewise.
28475         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28476         (visit_store_addr_for_mod_analysis): Set used flag.
28477         (ipa_detect_param_modifications): Set used flag for SSE params;
28478         update use of walk_stmt_load_store_addr_ops.
28479         (ipa_print_node_params): Print used flag.
28480         (ipa_write_node_info): Stream used flag.
28481         (ipa_read_node_info): Likewise.
28482         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28483         (ipa_is_param_used): New function.
28484         (lto_ipa_fixup_call_notes): Remove unused declaration.
28485
28486 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28487
28488         PR target/44074
28489         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28490         * configure: Regenerate.
28491         * config.in: Regenerate.
28492         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28493         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28494         Don't emit whitespace.
28495         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28496         (*rep_movsi): Likewise.
28497         (*rep_movsi_rex64): Likewise.
28498         (*rep_movqi): Likewise.
28499         (*rep_movqi_rex64): Likewise.
28500         (*rep_stosdi_rex64): Likewise.
28501         (*rep_stossi): Likewise.
28502         (*rep_stossi_rex64): Likewise.
28503         (*rep_stosqi): Likewise.
28504         (*rep_stosqi_rex64): Likewise.
28505         (*cmpstrnqi_nz_1): Use {%;} after repz.
28506         (*cmpstrnqi_nz_rex_1): Likewise.
28507         (*cmpstrnqi_1): Likewise.
28508         (*cmpstrnqi_rex_1): Likewise.
28509         (*strlenqi_1): Use {%;} after repnz.
28510         (*strlenqi_rex_1): Likewise.
28511         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28512         (*sync_compare_and_swap<mode>): Likewise.
28513         (sync_double_compare_and_swap<mode>): Likewise.
28514         (*sync_double_compare_and_swapdi_pic): Likewise.
28515         (sync_old_add<mode>): Likewise.
28516         (sync_add<mode>): Likewise.
28517         (sync_sub<mode>): Likewise.
28518         (sync_<code><mode>): Likewise.
28519
28520 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28521
28522         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28523         otr_token and polymorphic.
28524         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28525         (cgraph_clone_edge): Copy the above fields.
28526         * tree.c (get_binfo_at_offset): New function.
28527         * tree.h (get_binfo_at_offset): Declare.
28528         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28529         type, reordered items, updated comments.
28530         (union jump_func_value): Added base_type field, reordered fields.
28531         (enum ipa_lattice_type): Moved down in the file.
28532         (struct ipa_param_descriptor): New field polymorphic.
28533         (ipa_is_param_polymorphic): New function.
28534         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28535         (ipa_print_node_jump_functions): Print known type jump functions.
28536         (compute_complex_pass_through): Renamed to...
28537         (compute_complex_assign_jump_func): this.
28538         (compute_complex_ancestor_jump_func): New function.
28539         (compute_known_type_jump_func): Likewise.
28540         (compute_scalar_jump_functions): Create known type and complex ancestor
28541         jump functions.
28542         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28543         flag in the call note accordingly.
28544         (ipa_analyze_call_uses): Renamed to...
28545         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28546         variable var only in the block where it is used.
28547         (ipa_analyze_virtual_call_uses): New function.
28548         (ipa_analyze_call_uses): Likewise.
28549         (combine_known_type_and_ancestor_jfs): Likewise.
28550         (update_jump_functions_after_inlining): Implemented handling of a
28551         number of new jump function types combination.
28552         (print_edge_addition_message): Removed.
28553         (make_edge_direct_to_target): New function.
28554         (try_make_edge_direct_simple_call): Likewise.
28555         (try_make_edge_direct_virtual_call): Likewise.
28556         (update_call_notes_after_inlining): Renamed to...
28557         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28558         indirect calls to try_make_edge_direct_simple_call, also calls
28559         try_make_edge_direct_virtual_call for virtual calls.
28560         (ipa_print_node_params): Changed the header message.
28561         (ipa_write_jump_function): Stream also known type jump functions.
28562         (ipa_read_jump_function): Likewise.
28563         (ipa_write_indirect_edge_info): Stream new fields in
28564         cgraph_indirect_call_info.
28565         (ipa_read_indirect_edge_info): Likewise.
28566         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28567         GIMPLE_FOLD_H.
28568
28569 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28570
28571         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28572
28573 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28574
28575         * tree.h (CALL_EXPR_ARGS): Delete.
28576         (call_expr_arglist): Delete.
28577         * tree.c (call_expr_arglist): Delete.
28578         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28579         targetm.fold_builtin.
28580         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28581         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28582         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28583         arglist parameter.  Use CALL_EXPR_ARG.
28584         (picochip_expand_builtin_3op): Likewise.
28585         (picochip_expand_builtin_2opvoid): Likewise.
28586         (picochip_expand_array_get): Likewise.
28587         (picochip_expand_array_put): Likewise.
28588         (picochip_expand_array_testport): Likewise.
28589         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28590         rather than arglist.
28591         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28592         CALL_EXPR_ARGS.
28593         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28594         than TREE_VALUE and TREE_CHAIN.
28595         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28596         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28597         the arglist.
28598
28599 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28600
28601         PR bootstrap/42347
28602         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28603         to have no fallthru edge.
28604
28605         PR middle-end/44102
28606         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28607         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28608         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28609         add BARRIER after previous bb if needed.
28610
28611 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28612
28613         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28614
28615 2010-05-17  Alan Modra  <amodra@gmail.com>
28616
28617         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28618         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28619         with copy_reg rtx param.
28620         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28621         Correct cases where code for ABI_V4 did not initialise the reg
28622         used to access frame.  Also leave frame_reg_rtx as sp for large
28623         frames that save no regs.
28624
28625 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28626
28627         PR middle-end/44133
28628         * tree-sra.c (create_access_replacement): New parameter rename, mark
28629         the replaement for renaming only when it is true.
28630         (get_access_replacement): Pass true in the rename parameter of
28631         create_access_replacement.
28632         (get_unrenamed_access_replacement): New function.
28633         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28634         replacement declaration from it.
28635
28636 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28637
28638         * function.c (try_fit_stack_local, add_frame_space): New static
28639         functions.
28640         (assign_stack_local_1): Use them.  Look for opportunities to use
28641         space previously wasted on alignment.
28642         * function.h (struct frame_space): New.
28643         (struct rtl_data): Add FRAME_SPACE_LIST member.
28644         * reload1.c (something_was_spilled): New static variable.
28645         (alter_reg): Set it.
28646         (reload): Test it in addition to testing if the frame size changed.
28647
28648 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28649
28650         * config/s390/s390.c: Define sane prefetch settings and activate
28651         flag_prefetch_loop_arrays on -O3.
28652         * config/s390/s390.h: Declare that read can use write prefetch.
28653
28654 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28655
28656         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28657         build.
28658
28659 2010-05-16  Jan Hubicka  <jh@suse.cz>
28660
28661         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28662         function body; do not check stdarg field of struct function.
28663
28664 2010-05-16  Jan Hubicka  <jh@suse.cz>
28665
28666         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28667         * cgraph.h (cgraph_local_info): Add versionable flag.
28668         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28669         (ipcp_versionable_function_p): Use it.
28670         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28671         versionable flag.
28672
28673 2010-05-16  Jan Hubicka  <jh@suse.cz>
28674
28675         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28676         clone into hash when it is different from orig.
28677         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28678         * cgraph.h (cgraph_clone_node): Update prototype.
28679         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28680         (lto_cgraph_encoder_delete): Delete body map.
28681         (lto_cgraph_encoder_size): Move to header.
28682         (lto_cgraph_encoder_encode_body_p,
28683         lto_set_cgraph_encoder_encode_body): New.
28684         (lto_output_node): Do not take written_decls argument; output clone_of
28685         pointer.
28686         (add_node_to): Add include_body_argument; call
28687         lto_set_cgraph_encoder_encode_body on master of the clone.
28688         (add_references): Update use of add_node_to.
28689         (compute_ltrans_boundary): Likewise.
28690         (output_cgraph): Do not create written_decls bitmap.
28691         (input_node): Take nodes argument; stream in clone_of correctly.
28692         (input_cgraph_1): Update use of input_node.
28693         * lto-streamer-out.c (lto_output): Use encoder info to decide
28694         what bodies to output.
28695         * ipa-inline.c (cgraph_clone_inlined_nodes,
28696         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28697         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28698         (lto_cgraph_encoder_size): Define here.
28699         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28700         Declare.
28701
28702 2010-05-16  Richard Guenther  <rguenther@suse.de>
28703
28704         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28705         -fipa-type-escape.
28706         * ipa-type-escape.c (gate_type_escape_vars): Run when
28707         -fipa-struct-reorg runs.
28708         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28709         * common.opt (fipa-type-escape): Remove.
28710
28711 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28712
28713         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28714         (decode_options): Likewise.
28715         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28716
28717 2010-05-16  Jan Hubicka  <jh@suse.cz>
28718
28719         * ipa.c (function_and_variable_visibility): Also bring local all
28720         aliases.
28721
28722 2010-05-16  Richard Guenther  <rguenther@suse.de>
28723
28724         * alias.c (nonoverlapping_memrefs_p): Remove use of
28725         IPA type-escape information.
28726
28727 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28728
28729         * c-common.c (c_common_reswords): Add _Static_assert for C.
28730         * c-parser.c (c_token_starts_declaration,
28731         c_parser_next_token_starts_declaration,
28732         c_parser_static_assert_declaration_no_semi,
28733         c_parser_static_assert_declaration): New.
28734         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28735         Handle static assertions if static_assert_ok.
28736         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28737         c_parser_compound_statement_nostart, c_parser_label,
28738         c_parser_for_statement, c_parser_objc_methodprotolist,
28739         c_parser_omp_for_loop): All callers of
28740         c_parser_declaration_or_fndef changed.
28741         (c_parser_struct_declaration): Handle static assertions.
28742         (c_parser_compound_statement_nostart): Use
28743         c_parser_next_token_starts_declaration and
28744         c_token_starts_declaration to detect start of declarations.
28745         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28746         Likewise.
28747
28748 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28749
28750         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28751         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28752         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28753         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28754         (mmix_function_outgoing_value): Rename to...
28755         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28756         (mmix_function_value_regno_p): Make static.
28757         (mmix_libcall_value): New function.
28758         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28759         mmix_function_value_regno_p): Remove declaration.
28760
28761 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28762
28763         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28764         BUILT_IN_ALLOCA if stack checking is enabled.
28765
28766 2010-05-16  Richard Guenther  <rguenther@suse.de>
28767
28768         * var-tracking.c (vars_copy_1): Inline ...
28769         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28770         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28771         (variable_merge_over_cur): Adjust.  Merge asserts.
28772         (variable_merge_over_src): Likewise.
28773         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28774         (variable_post_merge_new_vals): Merge asserts.
28775         (variable_post_merge_perm_vals): Likewise.
28776         (find_mem_expr_in_1pdv): Likewise.
28777         (dataflow_set_different_value): Remove.
28778         (onepart_variable_different_p): Merge asserts.
28779         (variable_different_p): Likewise.
28780         (dataflow_set_different_1): Inline ...
28781         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28782         (emit_notes_for_differences_1): Merge asserts.
28783
28784 2010-05-16  Richard Guenther  <rguenther@suse.de>
28785
28786         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28787         * optabs.c (libfunc_decl_hash): Likewise.
28788         * varasm.c (emutls_decl): Likewise.
28789
28790 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28791
28792         * c-decl.c: Don't include gimple.h.
28793         (merge_decls): Do not copy gimple_body.
28794
28795 2010-05-15  Jason Merrill  <jason@redhat.com>
28796
28797         * c.opt: Add -fnothrow-opt.
28798
28799 2010-05-15  Jan Hubicka  <jh@suse.cz>
28800
28801         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28802         analyzed.
28803         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28804
28805 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28806
28807         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28808         * Makefile.in: Add it.
28809         Fix all other Makefile dependencies for changes below.
28810         * tree.h: Include it instead of defining VEC primitives here.
28811         * gimple.h: Likewise.
28812         * rtl.h: Likewise.
28813         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28814         * except.h: Include vecir.h, break dependence on tree.h.
28815
28816         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28817         Move from here...
28818         * tree-iterator.c: ...to here.
28819         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28820
28821         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28822         tm_p.h.
28823         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28824         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28825         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28826         tree-mudflap.h, and target.h.
28827         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28828         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28829         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28830         Add FIXME for why gimple.h is still included (should be unnecessary
28831         since GCC 4.5 gimplification unit-at-a-time).
28832         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28833         * c-pragma.c: Add FIXME for why function.h needs to be included just
28834         for cfun, at front-end level.
28835         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28836         Do not include ggc.h, but include vecprim.h for VEC(char).
28837         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28838         Explain why target.h is included.
28839         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28840         Explain why gimple.h is included.
28841         * c-ppoutput.c: Do not include tm.h.
28842         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28843         * c-parses.c: Explain why rtl.h is included, and that this (and only
28844         this) is also why tm.h must be included.
28845         Do not include except.h.
28846         * c-lang.c: Do not include ggc.h.
28847
28848 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28849
28850         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28851
28852 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28853
28854         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28855         unions by default if those structs and unions have no tags.  Do
28856         not condition anonymous struct and unions handling on flag_iso.
28857         Allow anonymous structs and unions for C1X.
28858         (finish_struct): Do not diagnose lack of named fields when
28859         anonymous structs and unions present for C1X.  Accept flexible
28860         array members in structure with anonymous structs or unions but no
28861         directly named fields.
28862         * doc/extend.texi (Unnamed Fields): Update.
28863
28864 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28865
28866         * gimple.h (compare_field_offset): Rename into...
28867         (gimple_compare_field_offset): ...this.
28868         * gimple.c (compare_field_offset): Rename into...
28869         (gimple_compare_field_offset): ...this.  Compare the full access if
28870         the offset is self-referential.
28871         (gimple_types_compatible_p): Adjust for above renaming.
28872         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28873         DECL_NONADDRESSABLE_P flag of fields before merging them.
28874
28875 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28876
28877         * tree.h (ctor_to_list): Delete.
28878         * tree.c (ctor_to_list): Delete.
28879
28880 2010-05-15  Jan Hubicka  <jh@suse.cz>
28881
28882         * ipa-reference.c: Include toplev.h
28883         (is_proper_for_analysis): Only add to all_module_statics
28884         if it is allocated.
28885         (write_node_summary_p, stream_out_bitmap,
28886         ipa_reference_write_optimization_summary,
28887         ipa_reference_read_optimization_summary): New.
28888         (struct ipa_opt_pass_d pass_ipa_reference): Add
28889         optimization summary streaming.
28890         * lto-cgraph.c (referenced_from_this_partition_p,
28891         reachable_from_this_partition_p): New functions.
28892         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28893         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28894         * opts.c (decode_options): Enable ipa_reference.
28895         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28896         * lto-streamer.h (referenced_from_this_partition_p,
28897         reachable_from_this_partition_p): Declare.
28898
28899 2010-05-15  Richard Guenther  <rguenther@suse.de>
28900
28901         PR tree-optimization/44038
28902         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28903         taking the address of a V_C_E of a constant.
28904
28905 2010-05-14  Jan Hubicka  <jh@suse.cz>
28906
28907         * tree.h (memory_identifier_string): Remove.
28908         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28909         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28910         statics_not_written.
28911         (ipa_reference_optimization_summary_d): New structure.
28912         (ipa_reference_optimization_summary_t): New type and vector.
28913         (ipa_reference_vars_info_d): Embedd structures instead of using
28914         pointers.
28915         (reference_vars_to_consider): Remove out of GGC space.
28916         (module_statics_escape): Remove.
28917         (global_info_obstack): Rename to ...
28918         (optimization_summary_obstack): ... this one.
28919         (initialization_status_t): Remove.
28920         (memory_identifier_string): Remove.
28921         (get_reference_vars_info): Fix indenting.
28922         (set_reference_vars_info): Likewise.
28923         (get_reference_optimization_summary): New.
28924         (set_reference_optimization_summary): New.
28925         (get_global_reference_vars_info): Remove.
28926         (ipa_reference_get_read_global): Remove.
28927         (ipa_reference_get_written_global): Remove.
28928         (ipa_reference_get_not_read_global): Update.
28929         (ipa_reference_get_not_written_global): Update.
28930         (is_proper_for_analysis): Outlaw addressable.
28931         (propagate_bits): Update for new datastructures.
28932         (analyze_variable): Remove.
28933         (init_function_info): Update for new datastructures.
28934         (clean_function_local_data): Remove.
28935         (clean_function): Remove.
28936         (copy_global_bitmap): Use optimizations_summary_obstack.
28937         (duplicate_node_data): Duplicate optimization summary only.
28938         (remove_node_data): Remove optimization summary only.
28939         (generate_summary): Do not analyze variables; do not compute
28940         module_statics_escape; do not prune solutions by it.
28941         (read_write_all_from_decl): Fix typos in comments.
28942         (propagate): Doscover readonly and nonaddressable first;
28943         update for new datastructures; share global bitmaps.
28944         * ipa-reference.h (ipa_reference_get_read_global,
28945         ipa_reference_get_written_global): Remove.
28946         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28947         * Makefile.in: Remove ipa-refereference from GT files.
28948
28949 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28950
28951         PR debug/44112
28952         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28953         for all SYMBOL_REF_DECLs.
28954
28955 2010-05-14  Jan Hubicka  <jh@suse.cz>
28956
28957         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28958         (varpool_all_refs_explicit_p): New inline function.
28959         * ipa-reference.c: Update comment.
28960         (module_statics_written): Remove.
28961         (get_static_decl): Remove.
28962         (ipa_init): Do not initialize module_statics_written.
28963         (analyze_function): Likewise.
28964         (generate_summary): Likewise; do not compute module_statics_readonly
28965         and do not update variable flags.
28966         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28967         * ipa.c: Inlucde flags.h
28968         (cgraph_local_node_p): New.
28969         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28970         promote functions to local.
28971         (ipa_discover_readonly_nonaddressable_vars): New function.
28972         (function_and_variable_visibility): Use cgraph_local_node_p.
28973         * varpool.c (varpool_finalize_decl): Set force_output for
28974         DECL_PRESERVE_P vars.
28975
28976 2010-05-14  Jan Hubicka  <jh@suse.cz>
28977
28978         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28979
28980 2010-05-14  Richard Guenther  <rguenther@suse.de>
28981
28982         PR tree-optimization/44119
28983         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28984         a PHI node necessary.
28985
28986 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
28987
28988         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
28989
28990 2010-05-14  Jason Merrill  <jason@redhat.com>
28991
28992         PR c++/44127
28993         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
28994         (gimple_call_set_nothrow): New.
28995         * gimple.c (gimple_build_call_from_tree): Call it.
28996         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
28997
28998         PR c++/44127
28999         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29000         * gimple.h: Declare it.
29001         * gimple.c (gimple_build_eh_filter): No ops.
29002
29003 2010-05-14  Jan Hubicka  <jh@suse.cz>
29004
29005         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29006         nodes already in queue.
29007         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29008         re-enqueueing node.
29009
29010 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29011
29012         PR debug/44136
29013         * cfgexpand.c (expand_debug_expr): If non-memory op0
29014         has BLKmode, return NULL.
29015
29016 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29017
29018         * config.gcc: Add support for --with-cpu option for bdver1.
29019         * config/i386/i386.h (TARGET_BDVER1): New macro.
29020         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29021         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29022         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29023         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29024         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29025         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29026         (processor_type): Add PROCESSOR_BDVER1.
29027         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29028         processor_type in config/i386/i386.h.
29029         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29030         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29031         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29032         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29033         to emit packed xor instead of packed double/packed integer
29034         xor for SSE and AVX when moving a zero value.
29035         * config/i386/sse.md: Add check for
29036         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29037         movapd/movdqa for SSE and AVX.
29038         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29039         single logical operations i.e and, or and xor instead of packed double
29040         logical operations for SSE and AVX.
29041         * config/i386/i386-c.c (ix86_target_macros_internal):
29042         Add PROCESSOR_BDVER1.
29043         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29044         (has_fma4, has_xop): New.
29045         * config/i386/i386.c (bdver1_cost): New variable.
29046         (m_BDVER1): New macro.
29047         (m_AMD_MULTIPLE): Add m_BDVER1.
29048         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29049         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29050         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29051         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29052         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29053         x86_tune_sse_partial_reg_dependency,
29054         x86_tune_sse_unaligned_load_optimal,
29055         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29056         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29057         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29058         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29059         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29060         Enable/disable for bdver1.
29061         (processor_target_table): Add bdver1_cost.
29062         (cpu_names): Add bdver1.
29063         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29064          processor_alias_table.
29065         (ix86_expand_vector_move_misalign): Change.
29066         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29067         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29068         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29069         of movupd/movdqu for SSE and AVX.
29070         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29071         (ix86_tune_adjust_cost): Add code for bdver1.
29072         (standard_sse_constant_opcode): Add check for
29073         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29074         of packed double xor for SSE and AVX.
29075
29076 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29077
29078         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29079         result to unsigned.
29080
29081 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29082
29083         * toplev.c (default_debug_hooks): Remove this variable.
29084         (process_options): Remove assignments to default_debug_hooks.
29085
29086 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29087
29088         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29089         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29090         * langhooks.h (struct lang_hooks_for_decls): Removed field
29091         fold_obj_type_ref.
29092         * tree.c (free_lang_data): Remove assignment to
29093         lang_hooks.fold_obj_type_ref.
29094         * tree.def (OBJ_TYPE_REF): Update comment.
29095
29096 2010-05-14  Richard Guenther  <rguenther@suse.de>
29097
29098         PR tree-optimization/44124
29099         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29100
29101 2010-05-14  Alan Modra  <amodra@gmail.com>
29102
29103         PR target/44075
29104         * config/rs6000/rs6000.c (struct machine_function): Reorder
29105         fields for better packing.  Add lr_save_state.
29106         (rs6000_ra_ever_killed): Return lr_save_state if set.
29107         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29108
29109 2010-05-13  Jan Hubicka  <jh@suse.cz>
29110
29111         * varpool.c (decide_is_variable_needed): Drop code checking
29112         TREE_SYMBOL_REFERENCED.
29113
29114 2010-05-13  Jan Hubicka  <jh@suse.cz>
29115
29116         * final.c (output_addr_const): Do not call mark_decl_referenced.
29117         * cgraphunit.c (process_function_and_variable_attributes): Use
29118         mark_needed_node dirrectly.
29119         (assemble_thunk): Do not call mark_decl_referenced.
29120
29121 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29122
29123         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29124
29125 2010-05-13  Jeff Law  <law@redhat.com>
29126
29127         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29128         from...
29129         (print_conflicts): Call print_allocno_conflicts.
29130
29131 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29132
29133         PR debug/44104
29134         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29135         if it is NULL.
29136
29137 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29138
29139         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29140         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29141         * config/i386/t-mingw-w32: New.
29142         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29143
29144 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29145
29146         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29147         gimple-fold.c).
29148         * gimple-fold.c (get_base_binfo_for_type): New function.
29149         (gimple_get_relevant_ref_binfo): Likewise.
29150         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29151         (gimple_fold_obj_type_ref): Likewise.
29152         (fold_gimple_call): Simplify condition for folding virtual calls
29153         and call gimple_fold_obj_type_ref.
29154         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29155         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29156
29157 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29158
29159         * config/rs6000/rs6000-protos.h
29160         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29161         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29162         (rs6000_debug_mode_dependent_address)
29163         (rs6000_mode_dependent_address_ptr): Likewise.
29164
29165 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29166
29167         PR debug/43983
29168         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29169         by SRA.
29170         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29171         * tree-sra.c (create_access_replacement): Call unshare_expr before
29172         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29173         * dwarf2out.c: Include tree-flow.h.
29174         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29175         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29176         Handle DW_OP_bit_piece.
29177         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29178         construct_piece_list, adjust_piece_list): New functions.
29179         (add_var_loc_to_decl): Handle SRA optimized variables.
29180         Adjust for var_loc_note to loc field renaming.
29181         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29182         in VAR_LOCATION note.
29183         (new_loc_descr_op_bit_piece): New function.
29184         (dw_sra_loc_expr): New function.
29185         (dw_loc_list): Use it.  Don't handle the last range after the
29186         loop, handle it inside of the loop.  Adjust for var_loc_note
29187         to loc field renaming.
29188         (add_location_or_const_value_attribute): Only special case
29189         single entry loc lists if loc is NOTE_P.  Adjust for
29190         var_loc_note to loc field renaming.
29191         (dwarf2out_var_location): Don't set newloc->var_loc_note
29192         and newloc->next here.
29193
29194 2010-05-12  Jan Hubicka  <jh@suse.cz>
29195
29196         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29197         flag.
29198         * cgraph.h (cgraph_only_called_directly_p,
29199         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29200         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29201         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29202         (assemble
29203         * ipa.c (cgraph_remove_unreachable_nodes): Use
29204         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29205         flags.
29206         * tree-inline.c (copy_bb): Check address_taken flag.
29207         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29208         externally_visible flag.
29209
29210 2010-05-12  Jason Merrill  <jason@redhat.com>
29211
29212         PR bootstrap/44048
29213         PR target/44099
29214         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29215         * sdbout.c (plain_type_1): Likewise.
29216         * dwarf2out.c (is_base_type): Likewise.
29217         (gen_type_die_with_usage): Likewise.  Generate
29218         DW_TAG_unspecified_type for any LANG_TYPE.
29219
29220 2010-05-12  Jan Hubicka  <jh@suse.cz>
29221
29222         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29223         indrect edges too.
29224         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29225         (cgraph_clone_edge): Update.
29226         (cgraph_node_remove_callees): Remove indirect calls too.
29227         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29228         (cgraph_create_indirect_edge): Update prototype.
29229         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29230         is_proper_for_analysis.
29231         (add_new_function, visited_nodes, function_insertion_hook_holder,
29232         get_local_reference_vars_info, mark_address_taken, mark_address,
29233         mark_load, mark_store, check_asm_memory_clobber, check_call,
29234         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29235         (ipa_init): Do not initialize visited_nodes;
29236         function_insertion_hook_holder.
29237         (analyze_variable): Rewrite.
29238         (analyze_function): Rewrite.
29239         (copy_local_bitmap): Remove.
29240         (duplicate_node_dat): Do not duplicate local info.
29241         (generate_summary): Simplify to only walk cgraph.
29242         (write_node_summary_p, ipa_reference_write_summary,
29243         ipa_reference_read_summary): Remove.
29244         (propagate): Do not remove function insertion;
29245         generate summary.
29246         (pass_ipa_reference): NULLify summary handling fields.
29247         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29248         (input_edge): Input ecf_flags.
29249         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29250         (update_indirect_edges_after_inlining): Ignore edges with unknown
29251         param.
29252
29253 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29254
29255         * implicit-zee.c: New file.
29256         * tree-pass.h (pass_implicit_zee): Declare.
29257         * passes.c (init_optimization_passes): Add zee pass.
29258         * common.opt (fzee): New flag.
29259         * timevar.def (TV_ZEE): Define.
29260         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29261         and beyond.
29262         * Makefile.in (implicit-zee.o): Add new build file.
29263
29264 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29265             Nathan Froyd  <froydnj@codesourcery.com>
29266
29267         * c-common.c (sync_resolve_params): Remove write-only variable.
29268
29269 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29270
29271         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29272         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29273         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29274         * targhooks.c (default_mode_dependent_address_p): New function.
29275         * targhooks.h (default_mode_dependent_address_p): Declare function.
29276         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29277         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29278         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29279         target hook. Change return type to bool.
29280         * recog.h (mode_dependent_address_p): Change return type to bool.
29281
29282 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29283             Nathan Froyd  <froydnj@codesourcery.com>
29284
29285         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29286         build_function_type_2, build_function_type_3): Remove.
29287         (mudflap_init): Use build_function_type_list.
29288
29289 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29290             Nathan Froyd  <froydnj@codesourcery.com>
29291
29292         * coverage.c (build_fn_info_value): Call build_constructor instead of
29293         build_constructor_from_list.
29294         (build_ctr_info_value): Likewise.
29295         (build_gcov_info): Likewise.
29296
29297 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29298
29299         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29300         resultant constructor.
29301         (build_constructor_single): Don't set TREE_CONSTANT.
29302         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29303
29304 2010-05-12  Jan Hubicka  <jh@suse.cz>
29305
29306         * cgraph.h (struct varpool_node): Add aux.
29307         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29308         * varpool.c (varpool_remove_node): Do not remove initializer.
29309         (varpool_reset_queue): Export.
29310         (varpool_finalize_decl): Volatile vars are forced to be output.
29311         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29312         replaced decl.
29313         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29314         process_references, varpool_can_remove_if_no_refs): New functions.
29315         (cgraph_remove_unreachable_nodes): Handle variables too.
29316
29317 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29318
29319         PR target/44088
29320         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29321
29322 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29323
29324         PR middle-end/44085
29325         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29326         change value of ORT_TASK.
29327         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29328         (omp_notice_threadprivate_variable): New function.
29329         (omp_notice_variable): Call it for threadprivate variables.
29330         If enclosing ctx is a task, print enclosing task rather than
29331         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29332         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29333         if task has untied clause.
29334
29335         PR debug/42278
29336         * dwarf2out.c (base_type_die): Don't add name attribute here.
29337         (modified_type_die): Instead of sizetype use
29338         its underlying original type.  If a DW_TAG_base_type doesn't
29339         have name added, add __unknown__.
29340         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29341         always call force_type_die instead.
29342
29343 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29344
29345         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29346         for __stack_chk_guard.
29347
29348 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29349
29350         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29351         don't call start_source_file debug hook here...
29352         (finish_options): ... but here, after outputting predefined and
29353         command line defines and undefs.
29354
29355         PR middle-end/44071
29356         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29357         no fallthru edge.
29358         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29359         optimizing away empty bb with no successors, move over its
29360         footer chain to fallthru predecessor.
29361         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29362         (rtl_split_edge): For asm goto call patch_jump_insn even if
29363         splitting fallthru edge.
29364
29365         PR c++/44059
29366         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29367         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29368         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29369         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29370         on DW.ref.* decls.
29371
29372         PR c++/44062
29373         * c-parser.c (c_parser_expression): Mark LHS of a comma
29374         expression as read if it is a decl, handled component or
29375         COMPOUND_EXPR with that on the RHS.
29376         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29377         if it is a decl or handled component.
29378
29379 2010-05-11  Jan Hubicka  <jh@suse.cz>
29380
29381         * lto-symtab.c (lto_symtab_free): New function.
29382         * lto-streamer.h (lto_symtab_free): Declare.
29383
29384 2010-05-11  Jan Hubicka  <jh@suse.cz>
29385
29386         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29387         that if function is needed it is reachable.
29388         (lto_output_node): See if it the function is reachable or referenced.
29389         (output_cgraph): Update call of lto_output_node.
29390         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29391
29392 2010-05-11  Jan Hubicka  <jh@suse.cz>
29393
29394         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29395         Mark as used.
29396
29397 2010-05-11  Jan Hubicka  <jh@suse.cz>
29398
29399         PR tree-optimize/44063
29400         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29401         queue.
29402         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29403         limits.
29404         (estimate_function_body_sizes): Compute sizes even when disregarding.
29405
29406 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29407
29408         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29409
29410 2010-05-11  Jan Hubicka  <jh@suse.cz>
29411
29412         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29413         into every boundary.
29414
29415 2010-05-11  Jan Hubicka  <jh@suse.cz>
29416
29417         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29418
29419 2010-05-11  Jan Hubicka  <jh@suse.cz>
29420
29421         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29422         lto_streamer_cache_delete): Put nodes into heap.
29423         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29424         heap.
29425
29426 2010-05-11  Jan Hubicka  <jh@suse.cz>
29427
29428         * cgraphbuild.c (cgraph_rebuild_references): New.
29429         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29430         out extern inlines.
29431         * cgraph.h (cgraph_rebuild_references): Declare.
29432         * tree-inline.c (tree_function_versioning): Use it.
29433         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29434
29435 2010-05-11  Jan Hubicka  <jh@suse.cz>
29436
29437         * cgraph.c: Include ipa-utils.h
29438         (cgraph_create_virtual_clone): Update references.
29439         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29440
29441 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29442
29443         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29444         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29445         cache size.
29446
29447 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29448
29449         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29450
29451 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29452
29453         * gcc.c (execute): For -### don't quote arguments that
29454         contain just alphanumerics and _/-. characters.
29455         * doc/invoke.texi: Document that change for -###.
29456
29457         PR debug/44023
29458         * df-problems.c (struct dead_debug): Add to_rescan field.
29459         (dead_debug_init): Clear to_rescan field.
29460         (dead_debug_finish): Rescan all debug insns in to_rescan
29461         bitmap and free the bitmap.
29462         (dead_debug_insert_before): Instead of rescanning debug insns
29463         immediately queue their rescanning until dead_debug_finish.
29464         (df_note_bb_compute): After dead_debug_add do continue instead
29465         of break.
29466
29467 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29468
29469         PR debug/44028
29470         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29471         clear also INSN_REG_USE_LIST.
29472
29473 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29474
29475         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29476
29477 2010-05-10  Jan Hubicka  <jh@suse.cz>
29478
29479         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29480         commited change.
29481
29482 2010-05-10  Jan Hubicka  <jh@suse.cz>
29483
29484         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29485         Allocate encoders.
29486         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29487         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29488         (lto_streamer_cache_create): Init alloc pool.
29489         (lto_streamer_cache_delete): Free alloc pool.
29490         * lto-streamer.h: Include alloc pool.
29491         (lto_streamer_cache_d): Use alloc pool.
29492         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29493
29494 2010-05-10  Jan Hubicka  <jh@suse.cz>
29495
29496         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29497         * cgraphbuild.c: Include except.h
29498         (record_type_list, record_eh_tables): New function.
29499         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29500
29501 2010-05-10  Jan Hubicka  <jh@suse.cz>
29502
29503         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29504         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29505         rather than unused.
29506
29507 2010-05-10  Michael Matz  <matz@suse.de>
29508
29509         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29510         (can_reassociate_p): Use FLOAT_TYPE_P.
29511         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29512         (vect_force_simple_reduction): ... this.
29513         * tree-parloops.c (gather_scalar_reductions): Use
29514         vect_force_simple_reduction.
29515         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29516         vect_is_simple_reduction, add modify argument, if true rewrite
29517         "a-b" into "a+(-b)".
29518         (vect_is_simple_reduction, vect_force_simple_reduction): New
29519         functions.
29520         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29521
29522 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29523             Vladimir Makarov  <vmakarov@redhat.com>
29524
29525         PR rtl-optimization/44012
29526         * ira-build.c (remove_unnecessary_allocnos): Nullify
29527         regno_allocno_map of the removed allocno.
29528
29529 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29530
29531         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29532         to /dev/null.
29533         * configure: Regenerate.
29534
29535 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29536
29537         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29538         unused.
29539         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29540         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29541         support in Sun ld.
29542         * configure: Regenerate.
29543
29544 2010-05-10  Richard Guenther  <rguenther@suse.de>
29545
29546         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29547         marked if the entry identifier is marked.
29548
29549 2010-05-10  Richard Guenther  <rguenther@suse.de>
29550
29551         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29552         (handle_fnspec_attribute): New function.
29553         * gimple.h (gimple_call_return_flags): Declare.
29554         (gimple_call_arg_flags): Likewise.
29555         * gimple.c (gimple_call_arg_flags): New function.
29556         (gimple_call_return_flags): Likewise.
29557         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29558         New argument flags.
29559         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29560         return value flags.
29561         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29562         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29563         main work to ...
29564         (make_heapvar_for): ... this new function.
29565         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29566         (handle_lhs_call): Likewise.
29567         (find_func_aliases): Adjust.
29568
29569 2010-05-10  Richard Guenther  <rguenther@suse.de>
29570
29571         PR tree-optimization/44050
29572         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29573
29574 2010-05-10  Wei Guozhi  <carrot@google.com>
29575
29576         PR target/42879
29577         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29578
29579 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29580
29581         PR c/10676
29582         * c-typeck.c (lookup_field): Take a type directly.  Update
29583         recursive calls.
29584         (build_component_ref): Update call to lookup_field.
29585         (set_init_label): Use lookup_field to find initialized field.
29586         Handle returned list of fields like a sequence of designators.
29587
29588 2010-05-09  Richard Guenther  <rguenther@suse.de>
29589
29590         PR middle-end/44024
29591         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29592         handle &FUNCTION_DECL.
29593
29594 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29595
29596         PR c/4784
29597         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29598         structures and unions recursively.
29599         (detect_field_duplicates): Move duplicate detection with a hash to
29600         detect_field_duplicates_hash.  Always use a hash if anonymous
29601         structures or unions are present.
29602         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29603         give errors.
29604
29605 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29606
29607         PR target/44046
29608         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29609         detect Atom, Core 2 and Core i7.
29610
29611 2010-05-09  Richard Guenther  <rguenther@suse.de>
29612
29613         * gcc.c (store_arg): Handle temporary file deletion for
29614         joined arguments.
29615
29616 2010-05-09  Richard Guenther  <rguenther@suse.de>
29617
29618         PR middle-end/44043
29619         * ipa-inline.c (estimate_function_body_sizes): Return after
29620         disregarding inline limits.
29621
29622 2010-05-09  Richard Guenther  <rguenther@suse.de>
29623
29624         * gcc.c (store_arg): Revert last change.
29625
29626 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29627
29628         PR middle-end/28685
29629         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29630         (optimize_ops_list): Call it.
29631
29632 2010-05-08  Richard Guenther  <rguenther@suse.de>
29633
29634         PR tree-optimization/44030
29635         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29636         NECESSARY flag if we propagate from a inserted expression.
29637
29638 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29639
29640         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29641         domain types as equal if they are both PLACEHOLDER_EXPRs.
29642
29643 2010-05-08  Richard Guenther  <rguenther@suse.de>
29644
29645         * lto-wrapper.c (run_gcc): Remove linker output from
29646         command line for LTRANS invocation.
29647
29648 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29649
29650         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29651         lto-macho as lto_binary_reader.
29652         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29653         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29654         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29655         in lto_start and lto_end calls.
29656         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29657         magic numbers.
29658         (scan_prog_file): Update is_elf_or_coff call.
29659         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29660
29661         * collect2.c (main): Fix enum comparison.
29662
29663         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29664         Add prototypes.
29665         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29666         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29667         and TARGET_ASM_LTO_END.
29668         * darwin.c: Include obstack.h and lto-streamer.h.
29669         (lto_section_names_offset, lto_section_names_obstack,
29670         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29671         global variables.
29672         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29673         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29674         to a temporary file.
29675         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29676         (darwin_asm_named_section): For LTO sections, replace the name with
29677         the offset of the section name in a string table, and build this
29678         table.
29679         (darwin_file_start): Initialize global vars for LTO support.
29680         (darwin_file_end): If output to asm_out_file was redirected, append it
29681         to the proper asm_out_file here.  Add the section names section.
29682
29683 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29684
29685         * c-pragma.c (pending_weak_d, pending_weak): New.
29686         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29687         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29688         handle_pragma_weak): Update the uses of pending_weaks.
29689
29690 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29691
29692         PR documentation/44016
29693         * doc/standards.texi (Standards): Link to unversioned
29694         cxx0x_status.html page.
29695
29696 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29697
29698         PR target/43708
29699         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29700         in addition to TREE_USED, to avoid "set but unused" warnings.
29701
29702 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29703
29704         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29705         (is_loop_prefetching_profitable): Do not insert prefetches
29706         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29707         times the prefetch ahead distance.
29708
29709 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29710
29711         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29712         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29713         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29714         the unroll_factor.
29715
29716 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29717
29718         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29719         a diagnostic info when the insn-to-mem ratio is too small.
29720
29721 2010-05-07  Richard Guenther  <rguenther@suse.de>
29722
29723         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29724         the linker plugin.
29725         (store_arg): Queue temp_filename for deletion instead of
29726         the whole argument.
29727
29728 2010-05-07  Richard Guenther  <rguenther@suse.de>
29729
29730         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29731         (run_gcc): Handle LTRANS phase invocation.
29732         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29733
29734 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29735
29736         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29737         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29738
29739 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29740
29741         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29742
29743 2010-05-07  Richard Guenther  <rguenther@suse.de>
29744
29745         PR tree-optimization/44020
29746         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29747         code when PRE is not yet initialized.
29748
29749 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29750
29751         * config/mips/dbxmdebug.h: Remove.
29752         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29753
29754 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29755
29756         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29757         with null pointer and also warn about ordered comparison of zero with
29758         pointer if -Wextra.
29759
29760 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29761
29762         * graphite-blocking.c
29763         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29764         * graphite-clast-to-gimple.c
29765         (clast_to_gcc_expression): Same.
29766         (precision_for_value): Same.
29767         (precision_for_interval): Same.
29768         (gcc_type_for_interval): Same.
29769         (graphite_create_new_guard): Same.
29770         (compute_bounds_for_level): Same.
29771         (graphite_create_new_loop_guard): Same.
29772         * graphite-interchange.c
29773         (build_linearized_memory_access): Same.
29774         (pdr_stride_in_loop): Same.
29775         (memory_strides_in_loop_1): Same.
29776         (memory_strides_in_loop): Same.
29777         (extend_scattering): Same.
29778         (psct_scattering_dim_for_loop_depth): Same.
29779         (pbb_number_of_iterations): Same.
29780         * graphite-poly.h
29781         (debug_iteration_domains): Same.
29782         * graphite-ppl.c
29783         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29784         (ppl_set_inhomogeneous_gmp): Same.
29785         (ppl_strip_loop): Same.
29786         (ppl_lexico_compare_linear_expressions): Same.
29787         (ppl_read_polyhedron_matrix): Same.
29788         (ppl_max_for_le_pointset): Same.
29789         * graphite-ppl.h
29790         (ppl_read_polyhedron_matrix): Same.
29791         (tree_int_to_gmp): Same.
29792         (gmp_cst_to_tree): Same.
29793         (ppl_set_inhomogeneous): Same.
29794         (ppl_set_inhomogeneous_tree): Same.
29795         (ppl_set_coef): Same.
29796         (ppl_set_coef_tree): Same.
29797         * graphite-sese-to-poly.c
29798         (build_pbb_scattering_polyhedrons): Same.
29799         (build_scop_scattering): Same.
29800         (scan_tree_for_params_right_scev): Same.
29801         (scan_tree_for_params): Same.
29802         (find_params_in_bb): Same.
29803         (find_scop_parameters): Same.
29804         (add_upper_bounds_from_estimated_nit): Same.
29805         (build_loop_iteration_domains): Same.
29806         (add_condition_to_domain): Same.
29807         (pdr_add_memory_accesses): Same.
29808
29809 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29810
29811         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29812         CLooG's value_* macros to their respective mpz_* counterparts.
29813         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29814         (graphite_create_new_loop_guard): Same.
29815         * graphite-interchange.c (build_linearized_memory_access): Same.
29816         (pdr_stride_in_loop): Same.
29817         (memory_strides_in_loop_1): Same.
29818         (1st_interchange_profitable_p): Same.
29819         * graphite-poly.c (extend_scattering): Same.
29820         (psct_scattering_dim_for_loop_depth): Same.
29821         (pbb_number_of_iterations): Same.
29822         (pbb_number_of_iterations_at_time): Same.
29823         * graphite-poly.h (new_1st_loop): Same.
29824         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29825         (oppose_constraint): Same.
29826         (insert_constraint_into_matrix): Same.
29827         (ppl_set_inhomogeneous_gmp): Same.
29828         (ppl_set_coef_gmp): Same.
29829         (ppl_strip_loop): Same.
29830         (ppl_lexico_compare_linear_expressions): Same.
29831         (ppl_max_for_le_pointset): Same.
29832         (ppl_min_for_le_pointset): Same.
29833         (ppl_build_realtion): Same.
29834         * graphite-ppl.h (gmp_cst_to_tree): Same.
29835         (ppl_set_inhomogeneous): Same.
29836         (ppl_set_inhomogeneous_tree): Same.
29837         (ppl_set_coef): Same.
29838         (ppl_set_coef_tree): Same.
29839         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29840         (build_scop_scattering): Same.
29841         (add_value_to_dim): Same.
29842         (scan_tree_for_params_right_scev): Same.
29843         (scan_tree_for_params_int): Same.
29844         (scan_tree_for_params): Same.
29845         (find_params_in_bb): Same.
29846         (find_scop_parameters): Same.
29847         (add_upper_bounds_from_estimated_nit): Same.
29848         (build_loop_iteration_domains): Same.
29849         (create_linear_expr_from_tree): Same.
29850         (add_condition_to_domain): Same.
29851         (pdr_add_memory_accesses): Same.
29852
29853 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29854             Jason Merrill  <jason@redhat.com>
29855
29856         * c-common.c (c_common_reswords): Add nullptr.
29857         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29858         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29859         (gen_type_die_with_usage): Likewise.
29860         * dbxout.c (dbxout_type): Likewise.
29861         * sdbout.c (plain_type_1): Likewise.
29862
29863 2010-05-06  Jason Merrill  <jason@redhat.com>
29864
29865         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29866         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29867         ret appropriately.
29868         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29869
29870         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29871         stripping WITH_SIZE_EXPR.
29872         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29873         change.
29874
29875 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29876
29877         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29878         list of obsolete configurations.
29879         Disabled check for obsolete configurations.
29880         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29881         Removed support for previous versions.
29882         * config/mips/iris.h: Removed.
29883         * config/mips/iris5.h: Removed.
29884         * config/mips/iris6.h: Merged old iris.h contents.
29885         (TARGET_IRIX): Removed.
29886         (DRIVER_SELF_SPECS): Removed mabi=32.
29887         (IDENT_ASM_OP): Removed undef.
29888         (STARTFILE_SPEC): Removed mabi=32.
29889         (ENDFILE_SPEC): Likewise.
29890         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29891         (MACHINE_TYPE): Update for IRIX 6.5.
29892         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29893         TARGET_IRIX by TARGET_IRIX6.
29894         (mips_file_start): Likewise.
29895         (mips_output_external): Remove IRIX 5/6 O32 support.
29896         (mips_output_function_prologue): Likewise.
29897         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29898         TARGET_IRIX6.
29899         (TARGET_CPU_CPP_BUILTINS): Likewise.
29900         (TARGET_IRIX): Removed.
29901         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29902         (MULTILIB_DIRNAMES): Removed 32.
29903         (MULTILIB_OSDIRNAMES): Removed ../lib.
29904         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29905         (Specific, mips-sgi-irix5): Document removal.
29906         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29907         Remove references to older IRIX 6 releases and the O32 ABI.
29908
29909 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29910
29911         PR bootstrap/43994
29912         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29913         instead of DF_REF_REAL_REG.
29914
29915 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29916
29917         PR target/43888
29918         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29919         handling to still return true for x64 targets.
29920
29921 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29922
29923         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29924
29925 2010-05-06  Jan Hubicka  <jh@suse.cz>
29926
29927         PR tree-optimization/43791
29928         * ipa-inline.c (update_caller_keys): Remove bogus
29929         disregard_inline_limits check.
29930
29931 2010-05-06  Michael Matz  <matz@suse.de>
29932
29933         PR tree-optimization/43984
29934         * tree-ssa-pre.c (inserted_phi_names): Remove.
29935         (inserted_exprs): Change to bitmap.
29936         (create_expression_by_pieces): Set bits, don't append to vector.
29937         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29938         (eliminate): Don't look at inserted_phi_names, remove deleted
29939         insns from inserted_exprs.
29940         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29941         (init_pre, fini_pre): Allocate and free bitmaps.
29942         (execute_pre): Insert insns on edges before elimination.
29943
29944 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29945
29946         * tree.c (initializer_zerop): Handle STRING_CST.
29947
29948 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29949
29950         PR 40989
29951         * doc/invoke.texi (Wimplicit): Document as C only.
29952         * opts.c (common_handle_option): Add argument kind.
29953         (handle_option): Rename as read_cmdline_option. Factor out code to...
29954         (handle_option): ... here. New.
29955         (handle_options): Rename as read_cmdline_options.
29956         (decode_options): Update call.
29957         (set_option): Use option index instead of option pointer. Classify
29958         diagnostics correctly.
29959         (enable_warning_as_error): Call handle_option.
29960         * opts.h (set_option): Update declaration.
29961         (handle_option): Declare.
29962         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29963         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29964         * c-opts.c (set_Wimplicit): Delete.
29965         (c_family_lang_mask): New static constant.
29966         (c_common_handle_option): Add argument kind. Use handle_option
29967         instead of set_Wimplicit.
29968         (c_common_post_options): warn_implicit and warn_implicit_int
29969         are disabled by default.
29970         * c-common.c (warn_implicit): Do not define here.
29971         * c-common.h (warn_implicit): Do not declare here.
29972         (c_common_handle_option): Update declaration.
29973         * lto-opts.c (lto_reissue_options): Update call to set_option.
29974
29975 2010-05-06  Richard Guenther  <rguenther@suse.de>
29976
29977         PR tree-optimization/43571
29978         * domwalk.c (walk_dominator_tree): Walk the dominator
29979         sons in more optimal order.
29980
29981 2010-05-06  Richard Guenther  <rguenther@suse.de>
29982
29983         PR tree-optimization/43934
29984         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29985         (stmt_cost): Likewise.
29986         (extract_true_false_args_from_phi): New helper.
29987         (determine_max_movement): For PHI nodes verify we can hoist them
29988         and compute their cost.
29989         (determine_invariantness_stmt): Handle PHI nodes.
29990         (move_computations_stmt): Likewise.  Hoist PHI nodes in
29991         if-converted form using COND_EXPRs.
29992         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
29993         (tree_ssa_lim): Likewise.
29994         * tree-flow.h (tree_ssa_lim): Adjust prototype.
29995         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
29996
29997 2010-05-06  Richard Guenther  <rguenther@suse.de>
29998
29999         PR tree-optimization/43987
30000         * tree-ssa-structalias.c (could_have_pointers): For possibly
30001         address-taken variables force pointers to be recorded.
30002         (create_variable_info_for_1): Likewise.
30003         (push_fields_onto_fieldstack): Pass in wheter all fields
30004         must have pointers.
30005         (find_func_aliases): Query types instead of vars whether
30006         they contain pointers where appropriate.
30007
30008 2010-05-06  Jan Hubicka  <jh@suse.cz>
30009
30010         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30011         (record_reference, mark_address, mark_load, mark_store): Record
30012         references.
30013         (record_references_in_initializer): Update call of record_references.
30014         (rebuild_cgraph_edges): Remove all references before rebuiding.
30015         * cgraph.c (cgraph_create_node): Clear ref list.
30016         (cgraph_remove_node): Remove references.
30017         (dump_cgraph_node): Dump references.
30018         (cgraph_clone_node): Clone references.
30019         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30020         (struct cgraph_node, varpool_node): Add ref_lst.
30021         * ipa-ref.c: New file.
30022         * ipa-ref.h: New file.
30023         * ipa-ref-inline.h: New file.
30024         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30025         (referenced_from_other_partition_p): New function.
30026         (lto_output_varpool_node): Take set arugment; call
30027         referenced_from_other_partition.
30028         (lto_output_ref): New.
30029         (add_references): New.
30030         (output_refs): New.
30031         (output_cgraph): Compute boundary based on references; output refs.
30032         (output_varpool): Accept cgraph_node_set argument.
30033         (input_ref): New.
30034         (input_refs): New.
30035         (input_cgraph): Call input_refs.
30036         * lto-section-in.c (lto_section_name): Add refs.
30037         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30038         (ipa-ref.o): New file.
30039         * varpool.c (varpool_node): Clear ipa ref list.
30040         (varpool_remove_node): Remove references.
30041         (dump_varpool_node): Dump references.
30042         (varpool_assemble_decl): Only compile finalized ones.
30043         (varpool_extra_name_alias): Initialize ref list.
30044         * lto-streamer.c (lto-get_section_name): Add .refs section.
30045         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30046         (referenced_from_other_partition_p): Declared.
30047
30048 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30049
30050         PR tree-optimization/43901
30051         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30052         type is not NULL if it's transformation phase, and return
30053         FALSE if it's analysis.
30054         (vectorizable_conversion, vectorizable_operation,
30055         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30056
30057 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30058
30059         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30060         Delete.
30061         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30062         New define.
30063         * config/mips/mips-protos.h
30064         (mips_small_register_classes_for_mode_p): Delete prototype.
30065
30066 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30067
30068         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30069         * config/arm/arm.c (multiple_operation_profitable_p,
30070         compute_offset_order): New static functions.
30071         (load_multiple_sequence, store_multiple_sequence): Use them.
30072         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30073         memory offsets, not register numbers.
30074         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30075
30076 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30077
30078         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30079         (get_pending_sizes, put_pending_size, put_pending_sizes):
30080         Update the uses of pending_sizes.
30081         * c-decl.c (store_parm_decls): Likewise.
30082         * c-tree.h (struct c_arg_info): Likewise.
30083         * tree.h: Update the prototype for get_pending_sizes and
30084         put_pending_sizes.
30085
30086 2010-05-05  Jason Merrill  <jason@redhat.com>
30087
30088         PR debug/43370
30089         * c-common.c (handle_aligned_attribute): Respect
30090         ATTR_FLAG_TYPE_IN_PLACE.
30091
30092         PR testsuite/43758
30093         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30094         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30095         (TARGET_INITIALIZER): Use it.
30096         * c-common.c (attribute_takes_identifier_p): Call it.
30097         * c-common.h: Update prototype.
30098         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30099         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30100
30101 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30102
30103         PR debug/43950
30104         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30105         DW_ID_down_case for Fortran compilation units.
30106
30107 2010-05-05  Jan Hubicka  <jh@suse.cz>
30108
30109         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30110         handle aliases.
30111
30112 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30113
30114         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30115         a variable-sized RESULT_DECL.
30116
30117 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30118
30119         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30120
30121 2010-05-05  Jason Merrill  <jason@redhat.com>
30122
30123         PR c++/43787
30124         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30125         returns GS_OK.
30126         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30127
30128 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30129             Jakub Jelinek  <jakub@redhat.com>
30130
30131         PR debug/43478
30132         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30133         (dead_debug_init, dead_debug_finish): New functions.
30134         (dead_debug_add, dead_debug_insert_before): Likewise.
30135         (df_note_bb_compute): Initialize a dead_debug object, add dead
30136         debug uses to it, insert debug bind insns before death insns,
30137         reset debug insns that refer to pending uses at the end.
30138         * rtl.h (make_debug_expr_from_rtl): New prototype.
30139         * varasm.c (make_debug_expr_from_rtl): New function.
30140
30141 2010-05-05  Jan Hubicka  <jh@suse.cz>
30142
30143         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30144         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30145         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30146         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30147         lto_varpool_encoder_encode_initializer_p,
30148         lto_set_varpool_encoder_encode_initializer): New functions.
30149         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30150         call output_varpool.
30151         (input_varpool_node): Do not always set analyzed.
30152         (input_cgraph_1): Return vector of cgraph nodes.
30153         (input_varpool_1): Return vector of varpools.
30154         (input_cgraph): Free the vectors.
30155         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30156         output only initializers needed.
30157         (lto_output): Only call output_cgraph.
30158         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30159         * lto-section-out.c (lto_new_out_decl_state): Initialize
30160         state->varpool_node_encoder.
30161         * lto-streamer.h (lto_varpool_encoder_d): New.
30162         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30163         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30164         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30165         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30166         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30167         Declare.
30168         (output_varpool, input_varpool): Remove declarations.
30169
30170 2010-05-05  Jan Hubicka  <jh@suse.cz>
30171
30172         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30173         with body can prevail.
30174
30175 2010-05-05  Jan Hubicka  <jh@suse.cz>
30176
30177         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30178         size.
30179
30180 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30181
30182         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30183
30184         * gengtype.h (erro_at_line): Constify pos argument.
30185
30186         * gengtype.c: Include hashtab.h.
30187         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30188         (error_at_line): Constify pos argument.
30189         (do_typedef): Initialize p->opt field.
30190         (get_file_gtfilename): Fix comment typo.
30191         (struct walk_type_data): Constify line field.
30192         (get_output_file_for_structure): New function.
30193         (write_local_func_for_structure): Constify orig_s argument.
30194         Use get_output_file_for_structure.
30195         (write_func_for_structure): Use get_output_file_for_structure.
30196         (INDENT): New define.
30197         (dump_pair, dump_type, dump_type_list, dump_typekind)
30198         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30199         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30200         functions.
30201         (seen_types): New variable.
30202         (main): New variable do_dump.  Process "-d" command line option.
30203         Call dump_everything if dump requested.
30204
30205 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30206
30207         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30208         in a temporary instead of invoking the macro multiple times.
30209         (track_expr_p): Likewise.
30210
30211 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30212
30213         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30214         per new semantics.
30215         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30216         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30217         conditions for printing notes.
30218         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30219         true, update documentation.
30220         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30221
30222 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30223
30224         PR c/43981
30225         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30226         on dimen.
30227
30228 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30229
30230         PR target/43799
30231         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30232         (*sse_prologue_save_insn1): Likewise.
30233         (SSE prologue save splitter): Likewise.
30234
30235 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30236
30237         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30238         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30239         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30240         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30241         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30242         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30243         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30244
30245 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30246
30247         * tree-sra.c (build_access_from_expr_1): The first parameter type
30248         changed to simple tree.
30249         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30250         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30251         renamed as well.
30252         (build_accesses_from_assign): Removed all parameters except for a
30253         simple gimple statement.  Now returns a simple bool.
30254         (scan_function): All non-analysis parts moved to separate functions
30255         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30256         parameters and updated both callers.
30257         (sra_modify_expr): Removed parameter data.
30258         (sra_modify_function_body): New function.
30259         (perform_intra_sra): Call sra_modify_function_body to modify the
30260         function body.
30261         (replace_removed_params_ssa_names): Parameter data changed into
30262         adjustments vector.
30263         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30264         changed the parameter dont_convert to convert with the opposite
30265         meaning.
30266         (sra_ipa_modify_assign): Parameter data changed into adjustments
30267         vector, return value changed to bool.
30268         (ipa_sra_modify_function_body): New function.
30269         (sra_ipa_reset_debug_stmts): Updated a comment.
30270         (modify_function): Use ipa_sra_modify_function_body to modify function
30271         body.
30272
30273 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30274
30275         PR middle-end/43671
30276         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30277         (canon_true_dependence): Likewise.
30278         (write_dependence_p): Likewise.
30279
30280 2010-05-04  Jan Hubicka  <jh@suse.cz>
30281
30282         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30283         * cgraphbuild.c: Include ipa-utils.h
30284         (record_reference_ctx): New struct.
30285         (record_reference): Simplify to work on initializers; not statements.
30286         (mark_address, mark_load, mark_store): New.
30287         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30288         walk PHI nodes too.
30289         (record_references_in_initializer): Update use of record_reference.
30290         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30291         walk PHI nodes too.
30292
30293 2010-05-04  Jan Hubicka  <jh@suse.cz>
30294
30295         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30296         node will be removed anyway.
30297         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30298         relink aliases of node into prevailing node.
30299         * varpool.c (varpool_remove_node): Remove aliases properly;
30300         when removing node, remove all its aliases too; remove DECL_INITIAL
30301         of removed node; ggc_free the varpool node.
30302
30303 2010-05-04  Richard Guenther  <rguenther@suse.de>
30304
30305         PR tree-optimization/43879
30306         * tree-ssa-structalias.c (alias_get_name): Use
30307         DECL_ASSEMBLER_NAME if available.
30308         (create_function_info_for): Return the varinfo node.
30309         (ipa_pta_execute): Associate same-body aliases and extra names
30310         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30311
30312 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30313
30314         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30315
30316 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30317
30318         PR bootstrap/43964
30319         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30320         only if HONOR_REG_ALLOC_ORDER is not defined.
30321
30322 2010-05-04  Richard Guenther  <rguenther@suse.de>
30323
30324         PR tree-optimization/43949
30325         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30326         TRUNC_MOD_EXPR.
30327
30328 2010-04-26  Jason Merrill  <jason@redhat.com>
30329
30330         * c.opt (-fstrict-enums): New.
30331         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30332
30333 2010-05-03  David Ung  <davidu@mips.com>
30334             James E. Wilson  <wilson@codesourcery.com>
30335
30336         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30337         emit the trap instruction before the divide for TUNE_74K.
30338
30339 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30340
30341         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30342         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30343         based on the above, for new target hook.
30344
30345         * hooks.c (hook_bool_mode_true): New generic hook.
30346         * hooks.h (hook_bool_mode_true): Add prototype.
30347
30348         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30349         target hook.
30350         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30351         target hook, set to hook_bool_mode_false.
30352         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30353         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30354         with targetm.small_register_classes_for_mode_p.
30355         (find_reusable_reload): Likewise.
30356         (combine_reloads): Likewise.
30357         * reload1.c (reload_as_needed): Likewise.
30358         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30359         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30360         dead_or_predicable): Likewise.
30361         * regmove.c (optimize_reg_copy_1): Likewise.
30362         * calls.c (prepare_call_address): Likewise.
30363         (precompute_register_parameters): Likewise.
30364
30365         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30366         hook definition.
30367         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30368         implementation of the hook that considers all register classes
30369         small except for SH64.
30370         (sh_override_options): Use the new hook.
30371         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30372         Add prototype.
30373
30374         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30375         hook definition.
30376         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30377         implementation of the hook that considers all register classes
30378         small for THUMB1.
30379         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30380         Add prototype.
30381
30382         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30383         hook definition.
30384         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30385         implementation of the hook that considers all register classes
30386         small for MIPS16.
30387         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30388         Add prototype.
30389
30390         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30391         hook definition.
30392         * config/m32c/m32c.h: Likewise.
30393         * config/pdp11/pdp11.h: Likewise.
30394         * config/avr/avr.h: Likewise.
30395         * config/xtensa/xtensa.h: Likewise.
30396         * config/m68hc11/m68hc11.h: Likewise.
30397         * config/mn10300/mn10300.h: Likewise.
30398         * config/mcore/mcore.h: Likewise.
30399         * config/h8300/h8300.h: Likewise.
30400         * config/bfin/bfin.h: Likewise.
30401
30402         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30403         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30404
30405 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30406
30407         * double-int.h (tree_to_double_int): Remove macro.
30408         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30409         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30410         (tree_to_double_int): New function.
30411         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30412         Move ...
30413         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30414
30415 2010-05-03  Richard Guenther  <rguenther@suse.de>
30416
30417         PR tree-optimization/43971
30418         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30419         constraints in the !flag_delete_null_pointer_checks case.
30420
30421 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30422
30423         PR debug/43972
30424         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30425         result mode matches original rtl mode.
30426
30427 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30428
30429         PR target/43888
30430         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30431
30432 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30433
30434         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30435         when processing flag options.
30436
30437 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30438
30439         * gcov-iov.c (main): Change format string placeholder
30440         from %#08x to 0x%08x.
30441         * genchecksum.c (dosum): Change format string placeholder
30442         from %#02x to 0x%02x.
30443
30444 2010-05-02  Richard Guenther  <rguenther@suse.de>
30445
30446         PR tree-optimization/43879
30447         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30448
30449 2010-05-02  Bruno Haible  <bruno@clisp.org>
30450
30451         * doc/extend.texi (Function Attributes): Fix a typo.
30452
30453 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30454
30455         Revert:
30456         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30457         placeholder from 0x%x to %#x.
30458         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30459         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30460         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30461         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30462         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30463         * config/i386/i386.c (ix86_target_string): Ditto.
30464         * config/i386/i386.c (output_pic_addr_const): Ditto.
30465         (print_operand): Ditto.
30466
30467 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30468
30469         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30470         placeholder from 0x%x to %#x.
30471         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30472         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30473         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30474         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30475         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30476         * optc-gen.awk: Ditto.
30477         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30478         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30479         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30480         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30481
30482 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30483
30484         * target.h (struct calls): Add function_value_regno_p field.
30485         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30486         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30487         * targhooks.c (default_function_value_regno_p): New function.
30488         * targhooks.h (default_function_value_regno_p): Declare function.
30489         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30490         * builtins.c. (apply_result_size): (Ditto.).
30491         * combine.c. (likely_spilled_retval_p): (Ditto.).
30492         * mode-switching.c. Include 'target.h'.
30493         (create_pre_exit): Use function_value_regno_p hook.
30494         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30495         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30496         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30497
30498         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30499         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30500         (ix86_function_value_regno_p): Declare as static, change argument
30501         type to const unsigned int.
30502         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30503
30504 2010-05-01  Richard Guenther  <rguenther@suse.de>
30505
30506         PR tree-optimization/43949
30507         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30508         types.
30509         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30510
30511 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30512
30513         * rtl.h (CONST_DOUBLE_P): Define.
30514         (rtx_to_double_int): Declare.
30515         * emit-rtl.c (rtx_to_double_int): New function.
30516         * dwarf2out.c (insert_double): New function.
30517         (loc_descriptor, add_const_value_attribute): Clean up, use
30518         rtx_to_double_int and insert_double functions.
30519
30520 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30521
30522         * doc/extend.texi (Inline): Add missing return keyword to examples.
30523         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30524         "command-line".
30525
30526 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30527
30528         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30529         the variable part of the offset as well.  Use highest_pow2_factor for
30530         all alignment checks.
30531
30532 2010-04-30  Richard Guenther  <rguenther@suse.de>
30533
30534         PR tree-optimization/43879
30535         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30536         can have pointers.
30537
30538 2010-04-30  Jan Hubicka  <jh@suse.cz>
30539
30540         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30541         varpool.
30542         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30543
30544 2010-04-30  Jan Hubicka  <jh@suse.cz>
30545
30546         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30547         New.
30548         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30549         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30550         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30551         cgraph_node_set_needs_ltrans_p): Remove.
30552
30553 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30554
30555         * sdbout.c: Include vec.h, do not include varray.h.
30556         (deferred_global_decls, sdbout_global_decl,
30557         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30558         * toplev.c: Do not include varray.h.
30559         (dump_memory_report): Do not dump VARRAY statistics.
30560         * gengtype.c (open_base_file): Ignore varray.h.
30561         * Makefile.in: Update for abovementioned changes.
30562         Remove all traces of varray.c and varray.h.
30563         * varray.c: Remove file.
30564         * varray.h: Remove file.
30565
30566 2010-04-30  Jan Hubicka  <jh@suse.cz>
30567
30568         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30569         references.
30570
30571 2010-04-30  Jan Hubicka  <jh@suse.cz>
30572
30573         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30574         needed.
30575
30576 2010-04-30  Richard Guenther  <rguenther@suse.de>
30577
30578         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30579         constraints for CONSTRUCTOR.
30580
30581 2010-04-30  Richard Guenther  <rguenther@suse.de>
30582
30583         PR lto/43946
30584         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30585         first after all lowering passes.
30586
30587 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30588
30589         * toplev.c: Include varray.h for statistics dumping.
30590         * tree.h: Do not declare varray_head_tag.
30591         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30592         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30593         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30594         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30595         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30596         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30597         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30598         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30599         include varray.h.
30600         * Makefile.in: Update for abovementioned changes.
30601
30602 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30603
30604         PR debug/43942
30605         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30606
30607 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30608
30609         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30610         Use this function to do machine-specific conversion.
30611         (picochip_legitimize_reload_address): Likewise.
30612         (picochip_legitimate_address_p): Check valid base register only if
30613         strict.
30614         (picochip_check_conditional_copy): Check for modw only if opnd is
30615         register.
30616         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30617         to call the function in c.
30618         * config/picochip/picochip-protos.h
30619         (picochip_legitimize_reload_address): Define.
30620         * config/picochip/picochip.md (supported_compare1): Define.
30621
30622 2010-04-30  Jan Hubicka  <jh@suse.cz>
30623
30624         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30625         (cgraph_global_info): Remove inlined.
30626         (LTO_cgraph_tag_names): Remove.
30627         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30628         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30629         simplify cgraph tags and document.
30630         (lto_output_node): Use only LTO_cgraph_unavail_node and
30631         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30632         for_functions_valid, global info, process and output flags.
30633         (input_overwrite_node): Initialize estimated stack size and
30634         estimated growth.  Do not read flags we no longer store.
30635         (input_node): Likewise do not read info no longer stored.
30636         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30637         flag.
30638
30639 2010-04-30  Richard Guenther  <rguenther@suse.de>
30640
30641         PR tree-optimization/43879
30642         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30643         handle non-zero initializers.
30644
30645 2010-04-30  Richard Guenther  <rguenther@suse.de>
30646
30647         * builtins.c (fold_builtin_1): Delete free (0).
30648
30649 2010-04-29  Jan Hubicka  <jh@suse.cz>
30650
30651         * gengtype.c (open_base_files): Add lto-streamer.h
30652         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30653         (pass_ipa_cp): GGC collect.
30654         * toplev. (compile_file): Do not output symbols.
30655         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30656         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30657         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30658         * lto-section-in.c: Include ggc.h
30659         (lto_new_in_decl_state): Alloc in GGC.
30660         (lto_delete_in_decl_state): Likewise.
30661         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30662         Collect.
30663
30664 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30665
30666         PR target/42895
30667         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30668         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30669         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30670         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30671         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30672         account only if HONOR_REG_ALLOC_ORDER is not defined.
30673         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30674         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30675
30676 2010-04-29  Jon Grant  <04@jguk.org>
30677
30678         * collect2.c (vflag): Change type from int to bool.
30679         (debug): Likewise.
30680         (helpflag): New global bool.
30681         (main): Set vflag and debug with boolean, not integer truth values.
30682         Accept new "--help" option and output usage text if found.
30683         * collect2.h (vflag): Update prototype.
30684         (debug): Likewise.
30685
30686 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30687
30688         PR bootstrap/43936
30689         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30690
30691 2010-04-29  Richard Guenther  <rguenther@suse.de>
30692
30693         PR bootstrap/43935
30694         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30695         with ATTRIBUTE_UNUSED.
30696
30697 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30698
30699         PR target/43921
30700         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30701         INSN_P with NONDEBUG_INSN_P.
30702         (distance_non_agu_define): Likewise.
30703         (distance_agu_use): Likewise.
30704
30705 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30706
30707         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30708         PR bootstrap/43858
30709         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30710         test_set.
30711
30712 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30713
30714         * plugin.h (invoke_plugin_callbacks): New inline function.
30715         * plugin.c (flag_plugin_added): New global flag.
30716         (add_new_plugin): Initialize above flag.
30717         (invoke_plugin_callbacks): Rename to ...
30718         (invoke_plugin_callbacks_full): ... this.
30719
30720 2010-04-28  Jan Hubicka  <jh@suse.cz>
30721
30722         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30723         (lto_varpool_replace_node): New.
30724         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30725         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30726         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30727         * cgraph.h (varpool_node_ptr): New type.
30728         (varpool_node_ptr): New vector.
30729         (varpool_node_set_def): New structure.
30730         (varpool_node_set): New type.
30731         (varpool_node_set): New vector.
30732         (varpool_node_set_element_def): New structure.
30733         (varpool_node_set_element, const_varpool_node_set_element): New types.
30734         (varpool_node_set_iterator): New type.
30735         (varpool_node): Add prev pointers, add used_from_other_partition,
30736         in_other_partition.
30737         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30738         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30739         varpool_get_node, varpool_remove_node): Declare.
30740         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30741         varpool_node_set_size): New inlines.
30742         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30743         * tree-pass.h (varpool_node_set_def): Forward declare.
30744         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30745         (ipa_write_optimization_summaries): Update prototype.
30746         * ipa-cp.c (ipcp_write_summary): Update.
30747         * ipa-reference.c (ipa_reference_write_summary): Update.
30748         * lto-cgraph.c (lto_output_varpool_node): New static function.
30749         (output_varpool): New function.
30750         (input_varpool_node): New static function.
30751         (input_varpool_1): New function.
30752         (input_cgraph): Input varpool.
30753         * ipa-pure-const.c (pure_const_write_summary): Update.
30754         * lto-streamer-out.c (lto_output): Update, output varpool too.
30755         (write_global_stream): Kill WPA hack.
30756         (produce_asm_for_decls): Update.
30757         (output_alias_pair_p): Handle variables.
30758         (output_unreferenced_globals): Output only needed partition of varpool.
30759         * ipa-inline.c (inline_write_summary): Update.
30760         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30761         cgraph.
30762         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30763         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30764         varpool_node_set_new, varpool_node_set_add,
30765         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30766         debug_varpool_node_set): New functions.
30767         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30768         (execute_one_pass): Process new decls too.
30769         (ipa_write_summaries_2): Pass around vsets.
30770         (ipa_write_summaries_1): Likewise.
30771         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30772         to add.
30773         (ipa_write_optimization_summaries_1): Pass around vsets.
30774         (ipa_write_optimization_summaries): Likewise.
30775         * varpool.c (varpool_get_node): New.
30776         (varpool_node): Update doubly linked lists.
30777         (varpool_remove_node): New.
30778         (dump_varpool_node): More dumping.
30779         (varpool_enqueue_needed_node): Update doubly linked lists.
30780         (decide_is_variable_needed): Kill ltrans hack.
30781         (varpool_finalize_decl): Kill lto hack.
30782         (varpool_assemble_decl): Skip decls in other partitions.
30783         (varpool_assemble_pending_decls): Update doubly linkes lists.
30784         (varpool_empty_needed_queue): Likewise.
30785         (varpool_extra_name_alias): Likewise.
30786         * lto-streamer.c (lto_get_section_name): Add vars section.
30787         * lto-streamer.h (lto_section_type): Update.
30788         (output_varpool, input_varpool): Declare.
30789
30790 2010-04-28  Mike Stump  <mikestump@comcast.net>
30791
30792         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30793
30794 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30795
30796         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30797         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30798         (lto_input_ts_type_tree_pointers): Likewise.
30799         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30800         (lto_output_ts_type_tree_pointers): Likewise.
30801
30802 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30803
30804         Uniquization of constants at the Tree level
30805         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30806         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30807         bit to the end.
30808         (tree_output_constant_def): Declare.
30809         * gimplify.c (gimplify_init_constructor): When using block copy, first
30810         uniquize the constant constructor on the RHS.
30811         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30812         DECL_IN_CONSTANT_POOL flag.
30813         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30814         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30815         constant pool.
30816         (assemble_variable): Deal with symbols belonging to the tree constant
30817         pool.
30818         (get_constant_section): Add ALIGN parameter and simplify.
30819         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30820         (assemble_constant_contents): Use the expression of the VAR_DECL.
30821         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30822         (tree_output_constant_def): New global function.
30823         (mark_constant): Use the expression of the VAR_DECL.
30824         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30825         its expression.
30826         (output_object_block): Likewise and assemble the expression.
30827
30828 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30829
30830         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30831         hash_tree, eq_tree): New tree hash table.
30832         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30833         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30834         lto_orig_address_remove): Reimplement.
30835
30836 2010-04-28  Xinliang David Li  <davidxl@google.com>
30837
30838         PR c/42643
30839         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30840         (compute_uninit_opnds_pos): New function.
30841         (is_non_loop_exit_postdominating): New function.
30842         (compute_control_dep_chain): New function.
30843         (find_pdom): New function.
30844         (convert_control_dep_chain_into_preds): New function.
30845         (find_predicates): New function.
30846         (find_control_equiv_block): New function.
30847         (collect_phi_def_edges): New function.
30848         (find_def_preds): New function.
30849         (find_dom): New function.
30850         (dump_predicates): New function.
30851         (get_cmp_code): New function.
30852         (is_value_included_in): New function.
30853         (find_matching_predicate_in_rest_chains): New function.
30854         (use_pred_not_overlap_with_undef_path_pred): New function.
30855         (is_use_properly_guarded): New function.
30856         (normalize_cond_1): New function.
30857         (is_and_or_or): New function.
30858         (normalize_cond): New function.
30859         (is_gcond_subset_of): New function.
30860         (is_subset_of_any): New function.
30861         (is_or_set_subset_of): New function.
30862         (is_and_set_subset_of): New function.
30863         (is_norm_cond_subset_of): New function.
30864         (is_pred_expr_subset_of): New function.
30865         (is_pred_chain_subset_of): New function.
30866         (is_included_in): New function.
30867         (is_superset_of): New function.
30868         (find_uninit_use): New function.
30869         (warn_uninitialized_phi): New function.
30870         (compute_possibly_undefined_names): New function.
30871         (ssa_undefined_value_p): New function.
30872         (execute_late_warn_uninitialized): New function.
30873         * tree-ssa.c (ssa_undefined_value_p): Removed.
30874         (warn_uninit): Changed to extern.
30875         (warn_uninitialized_phi): Removed.
30876         (warn_uninitialized_vars): Changed to extern.
30877         (execute_late_warn_uninitialized): Removed
30878         * tree-flow.h: Add new prototypes.
30879         * timevar.def: Add new time variable.
30880         * Makefile.in: Add new build file.
30881
30882 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30883
30884         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30885         type if available.
30886
30887 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30888
30889         PR target/22224
30890         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30891
30892 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30893
30894         * cgraph.h (struct cgraph_node): New field indirect_calls.
30895         (struct cgraph_indirect_call_info): New type.
30896         (struct cgraph_edge): Removed field indirect_call. New fields
30897         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30898         (cgraph_create_indirect_edge): Declare.
30899         (cgraph_make_edge_direct): Likewise.
30900         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30901         * ipa-prop.h (struct ipa_param_call_note): Removed.
30902         (struct ipa_node_params): Removed field param_calls.
30903         (ipa_create_all_structures_for_iinln): Declare.
30904         * cgraph.c: Described indirect edges and uids in initial comment.
30905         (cgraph_add_edge_to_call_site_hash): New function.
30906         (cgraph_edge): Search also among the indirect edges, use
30907         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30908         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30909         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30910         site hash.
30911         (initialize_inline_failed): Assign a reason to indirect edges.
30912         (cgraph_create_edge_1): New function.
30913         (cgraph_create_edge): Moved some functionality to
30914         cgraph_create_edge_1.
30915         (cgraph_create_indirect_edge): New function.
30916         (cgraph_edge_remove_callee): Add an assert checking for
30917         non-indirectness.
30918         (cgraph_edge_remove_caller): Special-case indirect edges.
30919         (cgraph_remove_edge): Likewise.
30920         (cgraph_set_edge_callee): New function.
30921         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30922         (cgraph_make_edge_direct): New function.
30923         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30924         the declaration of the call statement matches.
30925         (cgraph_node_remove_callees): Special-case indirect edges.
30926         (cgraph_clone_edge): Likewise.
30927         (cgraph_clone_node): Clone also the indirect edges.
30928         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30929         indirect_call, dump count of indirect_calls edges.
30930         * ipa-prop.c (iinlining_processed_edges): New variable.
30931         (ipa_note_param_call): Create indirect edges instead of
30932         creating notes.  New parameter node.
30933         (ipa_analyze_call_uses): New parameter node, pass it on to
30934         ipa_note_param_call.
30935         (ipa_analyze_stmt_uses): Likewise.
30936         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30937         (print_edge_addition_message): Work on edges rather than on notes.
30938         (update_call_notes_after_inlining): Likewise, renamed to
30939         update_indirect_edges_after_inlining.
30940         (ipa_create_all_structures_for_iinln): New function.
30941         (ipa_free_node_params_substructures): Do not free notes.
30942         (ipa_edge_duplication_hook): Propagate bits within
30943         iinlining_processed_edges bitmap.
30944         (ipa_node_duplication_hook): Do not duplicate notes.
30945         (free_all_ipa_structures_after_ipa_cp): Renamed to
30946         ipa_free_all_structures_after_ipa_cp.
30947         (free_all_ipa_structures_after_iinln): Renamed to
30948         ipa_free_all_structures_after_iinln.
30949         (ipa_write_param_call_note): Removed.
30950         (ipa_read_param_call_note): Removed.
30951         (ipa_write_indirect_edge_info): New function.
30952         (ipa_read_indirect_edge_info): Likewise.
30953         (ipa_write_node_info): Do not stream notes, do stream information
30954         in indirect edges.
30955         (ipa_read_node_info): Likewise.
30956         (lto_ipa_fixup_call_notes): Removed.
30957         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30958         * ipa-inline.c (pass_ipa_inline): Likewise.
30959         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30960         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30961         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30962         is_gimple_call.
30963         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30964         edges.
30965         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30966         (output_cgraph): Stream also indirect edges.
30967         (lto_output_edge): Added capability to stream indirect edges.
30968         (input_edge): Likewise.
30969         (input_cgraph_1): Likewise.
30970         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30971         of indirect edges.
30972
30973 2010-04-28  Richard Guenther  <rguenther@suse.de>
30974
30975         PR tree-optimization/43879
30976         PR tree-optimization/43909
30977         * tree-ssa-structalias.c (struct variable_info): Add
30978         only_restrict_pointers flag.
30979         (new_var_info): Initialize it.  Increment stats.total_vars here.
30980         (create_function_info_for): Do not increment stats.total_vars here.
30981         (get_function_part_constraint): Fix build with C++.
30982         (insert_into_field_list): Remove.
30983         (push_fields_onto_fieldstack): Properly merge fields.
30984         (create_variable_info_for): Split and simplify.
30985         (create_variable_info_for_1): New piece.
30986         (intra_create_variable_infos): Properly make restrict constraints
30987         from parameters.
30988
30989 2010-04-28  Richard Guenther  <rguenther@suse.de>
30990
30991         PR c++/43880
30992         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
30993
30994 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30995             Jan Hubicka  <hubicka@ucw.cz>
30996
30997         * doc/invoke.texi (-Wsuggest-attribute=const,
30998         -Wsuggest-attribute=pure): Document.
30999         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31000         (function_always_visible_to_compiler_p,
31001         suggest_attribute, warn_function_pure, warn_function_const):
31002         New functions.
31003         (check_call): Improve debug info.
31004         (analyze_function): Do not check availability.
31005         (add_new_function): Check availability.
31006         (propagate): Output warnings.
31007         (skip_function_for_local_pure_const): New function.
31008         (local_pure_const): Use it; output warnings.
31009         * common.opt (Wsuggest-attribute=const,
31010         Wsuggest-attribute=pure): New.
31011
31012 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31013
31014         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31015         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31016         or DW_CFA_def_cfa_offset{,_sf}.
31017
31018 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31019
31020         * tree.h: Fix truncated long macros.
31021
31022 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31023
31024         * collect2.c (TARGET_64BIT): Redefine to target's default.
31025         * tlink.c: Likewise.
31026         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31027         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31028         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31029         for underscoring __USER_LABEL_PREFIX__.
31030         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31031         (SUB_LINK_ENTRY32): New.
31032         (SUB_LINK_ENTRY64): New.
31033         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31034         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31035         (SUB_LINK_ENTRY64): New.
31036         (SUB_LINK_ENTRY): New.
31037         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31038         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31039         x64 target is choosen.
31040         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31041         * configure: Regenerated.
31042         * configure.ac (leading-mingw64-underscores): Option added.
31043
31044 2010-04-27  Jan Hubicka  <jh@suse.cz>
31045
31046         * doc/invoke.texi (-fipa-profile): Document.
31047         * opts.c (decode_options): Enable ipa-profile at -O1.
31048         * timevar.def (TV_IPA_PROFILE): Define.
31049         * common.opt (fipa-profile): Add.
31050         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31051         flag for clones.
31052         (cgraph_propagate_frequency): Handle only local ones.
31053         * tree-pass.h (pass_ipa_profile): Declare.
31054         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31055         (pass_ipa_profile): Use TV_IPA_PROFILE.
31056         * ipa.c (ipa_profile): New function.
31057         (gate_ipa_profile): Likewise.
31058         (pass_ipa_profile): New global variable.
31059         * passes.c (pass_ipa_profile): New.
31060
31061 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31062
31063         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31064
31065 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31066
31067         PR middle-end/43812
31068         * ipa.c (dissolve_same_comdat_group_list): New function.
31069         (function_and_variable_visibility): Call
31070         dissolve_same_comdat_group_list when comdat group contains external or
31071         newly local nodes.
31072         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31073         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31074
31075 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31076
31077         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31078         (const_hash_1) <VECTOR_CST>: New case.
31079         (compare_constant) <VECTOR_CST>: Likewise.
31080         <ADDR_EXPR>: Deal with LABEL_REFs.
31081         (copy_constant) <VECTOR_CST>: New case.
31082
31083 2010-04-27  Jan Hubicka  <jh@suse.cz>
31084
31085         * cgraph.c (cgraph_propagate_frequency): New function.
31086         * cgraph.h (cgraph_propagate_frequency): Declare.
31087         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31088         cgraph_propagate_frequency.
31089
31090 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31091
31092         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31093
31094 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31095
31096         PR target/40657
31097         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31098         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31099         here to determine which regs to push and how much stack to reserve.
31100
31101 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31102
31103         * doc/gimple.texi (gimple_statement_with_ops): Remove
31104         addresses_taken field.
31105         (gimple_statement_with_memory_ops): Likewise.
31106
31107 2010-04-27  Jan Hubicka  <jh@suse.cz>
31108
31109         * tree-inline.c (eni_inlining_weights): Remove.
31110         (estimate_num_insns): Special case more builtins.
31111
31112 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31113
31114         PR c/32207
31115         * c-typeck.c (build_binary_op): Move forward check for comparison
31116         pointer with null pointer constant and adjust the diagnostic message.
31117
31118 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31119
31120         PR lto/42776
31121         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31122         binutils supports extended .section directive needed by LTO, or
31123         warn if older binutils found.
31124         (LTO_BINARY_READER): New AC_SUBST'd variable.
31125         (LTO_USE_LIBELF): Likewise.
31126         * config.gcc (lto_binary_reader): New target-specific configure
31127         variable.
31128         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31129         (LTO_USE_LIBELF): Likewise.
31130         * configure: Regenerate.
31131
31132         * collect2.c (is_elf): Rename from this ...
31133         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31134          object files in addition to ELF-formatted ones.
31135         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31136         symbol to be prefixed or not by an extra underscore.
31137
31138         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31139         * config/i386/winnt.c: Also #include lto-streamer.h
31140         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31141         LTO named sections.
31142         (i386_pe_asm_output_aligned_decl_common): Add comment.
31143         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31144
31145 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31146
31147         PR target/43889
31148         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31149         Add missing earlyclobber for second alternative.
31150
31151 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31152
31153         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31154         bits for artificial defs at the top of the block.
31155         * fwprop.c (single_def_use_enter_block): Don't call it.
31156
31157 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31158
31159         PR 43715
31160         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31161         instead of "$gcc_cv_objdump -T".
31162         Use "-undefined dynamic_lookup" on darwin.
31163         * configure: Regenerate.
31164
31165 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31166
31167         PR c/43893
31168         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31169
31170 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31171
31172         * c-parser.c (struct c_token): Move location field up.
31173         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31174         (struct c_declspecs): Convert typespec_word, storage_class, and
31175         default_int_p into bitfields.
31176         (struct c_declarator): Move loc field up.
31177
31178 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31179
31180         * cfgloop.h (struct loop): Move can_be_parallel field up.
31181         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31182         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31183         down.
31184         (struct iv_cand): Convert pos field into a bitfield.
31185         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31186         field up.
31187         (struct _stmt_vec_info): Shuffle fields for better packing.
31188
31189 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31190
31191         * varasm.c (IN_NAMED_SECTION): Remove guard.
31192         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31193         (IN_NAMED_SECTION_P): ...this.
31194         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31195         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31196
31197 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31198
31199         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31200         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31201         of shadowing it.  Fix comments.
31202
31203 2010-04-26  Jan Hubicka  <jh@suse.cz>
31204
31205         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31206         (cgraph_clone_node): Copy function frequency.
31207         * cgraph.h (node_frequency): New enum
31208         (struct cgraph_node): Add.
31209         * final.c (rest_of_clean_state): Update.
31210         * lto-cgraph.c (lto_output_node): Output node frequency.
31211         (input_overwrite_node): Input node frequency.
31212         * tre-ssa-loop-ivopts (computation_cost): Update.
31213         * lto-streamer-out.c (output_function): Do not output function
31214         frequency.
31215         * predict.c (maybe_hot_frequency_p): Update and handle functions
31216         executed once.
31217         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31218         attribute lookup.
31219         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31220         (compute_function_frequency): Set noreturn functions to be executed
31221         once.
31222         (choose_function_section): Update.
31223         * lto-streamer-in.c (input_function): Do not input function frequency.
31224         * function.c (allocate_struct_function): Do not initialize function
31225         frequency.
31226         * function.h (function_frequency): Remove.
31227         (struct function): Remove function frequency.
31228         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31229         (try_update): Update.
31230         * tree-inline.c (initialize_cfun): Do not update function frequency.
31231         * passes.c (pass_init_dump_file): Update.
31232         * i386.c (ix86_compute_frame_layout): Update.
31233         (ix86_pad_returns): Update.
31234
31235 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31236
31237         PR tree-optimization/43833
31238         * tree-vrp.c (range_int_cst_p): New.
31239         (range_int_cst_singleton_p): New.
31240         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31241         when both operands are constants.  Use range_int_cst_p in
31242         BIT_IOR_EXPR case.
31243
31244 2010-04-26  Jan Hubicka  <jh@suse.cz>
31245
31246         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31247
31248 2010-04-26  Richard Guenther  <rguenther@suse.de>
31249
31250         PR lto/43080
31251         * gimple.c (gimple_decl_printable_name): Deal gracefully
31252         with a NULL DECL_NAME.
31253
31254 2010-04-26  Richard Guenther  <rguenther@suse.de>
31255
31256         PR lto/42425
31257         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31258         if emitting debug information and it is either a function
31259         or a namespace decl.
31260
31261 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31262
31263         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31264         determine if the statement is vectorizable, and a macro to access it.
31265         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31266         Skip statements that can't be vectorized. If the analysis fails,
31267         mark the statement as unvectorizable if vectorizing basic block.
31268         (vect_compute_data_refs_alignment): Likewise.
31269         (vect_verify_datarefs_alignment): Skip statements marked as
31270         unvectorizable. Add print.
31271         (vect_analyze_group_access): Skip statements that can't be
31272         vectorized. If the analysis fails, mark the statement as
31273         unvectorizable if vectorizing basic block.
31274         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31275         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31276         generated stmts for SLP.
31277         (new_stmt_vec_info): Initialize the new field.
31278         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31279         statements marked as unvectorizable.
31280
31281 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31282
31283         * c-common.c (flag_isoc1x): New.
31284         (flag_isoc99): Update comment.
31285         * c-common.h (flag_isoc1x): New.
31286         (flag_isoc99): Update comment.
31287         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31288         __<type>_DECIMAL_DIG__.
31289         * c-opts.c (set_std_c1x): New.
31290         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31291         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31292         * c.opt (-std=c1x, -std=gnu1x): New options.
31293         * doc/cpp.texi: Mention -std=c1x.
31294         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31295         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31296         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31297         * doc/standards.texi: Mention C1X.
31298         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31299         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31300         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31301         Define for C1X.
31302
31303 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31304
31305         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31306         placeholder from 0x%x to %#x.
31307         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31308         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31309         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31310         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31311         * config/i386/i386.c (ix86_target_string): Ditto.
31312         (output_pic_addr_const): Ditto.
31313         (print_operand): Ditto.
31314
31315 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31316
31317         * combine.c (find_split_point): Add third argument.  Use it
31318         to find nested multiply-accumulate instructions.  Adjust calls.
31319         (try_combine): Adjust call to find_split_point.
31320
31321 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31322
31323         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31324
31325 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31326
31327         PR tree-optimization/41442
31328         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31329         (fold_binary_loc): Call it.
31330
31331 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31332
31333         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31334         * opts.c (common_handle_option): Allow disabling it.
31335         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31336
31337 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31338
31339         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31340         between modes if both types are integral.
31341
31342 2010-04-23  Richard Guenther  <rguenther@suse.de>
31343
31344         PR tree-optimization/43572
31345         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31346
31347 2010-04-23  Richard Guenther  <rguenther@suse.de>
31348
31349         PR lto/43455
31350         * tree-inline.c (tree_can_inline_p): Also check compatibility
31351         of return types.
31352
31353 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31354
31355         PR tree-optimization/43846
31356         * tree-sra.c (struct access): New flag grp_assignment_read.
31357         (build_accesses_from_assign): Set grp_assignment_read.
31358         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31359         (enum mark_read_status): New type.
31360         (analyze_access_subtree): Propagate grp_assignment_read, create
31361         accesses also if both direct_read and root->grp_assignment_read.
31362
31363 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31364
31365         PR middle-end/43835
31366         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31367         function does not have type attributes.
31368
31369 2010-04-23  Richard Guenther  <rguenther@suse.de>
31370
31371         PR lto/42653
31372         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31373         of FUNCTION_DECLs.
31374
31375 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31376
31377         * sese.h (create_if_region_on_edge): Remove.
31378
31379         * sese.c (create_if_region_on_edge): Make static.
31380
31381         * tree-inline.c: Do not include ggc.h.
31382
31383         * expr.c: Do not include ggc.h.
31384
31385         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31386         dependencies.
31387
31388 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31389
31390         PR target/43744
31391         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31392         in the middle of insns for casesi_worker_2.
31393
31394 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31395
31396         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31397
31398 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31399
31400         PR tree-optimization/43842
31401         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31402         loop unrolling in update of exit phis. Fix comment.
31403         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31404         least two reduction statements in the loop before starting SLP
31405         analysis.
31406
31407 2010-04-22  Nick Clifton  <nickc@redhat.com>
31408
31409         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31410
31411 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31412
31413         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31414         to simplify a + ~a.
31415
31416 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31417
31418         * tree-parloops.c (loop_parallel_p): New argument
31419         parloop_obstack.  Pass it down.
31420         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31421         pass it down, free it.
31422
31423         * tree-loop-linear.c (linear_transform_loops): Pass down
31424         lambda_obstack.
31425
31426         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31427         of type struct obstack *.
31428
31429         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31430         scratch_obstack.  Initialize it, pass down, free it.
31431
31432         * lambda.h (lambda_loop_new): Remove.
31433         (lambda_matrix_new, lambda_matrix_inverse)
31434         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31435         argument of type struct obstack *.
31436
31437         * lambda-trans.c (lambda_trans_matrix_new): New argument
31438         lambda_obstack.  Pass it down, use obstack allocation for ret.
31439         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31440         it down.
31441
31442         * lambda-mat.c (lambda_matrix_get_column)
31443         (lambda_matrix_project_to_null): Remove.
31444         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31445         allocation for mat.
31446         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31447         lambda_obstack.
31448
31449         * lambda-code.c (lambda_loop_new): New function.
31450         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31451         (lambda_compute_auxillary_space, lambda_compute_target_space)
31452         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31453         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31454         (build_access_matrix): New argument lambda_obstack.  Use obstack
31455         allocation for am.
31456         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31457         argument lambda_obstack.  Pass it down.
31458
31459 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31460
31461         * optabs.h (expand_widening_mult): Declare.
31462
31463 2010-04-22  Richard Guenther  <rguenther@suse.de>
31464
31465         PR tree-optimization/43845
31466         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31467         lookup the CALL_EXPR function and arguments.
31468
31469 2010-04-22  Nick Clifton  <nickc@redhat.com>
31470
31471         * config/stormy16/stormy16.c
31472         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31473         * config/stormy16/stormy16.h: Tidy up formatting.
31474         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31475         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31476         (ineqbranchsi): Delete pattern.
31477         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31478         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31479         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31480         stormy16-lib2-ucmpsi2.c.
31481
31482 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31483
31484         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31485         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31486         extra set merge_set_noclobber, and use it to relax the final test
31487         slightly.
31488         * df.h (df_simulate_find_noclobber_defs): Declare.
31489         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31490         conditional defs.
31491         (df_simulate_find_noclobber_defs): New function.
31492
31493 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31494
31495         * config/i386/i386.md: Use {} around multi-line preparation statements.
31496
31497 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31498
31499         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31500         (process_init_element): New argument of type struct obstack *.
31501
31502         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31503         (set_init_index, set_init_label, set_nonincremental_init)
31504         (set_nonincremental_init_from_string, find_init_member)
31505         (output_init_element, output_pending_init_elements)
31506         (process_init_element): New argument braced_init_obstack.  Pass it
31507         down.
31508         (push_range_stack, add_pending_init): New argument
31509         braced_init_obstack.  Use obstack allocation.
31510
31511         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31512         braced_init_obstack.  Pass it down.
31513         (c_parser_braced_init): New variables ret, braced_init_obstack.
31514         Initialize obstack, pass it down and finally free it.
31515
31516 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31517
31518         PR middle-end/29274
31519         * tree-pass.h (pass_optimize_widening_mul): Declare.
31520         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31521         gate_optimize_widening_mul): New static functions.
31522         (pass_optimize_widening_mul): New.
31523         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31524         <case MULT_EXPR>: Remove support for widening multiplies.
31525         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31526         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31527         simplify_gen_unary rather than directly building extensions.
31528         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31529         WIDEN_MULT_EXPR.
31530         * expmed.c (expand_widening_mult): New function.
31531         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31532
31533 2010-04-21  Jan Hubicka  <jh@suse.cz>
31534
31535         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31536         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31537         * lto-wpa-fixup.c: Remove.
31538         * Makefile.in (lto-wpa-fixup.o): Remove.
31539         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31540         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31541         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31542
31543 2010-04-21  Jan Hubicka  <jh@suse.cz>
31544
31545         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31546         add write_optimization_summary, read_optimization_summary.
31547         (ipa_write_summaries_of_cgraph_node_set): Remove.
31548         (ipa_write_optimization_summaries): Declare.
31549         (ipa_read_optimization_summaries): Declare.
31550         * ipa-cp.c (pass_ipa_cp): Update.
31551         * ipa-reference.c (pass_ipa_reference): Update.
31552         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31553         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31554         Update.
31555         * ipa-inline.c (pass_ipa_inline): Update.
31556         * ipa.c (pass_ipa_whole_program): Update.
31557         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31558         * passes.c (ipa_write_summaries_1): Do not test wpa.
31559         (ipa_write_optimization_summaries_1): New.
31560         (ipa_write_optimization_summaries): New.
31561         (ipa_read_summaries): Do not test ltrans.
31562         (ipa_read_optimization_summaries_1): New.
31563         (ipa_read_optimization_summaries): New.
31564
31565 2010-04-21  Jan Hubicka  <jh@suse.cz>
31566
31567         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31568         for boundary nodes.
31569         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31570
31571 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31572
31573         PR debug/40040
31574         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31575         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31576
31577 2010-04-21  Jan Hubicka  <jh@suse.cz>
31578
31579         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31580
31581 2010-04-21  Jan Hubicka  <jh@suse.cz>
31582
31583         * varpool.c (decide_is_variable_needed): Variable is always needed
31584         during ltrans.
31585
31586 2010-04-21  Jan Hubicka  <jh@suse.cz>
31587
31588         * opts.c (decode_options): Enable pure-const pass for whopr.
31589
31590 2010-04-21  Jan Hubicka  <jh@suse.cz>
31591
31592         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31593         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31594         at WPA dumping.
31595         (cgraph_decide_inlining): Do not expect callee to be removed in all
31596         cases.
31597
31598 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31599
31600         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31601
31602 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31603
31604         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31605         amdfam10_decode attributes.
31606
31607 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31608
31609         PR middle-end/43570
31610         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31611         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31612         (lower_copyprivate_clauses): Use private var in outer
31613         context instead of original var.  Make sure the types
31614         are correct for VLAs.
31615
31616 2010-04-21  Richard Guenther  <rguenther@suse.de>
31617
31618         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31619         to non-pointer objects.
31620
31621 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31622
31623         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31624         last chain entry if it starts with the still current label.
31625         (add_location_or_const_value_attribute): Check that
31626         loc_list->first->next is NULL instead of comparing ->first with ->last.
31627         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31628         to add_var_loc_to_decl.
31629
31630         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31631         >= 4 add also address size and segment size fields into CIE header.
31632
31633         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31634         long as address size is the same as sizeof (void *) and
31635         segment size is 0.
31636         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31637         address size or segment size is unexpected, return DW_EH_PE_omit.
31638         (classify_object_over_fdes): If get_cie_encoding returned
31639         DW_EH_PE_omit, return -1.
31640         (init_object): If classify_object_over_fdes returned -1,
31641         pretend there were no FDEs at all.
31642
31643 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31644
31645         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31646         bswap{si,di}2 using SWI48 mode iterator.
31647         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31648         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31649         set modrm attribute of bswap insn to 0 and remove length attribute.
31650         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31651         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31652         set mode attribute to <MODE> and remove length attribute.
31653
31654 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31655
31656         PR rtl-optimization/43520
31657         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31658         zero available registers.
31659
31660 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31661
31662         * builtins.c (fold_builtin_cproj): Fold more cases.
31663
31664 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31665
31666         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31667         (fold_builtin_1): Fold builtin cproj.
31668         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31669         Use ATTR_CONST_NOTHROW_LIST.
31670
31671 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31672
31673         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31674         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31675         ffsi2_no_cmove for !TARGET_CMOVE.
31676         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31677         (ffssi2): Remove expander.
31678         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31679         mode iterator.
31680         (ctz<mode>2): Ditto from ctz{si,di}2.
31681         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31682         mode iterator.
31683         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31684         mode iterator.
31685
31686 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31687
31688         * dwarf2out.c (AT_linkage_name): Define.
31689         (clone_as_declaration): Handle DW_AT_linkage_name.
31690         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31691         of DW_AT_MIPS_linkage_name.
31692         (move_linkage_attr): Likewise.
31693         (dwarf2out_finish): Likewise.
31694
31695 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31696
31697         PR middle-end/41952
31698         * fold-const.c (fold_comparison): New folding rule.
31699
31700 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31701
31702         * double-int.h (double_int_setbit): Declare.
31703         * double-int.c (double_int_setbit): New function.
31704         * rtl.h (immed_double_int_const): Declare.
31705         * emit-rtl.c (immed_double_int_const): New function.
31706         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31707         and immed_double_int_const functions.
31708         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31709         expand_copysign_bit): (Ditto.).
31710         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31711         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31712         * dojump.c (prefer_and_bit_test): (Ditto.).
31713         * expr.c (convert_modes, reduce_to_bit_field_precision,
31714         const_vector_from_tree): (Ditto.).
31715         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31716
31717 2010-04-20  Jan Hubicka  <jh@suse.cz>
31718
31719         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31720         (dump_cgraph_node): Dump new flags.
31721         * cgraph.h (struct cgraph_node): Add flags
31722         reachable_from_other_partition and in_other_partition.
31723         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31724         other partition can not be removed.
31725         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31726         the other partition must be output; silence sanity checking on
31727         leaking functions bodies from other paritition.
31728         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31729         (lto_output_node): Output new flags; do not sanity check that inline
31730         clones are output; drop lto_forced_extern_inline_p code; do not mock
31731         visibility flags at partition boundaries.
31732         (add_node_to): New function.
31733         (output_cgraph): Use it to sort functions so masters appear before
31734         clones.
31735         (input_overwrite_node): Input new flags.
31736         * passes.c (ipa_write_summaries): Do not call
31737         lto_new_extern_inline_states.
31738         * lto-section-out.c (forced_extern_inline,
31739         lto_new_extern_inline_states lto_delete_extern_inline_states,
31740         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31741         * lto-streamer.h (lto_new_extern_inline_states,
31742         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31743         lto_forced_extern_inline_p): Kill.
31744
31745 2010-04-20  Richard Guenther  <rguenther@suse.de>
31746
31747         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31748         from vars that can have pointers.
31749         (process_constraint): Dump useless constraints.
31750
31751 2010-04-20  Richard Guenther  <rguenther@suse.de>
31752
31753         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31754         (dump_sa_points_to_info): Remove asserts.
31755         (init_base_vars): nothing_id isn't an escape point nor does it
31756         have pointers.
31757
31758 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31759
31760         * tree.h (TYPE_REF_IS_RVALUE): Define.
31761         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31762         should_move_die_to_comdat, prune_unused_types_walk): Handle
31763         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31764         (modified_type_die, gen_reference_type_die): Emit
31765         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31766         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31767
31768 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31769
31770         PR target/43635
31771         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31772         calls for -fpic -m31 if they have been sibcall optimized.
31773
31774 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31775
31776         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31777         ar.lc fixed and call-used.
31778
31779         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31780
31781 2010-04-19  Jan Hubicka  <jh@suse.cz>
31782
31783         * opts.c (decode_options): Disable whpr incompatible passes.
31784         * lto/lto.c (lto_1_to_1_map): Skip clones.
31785         (read_cgraph_and_symbols): Do not mark everything as needed.
31786         (do_whole_program_analysis): Do map only after optimizing;
31787         set proper cgraph_state; use passmanager.
31788
31789 2010-04-19  DJ Delorie  <dj@redhat.com>
31790
31791         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31792         POINTER_PLUS_EXPR and fix them.
31793
31794 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31795
31796         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31797         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31798         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31799         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31800         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31801         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31802         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31803         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31804         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31805         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31806         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31807
31808 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31809
31810         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31811         (check_cond_move_block): Likewise.
31812         (cond_move_process_if_block): Likewise.
31813         (noce_find_if_block): Improve formatting.
31814         (find_if_header): Pass 0 to memset and tweak conditions.
31815         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31816
31817 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31818
31819         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31820         for -gdwarf-4.
31821
31822         PR middle-end/43337
31823         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31824         with non-local decl doesn't need chain.
31825
31826 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31827
31828         * ira-color.c (allocno_reload_assign): Avoid accumulating
31829         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31830
31831 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31832
31833         * gimple.h (create_tmp_reg): Declare.
31834         * gimplify.c (create_tmp_reg): New function.
31835         (gimplify_return_expr): Use create_tmp_reg.
31836         (gimplify_omp_atomic): Likewise.
31837         (gimple_regimplify_operands): Likewise.
31838         * tree-dfa.c (make_rename_temp): Likewise.
31839         * tree-predcom.c (predcom_tmp_var): Likewise.
31840         (reassociate_to_the_same_stmt): Likewise.
31841         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31842         (get_replaced_param_substitute): Likewise.
31843         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31844         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31845         * tree-ssa-pre.c (get_representative_for): Likewise.
31846         (create_expression_by_pieces): Likewise.
31847         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31848         (create_tailcall_accumulator): Likewise.
31849
31850 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31851
31852         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31853         new_stmt.
31854         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31855
31856 2010-04-19  Richard Guenther  <rguenther@suse.de>
31857
31858         PR tree-optimization/43796
31859         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31860         from SCEV in the lattice.
31861         (vrp_visit_phi_node): Dump change.
31862
31863 2010-04-19  Richard Guenther  <rguenther@suse.de>
31864
31865         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31866         * configure: Re-generated.
31867
31868 2010-04-19  Richard Guenther  <rguenther@suse.de>
31869
31870         PR tree-optimization/43783
31871         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31872         constant ARRAY_REF operands two and three if possible.
31873
31874 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31875
31876         PR target/43766
31877         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31878
31879 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31880
31881         PR target/43662
31882         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31883
31884 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31885
31886         PR tree-optimization/37027
31887         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31888         and macro to access it.
31889         (vectorizable_reduction): Add argument.
31890         (vect_get_slp_defs): Likewise.
31891         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31892         statements for possible use in SLP.
31893         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31894         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31895         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31896         add new argument.
31897         (vectorizable_reduction): Likewise.
31898         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31899         vect_get_slp_defs.
31900         (vectorizable_type_demotion, vectorizable_type_promotion,
31901         vectorizable_store): Likewise.
31902         (vect_analyze_stmt): Update call to vectorizable_reduction.
31903         (vect_transform_stmt): Likewise.
31904         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31905         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31906         from different interleaving chains in same node.
31907         (vect_slp_rearrange_stmts): New function.
31908         (vect_supported_load_permutation_p): Allow load permutations for
31909         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31910         inside SLP nodes if necessary.
31911         (vect_analyze_slp_instance): Handle reductions.
31912         (vect_analyze_slp): Try to build SLP instances originating from groups
31913         of reductions.
31914         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31915         (vect_get_constant_vectors): Create initial vectors for reductions
31916         according to reduction code. Add new argument.
31917         (vect_get_slp_defs): Add new argument, pass it to
31918         vect_get_constant_vectors.
31919         (vect_schedule_slp_instance): Remove SLP tree root statements.
31920
31921 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31922
31923         * tree.h (ENUM_IS_SCOPED): Define.
31924         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31925         for ENUM_IS_SCOPED enums.
31926
31927 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31928
31929         * fold-const.c (fold_comparison): Use ssizetype.
31930         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31931         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31932         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31933         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31934
31935         * tree.h (initialize_sizetypes): Remove parameter.
31936         (build_common_tree_nodes): Remove second parameter.
31937         * stor-layout.c (initialize_sizetypes): Remove parameter.
31938         Always create an unsigned type.
31939         (set_sizetype): Assert that the passed type is unsigned and simplify.
31940         * tree.c (build_common_tree_nodes): Remove second parameter.
31941         Adjust call to initialize_sizetypes.
31942         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31943         build_common_tree_nodes.
31944
31945 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31946
31947         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31948
31949 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31950
31951         PR tree-optimization/43771
31952         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31953         load permutation doesn't have gaps.
31954
31955 2010-04-18  Jan Hubicka  <jh@suse.cz>
31956
31957         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31958         (sse_prologue_save_insn expander): Use new pattern.
31959         (sse_prologue_save_insn1): New pattern and splitter.
31960         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31961         blocks.
31962         * i386.c (setup_incoming_varargs_64): Do not compute jump
31963         destination here.
31964         (ix86_gimplify_va_arg): Update alignment needed.
31965         (ix86_local_alignment): Do not align all local arrays to 128bit.
31966
31967 2010-04-17  Jan Hubicka  <jh@suse.cz>
31968
31969         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31970
31971 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31972
31973         * arm.md (negdi2): Remove redundant code to force values into a
31974         register.
31975
31976 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31977
31978         * arm/bpabi.S: Add EABI alignment attributes to objects.
31979         * arm/bpabi-v6m.S: Likewise.
31980         * arm/crti.asm: Likewise.
31981         * arm/crtn.asm: Likewise.
31982         * arm/lib1funcs.asm: Likewise.
31983         * arm/libunwind.S: Likewise.
31984
31985 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31986
31987         * arm-protos.h (tune_params): New structure.
31988         * arm.c (current_tune): New variable.
31989         (arm_constant_limit): Delete.
31990         (struct processors): Add pointer to the tune parameters.
31991         (arm_slowmul_tune): New tuning option.
31992         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
31993         (all_cores): Adjust to pick up the tuning model.
31994         (arm_constant_limit): New function.
31995         (arm_override_options): Select the appropriate tuning model.  Delete
31996         initialization of arm_const_limit.
31997         (arm_split_constant): Use the new constant-limit model.
31998         (arm_rtx_costs): Pick up the current tuning model.
31999         * arm.md (is_strongarm, is_xscale): Delete.
32000         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32001         for Xscale variant architectures.
32002         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32003
32004 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32005
32006         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32007         can_shift.
32008         (arm_rtx_costs_1): Remove unused variable extra_cost.
32009         (arm_unwind_emit_set): Use variable offset.
32010         (thumb1_output_casesi): Remove unused variable flags.
32011
32012 2010-04-16  Jeff Law  <law@redhat.com>
32013
32014         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32015         needing assignment rather than doing a two-phase assignment.  Remove
32016         unused variable 'm'.
32017
32018 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32019
32020         PR bootstrap/43767
32021         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32022
32023 2010-04-16  Doug Kwan  <dougkwan@google.com>
32024
32025         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32026         (next_operand_entry_id): New static variable.
32027         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32028         (add_to_ops_vec): Assigned unique ID to operand entry.
32029         (struct oecount_s): New field ID.
32030         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32031         (undistribute_ops_list): Assign unique IDs to oecounts.
32032         (init_reassoc): reset next_operand_entry_id.
32033
32034 2010-04-16  Doug Kwan  <dougkwan@google.com>
32035
32036         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32037         missing left parenthesis.
32038
32039 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32040
32041         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32042         *btdi_rex64 using SWI48 mode iterator.
32043         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32044         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32045         *jcc_btdi_mask_rex64.
32046
32047 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32048
32049         * double-int.h (tree_to_double_int): Convert to macro.
32050         * double-int.c (tree_to_double_int): Remove.
32051
32052 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32053
32054         PR debug/43762
32055         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32056         with want_address 2 and in case a single element list might be
32057         possible, call it again with want_address 0.
32058
32059 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32060
32061         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32062         case 'W' print operands for HI mode.
32063         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32064         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32065         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32066         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32067
32068         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32069
32070         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32071         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32072         #xx:3 and #xx:4 mode.
32073
32074         * config/h8300/h8300.md (inverted load with HImode dest): Add
32075         support for H8300SX.
32076
32077         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32078         satisfy 'U' constraint.
32079
32080 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32081
32082         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32083         * configure: Regenerate.
32084         * config.in: Regenerate.
32085         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32086         works.
32087
32088 2010-04-16  Richard Guenther  <rguenther@suse.de>
32089
32090         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32091         (struct tree_decl_common): ... here.
32092         (DECL_PT_UID): Adjust.
32093         (SET_DECL_PT_UID): Likewise.
32094         (DECL_PT_UID_SET_P): Likewise.
32095
32096 2010-04-16  Richard Guenther  <rguenther@suse.de>
32097
32098         PR tree-optimization/43572
32099         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32100         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32101         * tree-flow.h (is_call_clobbered): Remove.
32102         * tree-flow-inline.h (is_call_clobbered): Likewise.
32103         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32104         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32105         (execute_return_slot_opt): Adjust.
32106         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32107         check for call clobbered vars here.
32108         (find_tail_calls): Move tailcall verification to the
32109         proper place.
32110
32111 2010-04-16  Diego Novillo  <dnovillo@google.com>
32112
32113         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32114
32115 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32116
32117         PR target/40603
32118         * config/arm/arm.md (cbranchqi4): New pattern.
32119         * config/arm/predicates.md (const0_operand,
32120         cbranchqi4_comparison_operator): New predicates.
32121
32122 2010-04-16  Richard Guenther  <rguenther@suse.de>
32123
32124         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32125         (dump_gimple_stmt): Likewise.
32126
32127 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32128
32129         * recog.h (struct recog_data): New field is_operator.
32130         (struct insn_operand_data): New field is_operator.
32131         * recog.c (extract_insn): Set recog_data.is_operator.
32132         * genoutput.c (output_operand_data): Emit code to set the
32133         is_operator field.
32134         * reload.c (find_reloads): Use it rather than testing for an
32135         empty constraint string.
32136
32137         PR target/41514
32138         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32139         If the previous insn is a cbranchsi4_insn with the same arguments,
32140         omit the compare instruction.
32141
32142         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32143         register, inputs must be low registers and we need a low register
32144         scratch.  Handle alternative 2 like alternative 3.
32145
32146 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32147
32148         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32149         don't call get_addr on both.  If one expression is a VALUE and
32150         the other a REG, check VALUE's locs if the REG isn't among them.
32151
32152 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32153
32154         * config/sh/sh.h (sh_frame_pointer_required): New function.
32155         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32156         (flag_omit_frame_pointer) Set.
32157         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32158         (rounded_frame_size): Adjust size with outgoing_args_size.
32159         (sh_set_return_address): Must return from stack pointer.
32160         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32161         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32162         (ACCUMULATE_OUTGOING_ARGS): Define.
32163         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32164         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32165
32166 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32167
32168         PR target/43471
32169         * config/sh/sh.c (sh_legitimize_reload_address): Use
32170         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32171         Remove a unneeded check for offset_base.
32172
32173 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32174
32175         * configure: Regenerated.
32176
32177 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32178
32179         * config/s390/s390.c (s390_call_save_register_used): Switch back
32180         to HARD_REGNO_NREGS.
32181
32182 2010-04-15  Richard Guenther  <rguenther@suse.de>
32183
32184         * alias.c (alias_set_subset_of): Handle alias-set zero
32185         child properly.
32186
32187 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32188             Julian Brown  <julian@codesourcery.com>
32189
32190         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32191         alternatives according to use of high and low regs.
32192         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32193         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32194         optimizing for size on Thumb-2.
32195
32196 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32197
32198         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32199
32200 2010-04-15  Richard Guenther  <rguenther@suse.de>
32201
32202         * tree-ssa-structalias.c (struct variable_info): Add
32203         is_fn_info flag.
32204         (new_var_info): Initialize it.
32205         (dump_constraints): Support printing last added constraints.
32206         (debug_constraints): Adjust.
32207         (dump_constraint_graph): Likewise.
32208         (make_heapvar_for): Check for NULL cfun.
32209         (get_function_part_constraint): New function.
32210         (get_fi_for_callee): Likewise.
32211         (find_func_aliases): Properly implement IPA PTA constraints.
32212         (process_ipa_clobber): New function.
32213         (find_func_clobbers): Likewise.
32214         (insert_into_field_list_sorted): Remove.
32215         (create_function_info_for): Properly allocate vars for IPA mode.
32216         Do not use insert_into_field_list_sorted.
32217         (create_variable_info_for): Properly generate constraints for
32218         global vars in IPA mode.
32219         (dump_solution_for_var): Always dump the solution.
32220         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32221         (find_what_var_points_to): Adjust.
32222         (pt_solution_set): Change.
32223         (pt_solution_ior_into): New function.
32224         (pt_solution_empty_p): Export.
32225         (pt_solution_includes_global): Adjust.
32226         (pt_solution_includes_1): Likewise.
32227         (pt_solutions_intersect_1): Likewise.
32228         (dump_sa_points_to_info): Check some invariants.
32229         (solve_constraints): Move constraint dumping ...
32230         (compute_points_to_sets): ... here.
32231         (ipa_pta_execute): ... and here.
32232         (compute_may_aliases): Do not re-compute points-to info
32233         locally if IPA info is available.
32234         (ipa_escaped_pt): New global var.
32235         (ipa_pta_execute): Properly implement IPA PTA.
32236         * tree-into-ssa.c (dump_decl_set): Support dumping
32237         decls not in referenced-vars.
32238         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32239         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32240         (dump_points_to_solution): Likewise.
32241         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32242         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32243         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32244         (copy_decl_to_var): Copy DECL_PT_UID.
32245         (copy_result_decl_to_var): Likewise.
32246         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32247         (copy_node_stat): Copy it.
32248         * tree.h (DECL_PT_UID): New macro.
32249         (SET_DECL_PT_UID): Likewise.
32250         (DECL_PT_UID_SET_P): Likewise.
32251         (struct tree_decl_minimal): Add pt_uid member.
32252         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32253         (pt_solution_empty_p): Declare.
32254         (pt_solution_set): Adjust.
32255         (ipa_escaped_pt): Declare.
32256         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32257         * gimple-pretty-print.c (pp_points_to_solution): New function.
32258         (dump_gimple_call): Dump call clobber/use information.
32259         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32260         * tree-pass.h (TDF_ALIAS): New dump option.
32261         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32262         * doc/invoke.texi (-fipa-pta): Update documentation.
32263
32264 2010-04-15  Richard Guenther  <rguenther@suse.de>
32265
32266         * Makefile.in (OBJS-common): Add gimple-fold.o.
32267         (gimple-fold.o): New rule.
32268         * tree.h (maybe_fold_offset_to_reference,
32269         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32270         prototypes ...
32271         * gimple.h: ... here.
32272         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32273         may_propagate_address_into_dereference): Move prototypes ...
32274         * gimple.h: ... here.
32275         * tree-ssa-ccp.c (get_symbol_constant_value,
32276         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32277         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32278         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32279         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32280         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32281         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32282         gimplify_and_update_call_from_tree): Move ...
32283         * gimple-fold.c: ... here.  New file.
32284         (ccp_fold_builtin): Rename to ...
32285         (gimple_fold_builtin): ... this.
32286         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32287
32288 2010-04-15  Richard Guenther  <rguenther@suse.de>
32289
32290         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32291         fit_double_type, force_fit_type_double, add_double_with_sign,
32292         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32293         lrotate_double, rrotate_double, div_and_round_double): Move ...
32294         * double-int.c: ... here.
32295         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32296         add_double, neg_double, mul_double_with_sign, mul_double,
32297         lshift_double, rshift_double, lrotate_double, rrotate_double,
32298         div_and_round_double): Move prototypes ...
32299         * double-int.h: ... here.
32300
32301 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32302
32303         PR target/43742
32304         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32305         matching constraints to ensure inputs match the output.
32306
32307 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32308
32309         PR target/43742
32310         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32311         in an input-only operand.
32312
32313 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32314
32315         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32316         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32317         (double_int_negative_p): Convert to static inline function.
32318         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32319         (double_int_negative_p): Remove.
32320         * tree.h (lshift_double, rshift_double):
32321         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32322         * fold-const.c (fold_convert_const_int_from_real,
32323         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32324         (lshift_double): Change type of arith argument to bool.
32325         (rshift_double): Change type of arith argument to bool. Correct
32326         comment.
32327         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32328
32329 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32330
32331         PR target/21803
32332         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32333         at the start and end of the then/else blocks, and omit them from the
32334         conversion.
32335         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32336         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32337         (flow_find_head_matching_sequence): New function.
32338         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32339         * basic-block.h (flow_find_cross_jump,
32340         flow_find_head_matching_sequence): Declare functions.
32341
32342 2010-04-14  Jason Merrill  <jason@redhat.com>
32343
32344         PR c++/36625
32345         * c-common.c (attribute_takes_identifier_p): New fn.
32346         * c-common.h: Declare it.
32347
32348 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32349
32350         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32351         splitter condition.
32352         (*udivmod<mode>4): Ditto.
32353
32354 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32355
32356         * config/i386/i386.md (maxmin_int): Rename code attribute from
32357         maxminiprefix and update all users.
32358         (maxmin_float): Ditto from maxminfprefix.
32359         (logic): Ditto from logicprefix.
32360         (absneg_mnemonic): Ditto from absnegprefix.
32361         * config/i386/mmx.md: Update all users of maxminiprefix,
32362         maxminfprefix and logicprefix for rename.
32363         * config/i386/sse.md: Ditto.
32364         * config/i386/sync.md (sync_<code><mode>): Update for
32365         logicprefix rename.
32366
32367 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32368
32369         PR 42966
32370         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32371         warnings converted to errors.
32372
32373 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32374
32375         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32376         used insn_type variable.
32377         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32378         to avoid set-but-not-used warning.
32379
32380 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32381
32382         * df-core.c (df_ref_debug): Change format string placeholder
32383         from 0x%x to %#x.
32384         * dwarf2asm.c (dw2_asm_output_data_raw,
32385         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32386         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32387         * dwarf2out.c (output_cfi, output_cfi_directive,
32388         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32389         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32390         Ditto.
32391         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32392         * print-rtl.c (print_rtx): Ditto.
32393
32394 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32395
32396         PR middle-end/42694
32397         * builtins.c (expand_builtin_pow_root): New function to expand pow
32398         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32399         series of sqrt and cbrt calls under -ffast-math.
32400         (expand_builtin_pow): Call it.
32401
32402 2010-04-14  Michael Matz  <matz@suse.de>
32403
32404         PR tree-optimization/42963
32405         * tree-cfg.c (touched_switch_bbs): New static variable.
32406         (group_case_labels_stmt): New function broken out from ...
32407         (group_case_labels): ... here, use the above.
32408         (start_recording_case_labels): Allocate touched_switch_bbs.
32409         (end_recording_case_labels): Deallocate it, call
32410         group_case_labels_stmt.
32411         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32412
32413 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32414
32415         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32416         from insn template.
32417
32418 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32419
32420         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32421
32422 2010-04-13  Jan Hubicka  <jh@suse.cz>
32423
32424         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32425         of optimized out static functions.
32426         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32427         cost computation.  Also sanity check for overflows.
32428         (update_caller_keys): Update cgraph_edge_badness call; properly
32429         update fibheap and sanity check that it is up to date.
32430         (add_new_edges_to_heap): Update cgraph_edge_badness.
32431         (cgraph_decide_inlining_of_small_function): Likewise;
32432         add sanity checking that badness in heap is up to date;
32433         improve dumping of reason; Update badness of calls to the
32434         offline copy of function currently inlined; dump badness
32435         of functions not inlined because of unit growth limits.
32436
32437 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32438
32439         PR middle-end/32628
32440         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32441         because of sign-extension change when converting to sizetype here...
32442         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32443
32444         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32445         the folding to constants.  Remove redundant final conversion.
32446         (fold_binary) <associate>: Do not associate if the re-association of
32447         constants alone overflows.
32448         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32449         to the end of the list.
32450         (multiple_of_p) <COND_EXPR>: New case.
32451
32452 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32453
32454         * opt-functions.awk (opt_sanitized_name): New.
32455         (opt_enum): New.
32456         * optc-gen.awk: Use it
32457         * opth-gen.awk: Use it.
32458
32459 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32460
32461         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32462         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32463         children.  Call replace_uses_with_default_def_ssa_name to handle
32464         SSA_NAES on lhs.
32465
32466 2010-04-13  Michael Matz  <matz@suse.de>
32467
32468         PR middle-end/43730
32469         * builtins.c (expand_builtin_interclass_mathfn): Also create
32470         a register if the predicate doesn't match.
32471
32472 2010-04-13  Diego Novillo  <dnovillo@google.com>
32473
32474         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32475         * c-pch.c: Include timevar.h.
32476         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32477         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32478         * ggc-common.c: Include timevar.h.
32479         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32480         * timevar.def (TV_PCH_SAVE): Define.
32481         (TV_PCH_CPP_SAVE): Define.
32482         (TV_PCH_PTR_REALLOC): Define.
32483         (TV_PCH_PTR_SORT): Define.
32484         (TV_PCH_RESTORE): Define.
32485         (TV_PCH_CPP_RESTORE): Define.
32486
32487 2010-04-13  Michael Matz  <matz@suse.de>
32488
32489         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32490         into MINUS_EXPRs.
32491         (can_reassociate_p): New function.
32492         (break_up_subtract_bb, reassociate_bb): Use it.
32493
32494 2010-04-13  Richard Guenther  <rguenther@suse.de>
32495
32496         PR bootstrap/43737
32497         * builtins.c (c_readstr): Fix assert.
32498
32499 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32500
32501         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32502         when generating cltd insn.
32503
32504         (*ashl<mode>3_1): Remove special handling for register operand 2.
32505         (*ashlsi3_1_zext): Ditto.
32506         (*ashlhi3_1): Ditto.
32507         (*ashlhi3_1_lea): Ditto.
32508         (*ashlqi3_1): Ditto.
32509         (*ashlqi3_1_lea): Ditto.
32510         (*<shiftrt_insn><mode>3_1): Ditto.
32511         (*<shiftrt_insn>si3_1_zext): Ditto.
32512         (*<shiftrt_insn>qi3_1_slp): Ditto.
32513         (*<rotate_insn><mode>3_1): Ditto.
32514         (*<rotate_insn>si3_1_zext): Ditto.
32515         (*<rotate_insn>qi3_1_slp): Ditto.
32516
32517 2010-04-13  Richard Guenther  <rguenther@suse.de>
32518
32519         * tree-ssa-structalias.c (callused_id): Remove.
32520         (call_stmt_vars): New.
32521         (get_call_vi): Likewise.
32522         (lookup_call_use_vi): Likewise.
32523         (lookup_call_clobber_vi): Likewise.
32524         (get_call_use_vi): Likewise.
32525         (get_call_clobber_vi): Likewise.
32526         (make_transitive_closure_constraints): Likewise.
32527         (handle_const_call): Adjust to do per-call call-used handling.
32528         (handle_pure_call): Likewise.
32529         (find_what_var_points_to): Remove general callused handling.
32530         (init_base_vars): Likewise.
32531         (init_alias_vars): Initialize call_stmt_vars.
32532         (compute_points_to_sets): Process call-used and call-clobbered
32533         vars for call statements.
32534         (delete_points_to_sets): Free call_stmt_vars.
32535
32536 2010-04-13  Richard Guenther  <rguenther@suse.de>
32537
32538         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32539         Only add RW dependence for dependence distance zero.
32540         Adjust maximal vectorization factor according to dependences.
32541         Move alignment handling ...
32542         (vect_find_same_alignment_drs): ... here.  New function.
32543         (vect_analyze_data_ref_dependences): Adjust.
32544         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32545         (vect_analyze_data_refs): Adjust minimal vectorization factor
32546         according to data references.
32547         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32548         dependences before determining the vectorization factor.
32549         Analyze alignment after determining the vectorization factor.
32550         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32551         dependences before alignment.
32552         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32553         Adjust prototype.
32554         (vect_analyze_data_refs): Likewise.
32555         (MAX_VECTORIZATION_FACTOR): New define.
32556
32557 2010-04-13  Duncan Sands  <baldrick@free.fr>
32558
32559         * except.h (lang_eh_type_covers): Remove.
32560         * except.c (lang_eh_type_covers): Likewise.
32561
32562 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32563             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32564
32565         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32566         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32567         UNITS_PER_LONG where it is ABI relevant.
32568         (s390_return_addr_rtx): Likewise.
32569         (s390_back_chain_rtx): Likewise.
32570         (s390_frame_area): Likewise.
32571         (s390_frame_info): Likewise.
32572         (s390_initial_elimination_offset): Likewise.
32573         (save_gprs): Likewise.
32574         (s390_emit_prologue): Likewise.
32575         (s390_emit_epilogue): Likewise.
32576         (s390_function_arg_advance): Likewise.
32577         (s390_function_arg): Likewise.
32578         (s390_va_start): Likewise.
32579         (s390_gimplify_va_arg): Likewise.
32580         (s390_function_profiler): Likewise.
32581         (s390_optimize_prologue): Likewise.
32582         (s390_rtx_costs): Likewise.
32583         (s390_secondary_reload): Likewise.
32584         (s390_promote_function_mode): Likewise.
32585         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32586         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32587         registers available.
32588         (s390_unwind_word_mode): New function.
32589         (s390_function_value): Split 64 bit values into register pair if
32590         used as return value.
32591         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32592         function call parameters.  Handle parallels.
32593         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32594         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32595         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32596         (s390_expand_setmem): Remove unused variable src_addr.
32597         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32598         deal with 64 bit registers.
32599         * config/s390/s390.h: Define __zarch__ predefined macro.
32600         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32601         (UNITS_PER_LONG): New macro.
32602         * libjava/include/s390-signal.h: Define extended ucontext
32603         structure containing the upper halfs of the 64 bit registers.
32604
32605 2010-04-13  Simon Baldwin  <simonb@google.com>
32606
32607         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32608
32609 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32610
32611         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32612         rvalue on the RHS if the LHS is of a non-renamable type.
32613         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32614
32615 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32616
32617         * gcc.c (cc1_options): Handle -iplugindir before processing
32618         the cc1 spec. Only add -iplugindir once.
32619         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32620         found.
32621         * common.opt (iplugindir): Remove `Separate' property, initialize.
32622         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32623         option.
32624         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32625         (distclean): Remove plugin dir.
32626         * doc/invoke.texi: Document -iplugindir.
32627
32628 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32629
32630         * doc/plugins.texi (Loading Plugins): Document short
32631         -fplugin=foo option.
32632         (Plugin API): Mention default_plugin_dir_name function.
32633
32634         * gcc.c (find_file_spec_function): Add new declaration.
32635         (static_spec_func): Use it for "find-file".
32636         (find_file_spec_function): Add new function.
32637         (cc1_options): Add -iplugindir option if -fplugin* options found.
32638
32639         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32640
32641         * plugin.c (add_new_plugin): Updated comment, and handle short
32642         plugin name.
32643         (default_plugin_dir_name): Added new function.
32644
32645         * common.opt (iplugindir): New option to set the plugin directory.
32646
32647 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32648
32649         * config/i386/i386.md (any_rotate): New code iterator.
32650         (rotate_insn): New code attribute.
32651         (rotate): Ditto.
32652         (SWIM124): New mode iterator.
32653         (<rotate_insn>ti3): New expander.
32654         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32655         any_rotate code iterator.
32656         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32657         using any_rotate code iterator and SWIM124 mode iterator.
32658         (ix86_rotlti3): New insn_and_split pattern.
32659         (ix86_rotrti3): Ditto.
32660         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32661         ix86_rotl{di,ti}3 patterns.
32662         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32663         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32664         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32665         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32666         code iterator and SWI mode iterator.
32667         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32668         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32669         code iterator.
32670         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32671         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32672         (bswap rotatert splitter): Add splitter.
32673         (bswap splitter): Macroize splitter using any_rotate code iterator.
32674         Add insn predicate to split only for TARGET_USE_XCHGB or when
32675         optimizing function for size.
32676
32677 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32678
32679         * config/pa/pa.c (emit_move_sequence): Remove use of
32680         deleted variable flag_argument_noalias.
32681
32682 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32683
32684         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32685         configurations.
32686         Add to unsupported targets list.
32687         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32688         sparc*-sun-solaris2.[567]* from target lists.
32689         * configure: Regenerate.
32690         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32691         removal.
32692         Remove Solaris 7 patch references.
32693         (Specific, sparc-sun-solaris2.7): Removed.
32694         (sparc-sun-solaris2*): Update Solaris 7 example.
32695         (sparc64-*-solaris2*): Likewise.
32696
32697 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32698
32699         * config.build (alpha*-dec-osf4*): Remove.
32700         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32701         of obsolete configurations.
32702         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32703         support.
32704         * config/alpha/t-osf4: Renamed to ...
32705         * config/alpha/t-osf5: ... this.
32706         * config/alpha/osf.h: Renamed to ...
32707         * config/alpha/osf5.h: ... this.
32708         Merged old osf5.h contents.
32709         Update comments.
32710         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32711         (EXTRA_SPECS): Removed.
32712         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32713         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32714         Document that.
32715
32716 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32717
32718         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32719
32720 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32721
32722         PR/43702
32723         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32724         __thiscall convention.
32725
32726 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32727
32728         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32729         orig_base.
32730         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32731
32732 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32733
32734         * function.c (assign_parms_initialize_all): Add unused attribute
32735         to fntype.
32736
32737 2010-04-12  Richard Guenther  <rguenther@suse.de>
32738
32739         * gsstruct.def (GSS_CALL): New.
32740         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32741         * gimple.h: Include tree-ssa-alias.h.
32742         (struct gimple_statement_call): New.
32743         (union gimple_statement_struct_d): Add gimple_call member.
32744         (gimple_call_reset_alias_info): Declare.
32745         (gimple_call_use_set): New function.
32746         (gimple_call_clobber_set): Likewise.
32747         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32748         * gimple.c (gimple_call_reset_alias_info): New function.
32749         (gimple_build_call_1): Call it.
32750         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32751         * tree-inline.c (remap_gimple_stmt): Likewise.
32752         (expand_call_inline): Remove callused handling.
32753         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32754         * tree-dfa.c (dump_variable): Likewise.
32755         * tree-parloops.c (parallelize_loops): Likewise.
32756         * tree-ssa.c (init_tree_ssa): Likewise.
32757         (delete_tree_ssa): Likewise.
32758         * tree-flow-inline.h (is_call_used): Remove.
32759         * tree-flow.h (struct gimple_df): Remove callused member.
32760         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32761         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32762         (ref_maybe_used_by_call_p_1): Simplify.
32763         (call_may_clobber_ref_p_1): Likewise.
32764         * tree-ssa-structalias.c (compute_points_to_sets): Set
32765         the call stmt used and clobbered sets.
32766         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32767         (find_tail_calls): Verify the tail call.
32768
32769 2010-04-12  Richard Guenther  <rguenther@suse.de>
32770
32771         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32772         single-iteration always-inline inlining.
32773         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32774         (cgraph_decide_inlining): Do not handle always-inline specially.
32775         (try_inline): Remove always-inline cycle detection special case.
32776         Do not recurse on always-inlines.
32777         (cgraph_early_inlining): Do not iterate if not optimizing.
32778         (cgraph_gate_early_inlining): remove.
32779         (pass_early_inline): Run unconditionally.
32780         (gate_cgraph_decide_inlining): New function.
32781         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32782         not inlining or optimizing.
32783         (cgraph_decide_inlining_of_small_functions): Also consider
32784         always-inline functions.
32785         (cgraph_default_inline_p): Return true for nodes which should
32786         disregard inline limits.
32787         (estimate_function_body_sizes): Assume zero size and time for
32788         nodes which are marked as disregarding inline limits.
32789         (cgraph_decide_recursive_inlining): Do not perform recursive
32790         inlining on always-inline nodes.
32791
32792 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32793
32794         PR bootstrap/43699
32795         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32796         for exprs satisfying handled_component_p.
32797
32798 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32799
32800         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32801         non-constant aggregate elements.
32802
32803         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32804         is a real initialization.
32805
32806 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32807
32808         PR c/36774
32809         * c-decl.c (start_function): Move forward check for nested function.
32810
32811 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32812
32813         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32814         * config/sh/sh.c: Include reload.h.
32815         (sh_legitimize_reload_address): New.
32816         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32817         sh_legitimize_reload_address.
32818
32819 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32820
32821         * config/sh/sh.md (*movqi_pop): New insn pattern.
32822         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32823
32824 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32825
32826         * config/i386/i386.md (any_shiftrt): New code iterator.
32827         (shiftrt_insn): New code attribute.
32828         (shiftrt): Ditto.
32829         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32830         using any_shiftrt code iterator.
32831         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32832         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32833         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32834         pattern from corresponding peephole2 patterns.
32835         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32836         using any_shiftrt code iterator.
32837         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32838         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32839         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32840         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32841         *{ashr,lshr}<mode>3_cmp_zext.
32842         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32843
32844 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32845
32846         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32847         scratch register.
32848         (*lshr<mode>3_cconly): Ditto.
32849
32850 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32851
32852         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32853         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32854         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32855         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32856         DWI mode iterator.
32857         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32858         from corresponding peephole2 patterns.
32859         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32860         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32861         and *lshrdi3_1_rex64 using SWI mode iterator.
32862         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32863         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32864         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32865         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32866         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32867         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32868         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32869         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32870         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32871         SWI mode iterator.
32872
32873 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32874
32875         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32876         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32877         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32878         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32879         DWI mode iterator.
32880         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32881         from corresponding peephole2 patterns.
32882         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32883         (ashrsi3_cvt): Rename from ashrsi3_31.
32884         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32885         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32886         and x86_64_shift_adj_3 using SWI48 mode iterator.
32887         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32888         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32889         and *ashrdi3_1_rex64 using SWI mode iterator.
32890         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32891         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32892         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32893         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32894         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32895         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32896         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32897         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32898         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32899         SWI mode iterator.
32900         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32901         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32902         x86_shift<mode>_adj_3 expanders.
32903
32904 2010-04-10  Wei Guozhi  <carrot@google.com>
32905
32906         PR target/42601
32907         * config/arm/arm.c (arm_pic_static_addr): New function.
32908         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32909         a static symbol.
32910         (arm_output_addr_const_extra): Output expression for new pattern.
32911         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32912
32913 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32914
32915         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32916         not enabled.
32917
32918         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32919         * web.c: Include "insn-config.h" and "recog.h".
32920         (union_match_dups): New function.
32921         (web_main): Call it.
32922         (union_defs): Don't try to recognize match_dups.
32923
32924         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32925         if doing so would replace the entire pattern.
32926
32927 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32928
32929         PR target/43707
32930         PR target/43709
32931         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32932         and splitter pattern.  Change splitter operand 1 predicate to
32933         nonmemory_operand.
32934
32935 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32936
32937         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32938         lattices are addresses of CONST_DECLs with the same initial value.
32939         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32940         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32941
32942 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32943             Bernd Schmidt  <bernds@codesourcery.com>
32944
32945         * loop-invariant.c (replace_uses): New static function.
32946         (move_invariant_reg): Use it to ensure we can replace the uses.
32947
32948 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32949
32950         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32951         function template.
32952         (picochip_override_options): Enable section anchors only above -O1.
32953         (picochip_reorg): Fixed a couple of build warnings.
32954
32955 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32956
32957         * configure.ac (plugin -rdynamic test): Log result.
32958         * configure: Regenerate.
32959         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32960         (RDYNAMIC_SPEC): Define.
32961         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32962
32963 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32964
32965         * configure.ac: Determine Sun ld version numbers.
32966         (comdat_group): Restrict GNU ld version checks to gld.
32967         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32968         (enable_comdat): Support --enable-comdat.
32969         * configure: Regenerate.
32970         * doc/install.texi (Configuration): Document --enable-comdat.
32971
32972 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32973
32974         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32975         * config/sol2-gld.h: ... here.
32976         * config.gcc (sparc*-*-solaris2*): Reflect this.
32977         (i[34567]86-*-solaris2*): Use it.
32978
32979 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32980
32981         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32982         setup_clocks_p.
32983         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32984
32985 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32986
32987         PR 42965
32988         * diagnostic.c (diagnostic_initialize): Initialize
32989         some_warnings_are_errors.
32990         (diagnostic_finish): New.
32991         (diagnostic_action_after_output): Call it before exiting.
32992         (diagnostic_report_diagnostic): Do not print message here. Set
32993         some_warnings_are_errors.
32994         * diagnostic.h (diagnostic_context): Delete
32995         issue_warnings_are_errors_message. Add some_warnings_are_errors.
32996         (diagnostic_finish): Declare.
32997         * toplev.c (toplev_main): Call it before exit.
32998
32999 2010-04-09  Jason Merrill  <jason@redhat.com>
33000
33001         PR c++/42623
33002         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33003         for incomplete type.
33004
33005         PR c++/41788
33006         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33007         based on a warning flag.
33008
33009 2010-04-09  Richard Guenther  <rguenther@suse.de>
33010
33011         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33012
33013 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33014
33015         PR bootstrap/43684
33016         * varasm.c (default_assemble_visibility): Wrap vars that are
33017         set, but unused, by targets without GAS.
33018         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33019         Remove set, but unused, vars.
33020         (rs6000_legitimize_tls_address): Likewise.
33021         (altivec_expand_dst_builtin): Likewise.
33022         * config/darwin.c (machopic_classify_symbol): Likewise.
33023         (machopic_indirection_name): Likewise.
33024
33025 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33026
33027         * config/i386/i386.md (DWI): New mode iterator.
33028         (S): New mode attribute.
33029         (shift_operand): Ditto.
33030         (shift_immediate_operand): Ditto.
33031         (ashl_input_operand): Ditto.
33032         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33033         using SDWIM mode iterator.
33034         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33035         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33036         DWI mode iterator.
33037         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33038         from corresponding peephole2 patterns.
33039         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33040         and x86_64_shift_adj_1 using SWI48 mode iterator.
33041         (x86_shift<mode>_adj_2): Ditto.
33042         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33043         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33044         using SWI48 mode iterator.
33045         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33046         *ashldi3_cmp_rex64 using SWI mode iterator.
33047         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33048         *ashldi3_cconly_rex64 using SWI mode iterator.
33049         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33050         x86_shift<mode>_adj_{1,2}.
33051         (ix86_split_ashr): Ditto.
33052         (ix86_split_lshr): Ditto.
33053
33054 2010-04-09  Richard Guenther  <rguenther@suse.de>
33055
33056         * target.h (builtin_conversion): Pass in input and output types.
33057         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33058         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33059         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33060         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33061
33062         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33063         Handle AVX modes.
33064         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33065
33066 2010-04-09  Richard Guenther  <rguenther@suse.de>
33067
33068         PR target/43152
33069         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33070
33071 2010-04-09  Richard Guenther  <rguenther@suse.de>
33072
33073         * tree-vectorizer.h (struct _stmt_vec_info): Document
33074         that vectype is the type of the LHS.
33075         (supportable_widening_operation, supportable_narrowing_operation):
33076         Get both input and output vector types as arguments.
33077         (vect_is_simple_use_1): Declare.
33078         (get_same_sized_vectype): Likewise.
33079         * tree-vect-loop.c (vect_determine_vectorization_factor):
33080         Set STMT_VINFO_VECTYPE to the vector type of the def.
33081         (vectorizable_reduction): Adjust.
33082         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33083         Adjust.  Specify the output vector type.
33084         (vect_pattern_recog_1): Adjust.
33085         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33086         (vectorizable_call): Adjust.
33087         (vectorizable_conversion): Likewise.
33088         (vectorizable_operation): Likewise.
33089         (vectorizable_type_demotion): Likewise.
33090         (vectorizable_type_promotion): Likewise.
33091         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33092         the def.
33093         (vect_is_simple_use_1): New function.
33094         (supportable_widening_operation): Get both input and output
33095         vector types.
33096         (supportable_narrowing_operation): Likewise.
33097         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33098
33099 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33100
33101         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33102         __thiscall and _thiscall as predefined macros.
33103         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33104         thiscall attribute handling.
33105         (ix86_comp_type_attributes): Likewise.
33106         (ix86_function_regparm): Likewise.
33107         (ix86_return_pops_args): Likewise.
33108         (init_cumulative_args): Likewise.
33109         (find_drap_reg): Likewise.
33110         (ix86_static_chain): Likewise.
33111         (x86_this_parameter): Likewise.
33112         (x86_output_mi_thunk): Likewise.
33113         (ix86_attribute_table): Add description for thiscall attribute.
33114         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33115         * doc/extend.texi: Add documentation for thiscall.
33116
33117 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33118
33119         PR c++/28584
33120         * c.opt (Wint-to-pointer-cast): Available in C++.
33121         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33122
33123 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33124
33125         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33126         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33127         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33128         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33129         function type instead.  Reorder and simplify checks.
33130
33131         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33132
33133 2010-04-08  Jing Yu  <jingyu@google.com>
33134             Zdenek Dvorak  <ook@ucw.cz>
33135
33136         PR tree-optimization/42720
33137         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33138         loop unswitch conditions here from ...
33139         (tree_unswitch_single_loop): ... here.
33140
33141 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33142
33143         * tree-if-conv.c: Fix comments and simplify logic.
33144
33145 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33146
33147         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33148         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33149         (main_tree_if_conversion): Update call to tree_if_conversion.
33150
33151 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33152
33153         PR 42485
33154         * doc/invoke.texi (-b,-V): Delete.
33155         * doc/tm.texi: Do not mention -b.
33156         * gcc.c (display_help): Delete -b and -V.
33157         (process_command): Delete -b and -V.
33158         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33159
33160 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33161             Wolfgang Gellerich  <gellerich@de.ibm.com>
33162
33163         Implement target hook for loop unrolling
33164         * target.h (loop_unroll_adjust): Add a new target hook function.
33165         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33166         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33167         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33168         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33169         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33170         target hook.
33171         (decide_unroll_stupid): Likewise.
33172
33173 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33174
33175         PR target/43643
33176         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33177
33178 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33179
33180         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33181         (Specific, *-*-solaris2*): Likewise.
33182         Don't prefer Sun as over GNU as.
33183
33184 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33185
33186         * config/s390/s390.c (override_options): Adjust the z10 defaults
33187         for max-unroll-times, max-completely-peeled-insns
33188         and max-completely-peel-times.
33189
33190 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33191
33192         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33193         instructions for z10.
33194         (s390_expand_setmem): Likewise.
33195         (s390_expand_cmpmem): Likewise.
33196
33197 2010-04-08  Richard Guenther  <rguenther@suse.de>
33198
33199         PR tree-optimization/43679
33200         * tree-ssa-pre.c (eliminate): Only propagate copies.
33201
33202 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33203
33204         PR bootstrap/43681
33205         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33206         set but not used variable warning.
33207
33208 2010-04-08  Wei Guozhi  <carrot@google.com>
33209
33210         PR target/41653
33211         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33212         (arm_size_rtx_costs): Call the new function when optimized for size.
33213
33214 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33215
33216         PR debug/43670
33217         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33218         op0 is not a MEM, just return NULL instead of assertion
33219         failure.
33220         (discover_nonconstant_array_refs): Don't walk debug stmts.
33221
33222 2010-04-08  Doug Kwan  <dougkwan@google.com>
33223
33224         * configure.ac: Recognize gold and do not use its version number
33225         to test ld features.
33226         * configure: Regenerate.
33227
33228 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33229
33230         PR middle-end/40815
33231         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33232         (negate_value): Move code to push elements to broken_up_substracts ...
33233         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33234         negative pair to plus_negates.
33235         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33236
33237 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33238
33239         * doc/install.texi (Configuration): Move description of
33240         --enable-lto, --with-libelf*, --enable-gold from Java section to
33241         general section.
33242
33243         * doc/generic.texi (Working with declarations)
33244         (Function Properties, C and C++ Trees): Fix typos.
33245         * doc/sourcebuild.texi (Top Level): Likewise.
33246
33247 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33248
33249         PR c/18624
33250         * tree.h (DECL_READ_P): Define.
33251         (struct tree_decl_common): Add decl_read_flag.
33252         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33253         a set but not used warning.
33254         (merge_decls): Merge DECL_READ_P flag.
33255         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33256         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33257         * c-common.c (handle_used_attribute, handle_unused_attribute):
33258         Likewise.
33259         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33260         New prototypes.
33261         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33262         New functions.
33263         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33264         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33265         c_parser_binary_expression, c_parser_cast_expression,
33266         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33267         Call default_function_array_read_conversion instead of
33268         default_function_array_conversion where needed.
33269         (c_parser_unary_expression, c_parser_conditional_expression,
33270         c_parser_postfix_expression_after_primary, c_parser_initelt):
33271         Likewise.  Call mark_exp_read where needed.
33272         (c_parser_statement_after_labels, c_parser_asm_operands,
33273         c_parser_typeof_specifier, c_parser_sizeof_expression,
33274         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33275         where needed.
33276         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33277         New.
33278         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33279         (warn_unused_but_set_parameter): Default to warn_unused
33280         && extra_warnings.
33281         * doc/invoke.texi: Document -Wunused-but-set-variable and
33282         -Wunused-but-set-parameter.
33283
33284         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33285         used count variable.
33286         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33287         when operandN variables aren't used in the body of the expander
33288         or splitter.
33289         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33290         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33291         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33292         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33293         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33294         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33295         * tree.c (PROCESS_ARG): Likewise.
33296
33297 2010-04-07  Simon Baldwin  <simonb@google.com>
33298
33299         * diagnostic.h (diagnostic_override_option_index): New macro to
33300         set a diagnostic's option_index.
33301         * c-tree.h (c_cpp_error): Add warning reason argument.
33302         * opts.c (_warning_as_error_callback): New.
33303         (register_warning_as_error_callback): Store callback for
33304         warnings enabled via enable_warning_as_error.
33305         (enable_warning_as_error): Call callback, minor code tidy.
33306         * opts.h (register_warning_as_error_callback): Declare.
33307         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33308         response to -Werror=.
33309         (c_common_init_options): Register warning_as_error_callback in opts.c.
33310         * common.opt: Add -Wno-cpp option.
33311         * c-common.c (struct reason_option_codes_t): Map cpp warning
33312         reason codes to gcc option indexes.
33313         * (c_option_controlling_cpp_error): New function, lookup the gcc
33314         option index for a cpp warning reason code.
33315         * (c_cpp_error): Add warning reason argument, call
33316         c_option_controlling_cpp_error for diagnostic_override_option_index.
33317         * doc/invoke.texi: Document -Wno-cpp.
33318
33319 2010-04-07  Richard Guenther  <rguenther@suse.de>
33320
33321         * ipa-reference.c (mark_load): Use get_base_address.
33322         (mark_store): Likewise.
33323
33324         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33325         inserting GIMPLE_NOPs into the IL.
33326         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33327         Explicitly strip handled components and indirect references.
33328
33329         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33330         folding address expressions.
33331         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33332         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33333         operand_equal_p to compare decls.
33334         (ptr_deref_may_alias_decl_p): Likewise.
33335         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33336         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33337         Handle reversed comparison ops.
33338         * tree-sra.c (asm_visit_addr): Use get_base_address.
33339         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33340         * ipa-reference.c (mark_address): Use get_base_address.
33341
33342 2010-04-07  Richard Guenther  <rguenther@suse.de>
33343
33344         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33345         Propagate constants everywhere.
33346
33347 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33348
33349         PR debug/43516
33350         * tree.c (MAX_INT_CACHED_PREC): Define.
33351         (nonstandard_integer_type_cache): New array.
33352         (build_nonstandard_integer_type): Cache results for precision
33353         <= MAX_INT_CACHED_PREC.
33354
33355 2010-04-07  Richard Guenther  <rguenther@suse.de>
33356
33357         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33358         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33359         * common.opt: Likewise.
33360         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33361         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33362         (nonoverlapping_memrefs_p): Likewise.
33363         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33364         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33365         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33366         OPT_fargument_noalias_global for backward compatibility.
33367
33368 2010-04-07  Richard Guenther  <rguenther@suse.de>
33369
33370         PR tree-optimization/43270
33371         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33372         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33373         * tree-ssa-pre.c (phi_translate_1): Adjust.
33374         (fully_constant_expression): Split out vn_reference handling to ...
33375         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33376         Fold reads from constant strings.
33377         (vn_reference_lookup): Handle fully constant references.
33378         (vn_reference_lookup_pieces): Likewise.
33379         * Makefile.in (expmed.o-warn): Add -Wno-error.
33380
33381 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33382
33383         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33384
33385 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33386
33387         PR driver/41594
33388         * gcc.c: Add -static-libstdc++ to list of recognized options.
33389
33390 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33391
33392         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33393
33394 2010-04-07  Richard Guenther  <rguenther@suse.de>
33395
33396         PR middle-end/42617
33397         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33398         bases build simple mem attributes to retain points-to information.
33399
33400 2010-04-07  Richard Guenther  <rguenther@suse.de>
33401
33402         PR middle-end/42617
33403         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33404         preserve points-to related information.
33405
33406 2010-04-07  Richard Guenther  <rguenther@suse.de>
33407
33408         PR middle-end/42617
33409         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33410         discard plain indirect references.
33411         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33412         * tree.c (tree_nop_conversion): Likewise.
33413
33414 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33415
33416         PR debug/43628
33417         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33418
33419 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33420
33421         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33422         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33423
33424 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33425
33426         * tree-if-conv.c: Fix indentation and comments.
33427
33428 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33429
33430         * tree-if-conv.c: Sort static functions in topological order.
33431
33432 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33433
33434         * tree-if-conv.c: Fix indentation and comments.
33435
33436 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33437
33438         PR middle-end/43519
33439         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33440         lang_hooks.types.type_for_size instead of
33441         build_nonstandard_integer_type.
33442         When converting an unsigned type to signed, double its precision.
33443         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33444         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33445         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33446         use lb <= ub.
33447
33448 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33449
33450         PR middle-end/43519
33451         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33452         POINTER_PLUS_EXPR for pointer types.
33453
33454 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33455
33456         PR middle-end/43519
33457         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33458         * graphite-clast-to-gimple.c: Include langhooks.h.
33459         (max_signed_precision_type): New.
33460         (max_precision_type): Takes two types as arguments.
33461         (precision_for_value): New.
33462         (precision_for_interval): New.
33463         (gcc_type_for_interval): New.
33464         (gcc_type_for_value): New.
33465         (gcc_type_for_clast_term): New.
33466         (gcc_type_for_clast_red): New.
33467         (gcc_type_for_clast_bin): New.
33468         (gcc_type_for_clast_expr): Split up into several functions.
33469         (gcc_type_for_clast_eq): Rewritten.
33470         (compute_bounds_for_level): New.
33471         (compute_type_for_level_1): New.
33472         (compute_type_for_level): New.
33473         (gcc_type_for_cloog_iv): Removed.
33474         (gcc_type_for_iv_of_clast_loop): Rewritten.
33475         (graphite_create_new_loop): Compute the lower and upper bound types
33476         with gcc_type_for_clast_expr.
33477         (graphite_create_new_loop_guard): Same.
33478         (find_cloog_iv_in_expr): Removed.
33479         (compute_cloog_iv_types_1): Removed.
33480         (compute_cloog_iv_types): Removed.
33481         (gloog): Do not call compute_cloog_iv_types.
33482         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33483         GBB_CLOOG_IV_TYPES.
33484         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33485         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33486         (GBB_CLOOG_IV_TYPES): Removed.
33487
33488 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33489
33490         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33491         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33492         (detect_commutative_reduction): Same.
33493
33494 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33495
33496         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33497         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33498         argument.
33499         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33500         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33501         (rewrite_commutative_reductions_out_of_ssa): Same.
33502         * passes.c (execute_function_todo): Call verify_ssa for every pass
33503         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33504         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33505         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33506         with an extra argument.
33507         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33508         verify_ssa only when the extra argument is true.
33509         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33510         with an extra argument.
33511         (tree_transform_and_unroll_loop): Same.
33512
33513 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33514
33515         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33516         for all the passes of the LNO having LOOP_CLOSED_SSA.
33517         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33518         * tree-loop-distribution.c (pass_loop_distribution): Same.
33519         * tree-pass.h (TODO_verify_loops): Removed.
33520         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33521         (pass_lim): Same.
33522         (pass_tree_unswitch): Same.
33523         (pass_predcom): Same.
33524         (pass_vectorize): Same.
33525         (pass_linear_transform): Same.
33526         (pass_graphite_transforms): Same.
33527         (pass_iv_canon): Same.
33528         (pass_complete_unroll): Same.
33529         (pass_complete_unrolli): Same.
33530         (pass_parallelize_loops): Same.
33531         (pass_loop_prefetch): Same.
33532         (pass_iv_optimize): Same.
33533
33534 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33535
33536         PR middle-end/32824
33537         * passes.c (init_optimization_passes): Move pass_lim before
33538         pass_copy_prop and pass_dce_loop.
33539
33540 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33541
33542         PR target/43667
33543         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33544         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33545         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33546         MULTI_* defines for 4 argument vpermil2p* builtins.
33547
33548 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33549
33550         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33551         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33552         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33553         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33554         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33555         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33556         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33557         Use x86_maybe_negate_const_int to output insn mnemonic.
33558         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33559         check from instruction predicate.  Update comments.
33560         * config/i386/sync.md (sync_add<mode>): Use
33561         x86_maybe_negate_const_int to output insn mnemonic.
33562
33563 2010-04-06  Jan Hubicka  <jh@suse.cz>
33564
33565         PR tree-optimization/42906
33566         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33567         IGNORE_SELF argument.  Set visited_control_parents for fully
33568         processed BBs.
33569         (find_obviously_necessary_stmts): Update call of
33570         mark_control_dependent_edges_necessary.
33571         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33572
33573 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33574
33575         * config/i386/i386.md: Remove comment about 'e' and 'E'
33576         operand modifier.
33577
33578 2010-04-06  Richard Guenther  <rguenther@suse.de>
33579
33580         PR tree-optimization/43627
33581         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33582         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33583         not varying.
33584
33585 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33586
33587         * BASE-VER: Change to 4.6.0.
33588
33589         PR target/43638
33590         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33591         handling.
33592
33593 2010-04-06  Richard Guenther  <rguenther@suse.de>
33594
33595         PR middle-end/43661
33596         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33597
33598 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33599
33600         * doc/invoke.texi (Optimize Options): Document that LTO
33601         won't remove object access purely due to incompatible
33602         declarations.
33603
33604 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33605
33606         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33607         Initialize variable.
33608
33609 2010-04-03  Richard Guenther  <rguenther@suse.de>
33610
33611         PR middle-end/42509
33612         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33613         require a non-NULL MEM_OFFSET.
33614
33615 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33616
33617         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33618         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33619         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33620         config/alpha/predicates.md, config/arm/arm.md,
33621         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33622         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33623         config/darwin9.h, config/darwin.c, config/darwin.h,
33624         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33625         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33626         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33627         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33628         config/mips/mips.md, config/mn10300/mn10300.c,
33629         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33630         config/rs6000/aix.h, config/rs6000/dfp.md,
33631         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33632         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33633         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33634         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33635         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33636         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33637         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33638         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33639         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33640         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33641         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33642         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33643         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33644         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33645         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33646         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33647         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33648         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33649         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33650         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33651         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33652         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33653         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33654         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33655         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33656         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33657         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33658         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33659         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33660         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33661         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33662         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33663         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33664         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33665         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33666         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33667
33668 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33669
33670         PR other/43620
33671         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33672         * aclocal.m4: Regenerate.
33673
33674 2010-04-02  Richard Guenther  <rguenther@suse.de>
33675
33676         PR tree-optimization/43629
33677         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33678         if we have seen a constant value.
33679
33680 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33681
33682         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33683
33684 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33685
33686         PR target/43469
33687         * arm.c (legitimize_tls_address): Adjust call to
33688         gen_tls_load_dot_plus_four.
33689         (arm_note_pic_base): New function.
33690         (arm_cannot_copy_insn_p): Use it.
33691         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33692         constraint.
33693
33694 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33695
33696         PR bootstrap/43531
33697
33698         Revert:
33699         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33700
33701         * Makefile.in ($(out_object_file)): Depend on
33702         gt-$(basename $(notdir $(out_file))).h.
33703
33704 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33705
33706         * config.gcc (lm32-*-rtems*): Add t-lm32.
33707
33708 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33709
33710         * config.gcc: Add lm32-*-rtems*.
33711         * config/lm32/rtems.h: New file.
33712
33713 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33714
33715         PR target/42609
33716         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33717
33718 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33719
33720         * dwarf2out.c (output_compilation_unit_header): For
33721         -gdwarf-4 use version 4 instead of version 3.
33722         (output_line_info): For version 4 and above emit additional
33723         maximum ops per insn header field.
33724         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33725
33726         * dwarf2out.c (is_c_family, is_java): Remove.
33727         (lower_bound_default): New function.
33728         (add_bound_info, gen_descr_array_type_die): Use it.
33729
33730 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33731
33732         PR debug/43325
33733         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33734         re-declaration when it happens in a function.
33735
33736 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33737
33738         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33739         (cgraph_remove_function_insertion_hook): Same.
33740         (cgraph_call_function_insertion_hooks): Same.
33741
33742 2010-04-01  Richard Guenther  <rguenther@suse.de>
33743
33744         PR middle-end/43614
33745         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33746         and TREE_THIS_VOLATILE.
33747         (copy_ref_info): Likewise.
33748         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33749         * tree.c (build6_stat): Ignore side-effects of all but arg5
33750         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33751         TARGET_MEM_REF.
33752
33753 2010-04-01  Richard Guenther  <rguenther@suse.de>
33754
33755         PR tree-optimization/43607
33756         * ipa-type-escape.c (check_call): Do not access non-existing
33757         arguments.
33758
33759 2010-04-01  Richard Guenther  <rguenther@suse.de>
33760
33761         PR middle-end/43602
33762         Revert
33763         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33764                     Jack Howarth  <howarth@bromo.med.uc.edu>
33765
33766         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33767         variables TLS.
33768
33769 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33770
33771         * doc/install.texi (Prerequisites): Document libelf usability on
33772         IRIX 5/6 and Solaris 2.
33773         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33774         Update GNU as, GNU ld requirements.
33775         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33776         Document Sun Studio compiler download.
33777         Update and simplify as, ld recommendations.
33778         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33779
33780 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33781
33782         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33783         with_tune_32 to pentium4.
33784
33785 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33786
33787         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33788
33789 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33790
33791         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33792         obsoletion, removal.
33793         Update IDO URL.
33794         Document GNU as requirement.
33795         Update configure requirements.
33796         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33797         Recomment IRIX 6.5.18+.
33798         Document IDF/IDL requirement.
33799         Document GNU as requirement.
33800         Document GNU ld bootstrap failure.
33801         Remove freeware.sgi.com reference.
33802
33803 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33804
33805         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33806         UNIX V4.0, V5.0 obsoletion, removal.
33807         Remove --with-gc=simple reference.
33808         Update VM requirements during bootstrap.
33809         Remove -oldas bootstrap description.
33810         Update binutils reference.
33811         Remove comparison failure note.
33812
33813 2010-03-31  Richard Guenther  <rguenther@suse.de>
33814             Zdenek Dvorak  <ook@ucw.cz>
33815             Sebastian Pop  <sebastian.pop@amd.com>
33816
33817         PR middle-end/43464
33818         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33819         with multiple arguments.
33820         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33821
33822 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33823
33824         * graphite-dependences.c (print_pddr): Call print_pdr with an
33825         extra argument.
33826         * graphite-poly.c (debug_pdr): Add an extra argument for the
33827         verbosity level.
33828         (print_pdr): Same.
33829         (print_pbb_domain): Same.
33830         (print_pbb): Same.
33831         (print_scop_context): Same.
33832         (print_scop): Same.
33833         (print_cloog): Same.
33834         (debug_pbb_domain): Same.
33835         (debug_pbb): Same.
33836         (print_pdrs): Same.
33837         (debug_pdrs): Same.
33838         (debug_scop_context): Same.
33839         (debug_scop): Same.
33840         (debug_cloog): Same.
33841         (print_scop_params): Same.
33842         (debug_scop_params): Same.
33843         (print_iteration_domain): Same.
33844         (print_iteration_domains): Same.
33845         (debug_iteration_domain): Same.
33846         (debug_iteration_domains): Same.
33847         (print_scattering_function): Same.
33848         (print_scattering_functions): Same.
33849         (debug_scattering_function): Same.
33850         (debug_scattering_functions): Same.
33851         * graphite-poly.h (debug_pdr): Update declaration.
33852         (print_pdr): Same.
33853         (print_pbb_domain): Same.
33854         (print_pbb): Same.
33855         (print_scop_context): Same.
33856         (print_scop): Same.
33857         (print_cloog): Same.
33858         (debug_pbb_domain): Same.
33859         (debug_pbb): Same.
33860         (print_pdrs): Same.
33861         (debug_pdrs): Same.
33862         (debug_scop_context): Same.
33863         (debug_scop): Same.
33864         (debug_cloog): Same.
33865         (print_scop_params): Same.
33866         (debug_scop_params): Same.
33867         (print_iteration_domain): Same.
33868         (print_iteration_domains): Same.
33869         (debug_iteration_domain): Same.
33870         (debug_iteration_domains): Same.
33871         (print_scattering_function): Same.
33872         (print_scattering_functions): Same.
33873         (debug_scattering_function): Same.
33874         (debug_scattering_functions): Same.
33875
33876 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33877
33878         * graphite-poly.c (print_scattering_function_1): New.
33879         (print_scattering_function): Call it.
33880         (print_scop_params): Remove spaces at the end of lines.
33881         (print_cloog): New.
33882         (debug_cloog): New.
33883         * graphite-poly.h (print_cloog): Declared.
33884         (debug_cloog): Declared.
33885
33886 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33887
33888         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33889         in loop->header.
33890         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33891         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33892         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33893         to switch between adding the IV bump in loop->latch or in loop->header.
33894
33895 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33896
33897         * graphite-poly.c (print_scattering_function): Pretty print following
33898         the scoplib format.
33899         (print_pdr): Same.
33900         (print_pbb_domain): Same.
33901         (dump_gbb_cases): Same.
33902         (dump_gbb_conditions): Same.
33903         (print_pdrs): Same.
33904         (print_pbb): Same.
33905         (print_scop_params): Same.
33906         (print_scop_context): Same.
33907         (print_scop): Same.
33908         (print_pbb_body): New.
33909         (lst_indent_to): New.
33910         (print_lst): Start new lines with a #.
33911         * graphite-poly.h (pbb_bb): New.
33912         (pbb_index): Use pbb_bb.
33913         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33914         disjuncts.
33915         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33916
33917 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33918
33919         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33920         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33921         and 0 instead of 1 for dw_val_class_flag.
33922         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33923         dw_val_class_range_list, dw_val_class_loc_list,
33924         dw_val_class_lineptr and dw_val_class_macptr, use
33925         DW_FORM_flag_present for dw_val_class_flag and
33926         DW_FORM_exprloc for dw_val_class_loc.
33927         (output_die): For -gdwarf-4 print dw_val_class_loc
33928         size as uleb128 instead of 1 or 2 bytes and don't print
33929         anything for dw_val_class_flag.
33930
33931         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33932         instead of cselib_lookup following by tweaking locs->setting_insn.
33933
33934         PR bootstrap/43596
33935         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33936         even before returning from label, setjmp call or volatile asm
33937         handling.
33938
33939 2010-03-31  Richard Guenther  <rguenther@suse.de>
33940
33941         PR middle-end/43600
33942         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33943         temporary data on stack.
33944
33945 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33946
33947         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33948         (PUSHSECTION_ASM_OP): Remove.
33949         (POPSECTION_ASM_OP): Remove.
33950         (PUSHSECTION_FORMAT): Remove.
33951         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33952         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33953         * config/sol2.c (solaris_output_init_fini): Use it.
33954
33955 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33956
33957         PR 43574
33958         * opt-functions.awk (var_type_struct): Use signed char type
33959         for simple variables.
33960
33961 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33962
33963         * config/sol2.c: Include output.h.
33964         (solaris_assemble_visibility): New function.
33965         * config/t-sol2 (sol2.o): Add output.h dependency.
33966         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33967         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33968         Redefine.
33969
33970 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33971
33972         PR target/43580
33973         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33974         V2SImode or XFmode on PRE_DEC.
33975
33976         PR debug/43557
33977         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33978         BLKmode.
33979
33980 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33981
33982         PR 43562
33983         * reload.h (caller_save_initialized_p): Declare.
33984         * toplev.c (backend_init_target): Don't call
33985         init_caller_save but set caller_save_initialized_p to false.
33986         * caller-save.c (caller_save_initialized_p): Define.
33987         (init_caller_save): Check caller_save_initialized_p.
33988         * ira.c (ira): Call init_caller_save if flag_caller_saves.
33989
33990 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33991
33992         PR target/39048
33993         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
33994         and soft-fp/t-softfp to tmake_file.
33995         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
33996         (LIBGCC2_TF_CEXT): Define.
33997         (TF_SIZE): Define.
33998
33999 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34000
34001         PR debug/42977
34002         * cselib.c (n_useless_values): Document handling of debug locs.
34003         (n_useless_debug_values, n_debug_values): New variables.
34004         (new_elt_loc_list): Don't add to debug values, keep count.
34005         (promote_debug_loc): New.
34006         (cselib_reset_table): Zero new variables.
34007         (entry_and_rtx_equal_p): Promote debug locs.
34008         (discard_useless_locs): Increment n_useless_debug_values for
34009         debug values.
34010         (remove_useless_values): Adjust n_useless_values and n_debug_values
34011         with n_useless_debug_values.
34012         (add_mem_for_addr): Promote debug locs.
34013         (cselib_lookup_mem): Likewise.
34014         (cselib_lookup_addr): Renamed to...
34015         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34016         (cselib_log_lookup): ... this.  Turn into...
34017         (cselib_lookup_addr): ... new wrapper.
34018         (cselib_lookup_from_insn): New.
34019         (cselib_invalidate_regno): Increment n_useless_debug_values for
34020         debug values.
34021         (cselib_invalidate_mem): Likewise.
34022         (cselib_process_insn): Take n_deleted and n_debug_values into
34023         account to guard remove_useless_value call.
34024         (cselib_finish): Zero n_useless_debug_values.
34025         * cselib.h (cselib_lookup_from_insn): Declare.
34026         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34027         (sched_analyze_2): Likewise.
34028
34029 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34030
34031         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34032         functions.
34033         (adjust_mems): Replace narrowing SUBREG of expression containing
34034         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34035         with operations in the narrower mode.
34036
34037         PR debug/43593
34038         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34039         regs_invalidated_by_call instead all call_used_reg_set registers.
34040
34041 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34042
34043         PR middle-end/43430
34044         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34045         pointer comparisons with types_compatible_p.
34046         * tree-vect-stmts.c (vectorizable_call): Same.
34047         (vectorizable_condition): Same.
34048
34049 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34050
34051         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34052         stack check if the mask would be zero.
34053
34054 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34055             Jack Howarth  <howarth@bromo.med.uc.edu>
34056
34057         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34058         variables TLS.
34059
34060 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34061
34062         PR other/25232
34063         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34064         and __unordtf2.
34065         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34066         Include ___unordxf2 and ___unordtf2.
34067         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34068         GCC_4.4.0 here.
34069
34070 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34071
34072         * config/lm32/t-lm32: New file.
34073         * config.gcc: Use the above file when targetting lm32.
34074
34075 2010-03-28  Duncan Sands  <baldrick@free.fr>
34076
34077         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34078
34079 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34080
34081         PR middle-end/43431
34082         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34083         Improve vectorization cost model diagnostic.
34084
34085 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34086
34087         PR middle-end/43436
34088         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34089         compute_data_dependences_for_loop returns false, early exit
34090         and output an extra diagnostic for the failed data reference
34091         analysis.
34092
34093 2010-03-29  Richard Guenther  <rguenther@suse.de>
34094
34095         PR tree-optimization/43560
34096         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34097         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34098
34099 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34100
34101         PR 43564
34102         * toplev.c (process_options): Set optimization_default_node
34103         and optimization_current_node.
34104         * opts.c (decode_options): Don't set optimization_default_node
34105         and optimization_current_node.
34106
34107 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34108
34109         * config/rtems.h: Abandon -qrtems_debug.
34110
34111 2010-03-28  Jan Hubicka  <jh@suse.cz>
34112
34113         PR tree-optimization/43505
34114         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34115         map should not be copied.
34116
34117 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34118
34119         PR middle-end/41674
34120         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34121         cdtors, set DECL_PRESERVE_P.
34122         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34123         should be preseved.
34124
34125 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34126
34127         PR tree-optimization/43528
34128         * stor-layout.c (place_field): Check that constant fits into
34129         unsigned HWI when skipping calculation of MS bitfield layout.
34130
34131 2010-03-27  Jan Hubicka  <jh@suse.cz>
34132
34133         PR middle-end/43391
34134         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34135         notice_global_symbol work.
34136
34137 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34138
34139         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34140         instead of dwarf2out_decl.
34141         (struct var_loc_node): Remove section_label field.
34142         (dwarf2out_function_decl): New function.
34143         (dwarf2out_var_location): Don't set section_label field.
34144         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34145
34146 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34147
34148         PR tree-optimization/43544
34149         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34150         First argument for builtin vectorized function hook is now a
34151         tree to be able to distinguish between machine specific and
34152         standard builtins.
34153         * targhooks.c (default_builtin_vectorized_function): Ditto.
34154         * targhooks.h (default_builtin_vectorized_function): Ditto.
34155         * target.h (struct gcc_target): Ditto.
34156         * tree-vect-stmts.c (vectorizable_function): Ditto.
34157         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34158         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34159         Ditto.
34160
34161 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34162
34163         PR c/43381
34164         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34165         nested binding iff it is a FUNCTION_DECL.
34166         (store_parm_decls_newstyle): Pass nested=true to bind for
34167         FUNCTION_DECLs amongst parameters.
34168
34169 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34170
34171         * var-tracking.c (vt_expand_loc_callback): Don't run
34172         cselib_expand_value_rtx_cb in dummy mode if
34173         cselib_dummy_expand_value_rtx_cb returned false.
34174
34175         * var-tracking.c (emit_note_insn_var_location): For one part
34176         notes with offset 0, don't add EXPR_LIST around the location.
34177         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34178         add_location_or_const_value_attribute): Adjust for that change.
34179
34180         PR debug/43540
34181         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34182         into first operand and location into second.
34183         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34184         dw_cfi_oprnd_loc for DW_CFA_expression.
34185         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34186         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34187         assume first argument is regnum and second argument is location.
34188
34189 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34190
34191         PR target/42113
34192         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34193         of scratch register to DImode.  Split to DImode comparison operator.
34194         Use SImode subreg of scratch register in the multiplication.
34195         (*cmp_sadd_sidi): Ditto.
34196         (*cmp_ssub_si): Ditto.
34197         (*cmp_ssub_sidi): Ditto.
34198
34199 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34200
34201         PR target/43524
34202         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34203         Remove invalid assert and wrong comment.
34204
34205 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34206
34207         PR debug/43516
34208         * flags.h (final_insns_dump_p): New extern.
34209         * final.c (final_insns_dump_p): New variable.
34210         (rest_of_clean_state): Set it before -fdump-final-insns=
34211         dumping, clear afterwards.
34212         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34213         MEM_ALIAS_SET on MEMs.
34214
34215 2010-03-26  David S. Miller  <davem@davemloft.net>
34216
34217         * configure.ac: Fix sparc GOTDATA_OP bug check.
34218         * configure: Rebuild.
34219
34220 2010-03-26  Alan Modra  <amodra@gmail.com>
34221
34222         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34223
34224 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34225
34226         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34227         TLS_SECTION_ASM_FLAG.
34228
34229 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34230
34231         PR bootstrap/43511
34232         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34233         Clear first_function_block_is_cold.
34234
34235         PR c/43385
34236         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34237         argument if the argument is truth_value_p.
34238
34239 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34240
34241         * config/rs6000/constraints.md: Update copyright year for my changes.
34242
34243         PR target/43484
34244         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34245         used in reg+reg addressing, swap registers.
34246
34247 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34248
34249         PR debug/43293
34250         * target.h (struct gcc_target): Add code_end hook.
34251         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34252         if not yet defined.
34253         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34254         * toplev.c (compile_file): Call targetm.asm_out.code_end
34255         hook before unwind info/debug info output.
34256         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34257         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34258         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34259         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34260         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34261         * config/i386/i386.c (ix86_file_end): Renamed to...
34262         (ix86_code_end): ... this.  Make static.  Don't call
34263         file_end_indicate_exec_stack.  Emit unwind info using
34264         final_start_function/final_end_function.
34265         (darwin_x86_file_end): Remove.
34266         (TARGET_ASM_CODE_END): Define.
34267         * config/i386/i386.h (TARGET_ASM_FILE_END,
34268         NEED_INDICATE_EXEC_STACK): Don't define.
34269         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34270         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34271         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34272         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34273
34274         PR target/43498
34275         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34276         at the beginning and final_end_function at the end.
34277         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34278
34279 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34280
34281         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34282         and Sun as TLS syntax.
34283         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34284         * configure: Regenerate.
34285         * config.in: Regenerate.
34286         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34287         (default_elf_asm_named_section): Use it.
34288         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34289         (i386_output_dwarf_dtprel): Likewise.
34290         (output_addr_const_extra): Likewise.
34291         (output_pic_addr_const): Lowercase @GOTTPOFF.
34292         (output_addr_const_extra): Likewise.
34293         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34294         (output_addr_const_extra): Likewise.
34295         (output_pic_addr_const): Lowercase @INDNTPOFF.
34296         (output_addr_const_extra): Likewise.
34297         (output_pic_addr_const): Lowercase @NTPOFF.
34298         (output_addr_const_extra): Likewise.
34299         (output_pic_addr_const): Lowercase @TPOFF.
34300         (output_addr_const_extra): Likewise.
34301         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34302         (*tls_global_dynamic_64): Likewise.
34303         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34304         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34305
34306         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34307         (ASM_OUTPUT_TLS_COMMON): Use it.
34308         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34309
34310         PR target/38118
34311         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34312         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34313         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34314         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34315         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34316         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34317
34318 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34319
34320         * config/i386/i386.c (override_options): Don't accept
34321         -mtls-dialect=sun any longer.
34322         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34323         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34324         (*tls_local_dynamic_base_32_sun): Likewise.
34325         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34326
34327 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34328
34329         PR debug/43508
34330         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34331         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34332
34333         PR debug/43479
34334         * ira.c (adjust_cleared_regs): New function.
34335         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34336
34337         PR debug/19192
34338         PR debug/43479
34339         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34340         from gimple_block.
34341         * expr.c (expand_expr_real): Restore previous
34342         curr_insn_source_location and curr_insn_block after
34343         expand_expr_real_1 call.
34344         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34345         instead of expand_expr_real_1.
34346
34347 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34348
34349         PR rtl-optimization/43413
34350         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34351         hard regs too.
34352
34353 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34354
34355         PR target/43348
34356         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34357         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34358
34359 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34360
34361         * config/i386/i386.c (ix86_target_string): Add -mfma.
34362         Fix a typo in comment.
34363
34364 2010-03-22  Mike Stump  <mikestump@comcast.net>
34365
34366         PR target/23071
34367         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34368         Don't overly align based upon packed packed fields.
34369
34370 2010-03-22  Jason Merrill  <jason@redhat.com>
34371
34372         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34373         Use () rather than [], and move before the element type.
34374
34375 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34376
34377         * doc/configfiles.texi (Configuration Files): Removed
34378         fixinc/Makefile*, intl/Makefile.*.
34379         * doc/makefile.texi: Fixed markup. Abstract from version
34380         control system used.
34381         (Makefile): Removed obsolete java/parse.y example.
34382         * doc/sourcebuild.texi: Likewise.
34383         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34384         libgomp, libssp.  Removed fastjar.
34385         (Miscellaneous Docs): Clarify location.
34386         Added COPYING3, COPYING3.LIB.
34387         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34388
34389 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34390
34391         PR target/38085
34392         * config/i386/i386.c (x86_function_profiler)
34393         [!NO_PROFILE_COUNTERS]: Fix typo.
34394         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34395         instead of callq.
34396
34397 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34398             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34399
34400         * doc/sourcebuild.texi (Test Directives): Split into six
34401         subsections, with most of the current text in new subsections
34402         Directives, Selectors, and Final Actions.
34403         (Directives): Split list of test directives into multiple
34404         subsubsections.
34405         (Selectors): Describe use and syntax of selectors.
34406         (Effective-Target Keywords): Describe all existing keywords.
34407         (Add Options): Describe features for dg-add-options.
34408         (Require Support): Describe variants of dg-require-support.
34409         (Final Actions): Describe commands to use in dg-final.
34410
34411 2010-03-22  Michael Matz  <matz@suse.de>
34412
34413         PR middle-end/43475
34414         * recog.c (validate_replace_rtx_group): Replace also in
34415         REG_EQUAL and REG_EQUIV notes.
34416
34417 2010-03-22  Richard Guenther  <rguenther@suse.de>
34418
34419         PR tree-optimization/43390
34420         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34421         sure vector extracts are type correct.
34422
34423 2010-03-22  Richard Guenther  <rguenther@suse.de>
34424
34425         PR middle-end/40106
34426         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34427         x * sqrt (x) even when optimizing for size if the target
34428         has native support for sqrt.
34429
34430 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34431
34432         * varasm.c (make_decl_rtl_for_debug): Also clear
34433         flag_mudflap for the duration of make_decl_rtl call.
34434
34435         PR debug/43443
34436         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34437         locs from preserved VALUEs.
34438
34439 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34440
34441         PR middle-end/42718
34442         * pa.md (movmemsi): Set align to one if zero.
34443         (movmemdi): Likewise.
34444
34445 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34446
34447         PR target/42321
34448         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34449         with their corresponding prologue pushes.
34450
34451 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34452
34453         PR target/43156
34454         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34455         at the begining or end.
34456         (spu_expand_epilogue): Likewise.
34457
34458 2010-03-20  Richard Guenther  <rguenther@suse.de>
34459
34460         PR rtl-optimization/43438
34461         * combine.c (make_extraction): Properly zero-/sign-extend an
34462         extraction of the low part of a CONST_INT.  Also handle
34463         CONST_DOUBLE.
34464
34465 2010-03-19  Mike Stump  <mikestump@comcast.net>
34466
34467         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34468         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34469         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34470
34471 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34472
34473         PR c/43211
34474         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34475         an error.
34476
34477 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34478
34479         PR rtl-optimization/42258
34480         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34481         use that may match DEF.
34482
34483         PR target/40697
34484         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34485         the cost of loading the constant rather than assuming
34486         COSTS_N_INSNS (1).
34487         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34488         outer code is AND, do the same tests as the andsi3 expander and
34489         return COSTS_N_INSNS (1) if and is cheap.
34490
34491         * optabs.c (avoid_expensive_constant): Fix formatting.
34492
34493 2010-03-19  Michael Matz  <matz@suse.de>
34494
34495         PR c++/43116
34496         * attribs.c (decl_attributes): When rebuilding a function pointer
34497         type use the same qualifiers as the original pointer type.
34498
34499 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34500
34501         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34502         and is_gimple_ip_invariant_address.
34503
34504 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34505
34506         Revert
34507         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34508
34509         * config/arm/arm.c (arm_override_options): Turn off
34510         flag_dwarf2_cfi_asm for AAPCS variants.
34511
34512 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34513
34514         PR target/43399
34515         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34516         Use PRE_MODIFY instead of PRE_DEC.
34517         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34518         (vfp_emit_fstmd): Likewise.
34519
34520 2010-03-19  Michael Matz  <matz@suse.de>
34521
34522         PR target/43305
34523         * builtins.c (expand_builtin_interclass_mathfn,
34524         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34525         if that fails.
34526
34527 2010-03-19  Richard Guenther  <rguenther@suse.de>
34528
34529         PR tree-optimization/43415
34530         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34531         (phi_translate_1): ... this.
34532         (phi_translate): Move all caching here.  Cache all NARY
34533         and REFERENCE translations.
34534
34535 2010-03-19  David S. Miller  <davem@davemloft.net>
34536
34537         With help from Eric Botcazou.
34538         * config/sparc/sparc.c: Include dwarf2out.h.
34539         (emit_pic_helper): Delete.
34540         (pic_helper_symbol_name): Delete.
34541         (pic_helper_emitted_p): Delete.
34542         (pic_helper_needed): New.
34543         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34544         (get_pc_thunk_name): New.
34545         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34546         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34547         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34548         (sparc_expand_prologue): Update load_pic_register call.
34549         (sparc_output_mi_thunk): Likewise.
34550         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34551         thunk if possible.  Output CFI information as needed.
34552
34553 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34554             Jack Howarth  <howarth@bromo.med.uc.edu>
34555
34556         PR target/36399
34557         * config/i386/i386.h: Fix ABI on darwin x86-32.
34558
34559 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34560
34561         * tree.h: Declare make_decl_rtl_for_debug.
34562         * varasm.c (make_decl_rtl_for_debug): New.
34563         * dwarf2out.c (rtl_for_decl_location): Call it.
34564         * cfgexpand.c (expand_debug_expr): Call it.
34565
34566 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34567
34568         PR bootstrap/43399
34569         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34570         mem_mode.
34571
34572         PR bootstrap/43403
34573         * var-tracking.c (vt_init_cfa_base): Do nothing if
34574         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34575
34576 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34577
34578         PR debug/42873
34579         * var-tracking.c (canonicalize_vars_star): New.
34580         (dataflow_post_merge_adjust): Use it.
34581
34582 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34583
34584         PR debug/43058
34585         * var-tracking.c (non_suitable_const): New function.
34586         (add_uses): For DEBUG_INSNs with constants, don't record any
34587         value, instead just the constant value itself.
34588         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34589         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34590         (emit_notes_in_bb): Likewise.
34591         (emit_note_insn_var_location): For onepart variables if
34592         cur_loc is a VOIDmode constant, use DECL_MODE.
34593
34594 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34595
34596         PR middle-end/42450
34597         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34598         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34599         all non-clones.  Moved call redirection...
34600         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34601         (cgraph_materialize_all_clones): Dispose of all
34602         combined_args_to_skip bitmaps.
34603         (verify_cgraph_node): Do not check for edges pointing to wrong
34604         nodes in inline clones.
34605         * tree-inline.c (copy_bb): Call
34606         cgraph_redirect_edge_call_stmt_to_callee.
34607         * ipa.c (cgraph_remove_unreachable_nodes): Call
34608         cgraph_node_remove_callees even when there are used clones.
34609
34610 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34611
34612         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34613
34614 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34615
34616         PR target/43383
34617         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34618         for 32bit.
34619
34620 2010-03-18  Michael Matz  <matz@suse.de>
34621
34622         PR middle-end/43419
34623         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34624         into sqrt(x) if we need to preserve signed zeros.
34625
34626 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34627             Eric Botcazou  <ebotcazou@adacore.com>
34628
34629         PR rtl-optimization/43360
34630         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34631         note if we don't know its invariant status.
34632
34633 2010-03-18  Michael Matz  <matz@suse.de>
34634
34635         PR tree-optimization/43402
34636         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34637         PHI chains of ssa names registered for update.
34638
34639 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34640
34641         PR target/42427
34642         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34643         non-offsettable and pre_modify update addressing.
34644         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34645         and "2" alternatives "#".
34646         (*movdd_softfloat32): Make all alternatives "#";
34647         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34648         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34649         (*movdf_softfloat32): Make all alternatives "#";
34650         (movdi): Use the new DIFD mode iterator to create a common splitter
34651         for movdi, movdf and movdd patterns.
34652
34653 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34654
34655         * common.opt (dumpdir): Remove redundant tab.
34656
34657 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34658
34659         PR tree-optimization/43347
34660         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34661         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34662
34663 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34664
34665         PR rtl-optimization/42216
34666         * regrename.c (create_new_chain): New function, broken out from...
34667         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34668         appending a use to an empty chain.
34669         (build_def_use): Remove previous changes that convert OP_INOUT to
34670         OP_OUT operands; instead detect the case where an OP_INOUT operand
34671         uses a previously untracked register and create an empty chain for it.
34672
34673 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34674
34675         * doc/extend.texi (Function Attributes): Rewrite unfinished
34676         sentence in ms_abi documentation.
34677
34678 2010-03-17  Alan Modra  <amodra@gmail.com>
34679
34680         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34681         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34682         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34683         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34684
34685 2010-03-16  Richard Henderson  <rth@redhat.com>
34686
34687         PR middle-end/43365
34688         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34689         (lower_try_finally): Save and restore eh_seq around the expansion
34690         of the try-finally.
34691
34692 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34693
34694         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34695         statements before splitting block.
34696
34697 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34698
34699         * doc/sourcebuild.texi (Testsuites): Fix markup.
34700         Use pathnames relative to gcc/testsuite.
34701         (Test Directives): Move description of how timeout is determined.
34702         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34703         (C Tests): Correct gcc.misc-tests directory.
34704         Framework tests now live in gcc.test-framework.
34705
34706 2010-03-16  Richard Guenther  <rguenther@suse.de>
34707
34708         PR middle-end/43379
34709         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34710         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34711
34712 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34713             Alexandre Oliva  <aoliva@redhat.com>
34714
34715         PR tree-optimization/42917
34716         * lambda-code.c (remove_iv): Skip debug statements.
34717         (lambda_loopnest_to_gcc_loopnest): Likewise.
34718         (not_interesting_stmt): Debug statements are not interesting.
34719
34720 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34721
34722         PR debug/43051
34723         PR debug/43092
34724         * cselib.c (cselib_preserve_constants,
34725         cfa_base_preserved_val): New static variables.
34726         (preserve_only_constants): New function.
34727         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34728         clear its REG_VALUES.  If cselib_preserve_constants, don't
34729         empty the whole hash table, but preserve there VALUEs with constants,
34730         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34731         (cselib_preserve_cfa_base_value): New function.
34732         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34733         (cselib_init): Change argument to int bitfield.  Set
34734         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34735         is in it.
34736         (cselib_finish): Clear cselib_preserve_constants and
34737         cfa_base_preserved_val.
34738         * cselib.h (enum cselib_record_what): New enum.
34739         (cselib_init): Change argument to int.
34740         (cselib_preserve_cfa_base_value): New prototype.
34741         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34742         * dse.c (dse_step1): Likewise.
34743         * cfgcleanup.c (thread_jump): Likewise.
34744         * sched-deps.c (sched_analyze): Likewise.
34745         * gcse.c (local_cprop_pass): Likewise.
34746         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34747         If FN is non-NULL, call the callback always and whenever it returns
34748         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34749         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34750         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34751         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34752         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34753         * var-tracking.c: Include recog.h.
34754         (bb_stack_adjust_offset): Remove.
34755         (vt_stack_adjustments): Don't call it, instead just gather the
34756         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34757         (adjust_stack_reference): Remove.
34758         (compute_cfa_pointer): New function.
34759         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34760         (struct adjust_mem_data): New type.
34761         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34762         functions.
34763         (get_address_mode): New function.
34764         (replace_expr_with_values): Use it.
34765         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34766         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34767         (adjust_sets): Remove.
34768         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34769         Use get_address_mode.
34770         (get_adjusted_src): Remove.
34771         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34772         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34773         (add_with_sets): Don't call adjust_sets.
34774         (fp_setter, vt_init_cfa_base): New functions.
34775         (vt_initialize): Change return type to bool.  Move most of pool etc.
34776         initialization to the beginning of the function from end.  Pass
34777         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34778         If !frame_pointer_needed, call vt_stack_adjustment before mos
34779         vector is filled, call vt_init_cfa_base if argp/framep has been
34780         eliminated to sp.  If frame_pointer_needed and argp/framep has
34781         been eliminated to hard frame pointer, set
34782         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34783         encountering fp setter in the prologue.  For MO_ADJUST, call
34784         log_op_type before pusing the op into mos vector, not afterwards.
34785         Call adjust_insn before cselib_process_insn/add_with_sets,
34786         call cancel_changes (0) afterwards.
34787         (variable_tracking_main_1): Adjust for vt_initialize calling
34788         vt_stack_adjustments and returning whether it succeeded or not.
34789
34790 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34791
34792         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34793         debug statements.
34794
34795 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34796
34797         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34798         has been set.
34799         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34800         drap_reg has not been set.
34801
34802 2010-03-15  Michael Matz  <matz@suse.de>
34803
34804         PR middle-end/43300
34805         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34806         use it to expand block copies.
34807         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34808         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34809         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34810
34811 2010-03-15  Richard Guenther  <rguenther@suse.de>
34812
34813         PR tree-optimization/43367
34814         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34815         elimination check.
34816
34817 2010-03-15  Richard Guenther  <rguenther@suse.de>
34818
34819         PR tree-optimization/43317
34820         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34821
34822 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34823
34824         PR tree-optimization/43141
34825         * tree-sra.c (create_abstract_origin): New function.
34826         (modify_function): Call create_abstract_origin.
34827
34828 2010-03-15  Chris Demetriou  <cgd@google.com>
34829
34830         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34831         wasn't copied.
34832
34833 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34834
34835         PR middle-end/43354
34836         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34837         call insert_out_of_ssa_copy for default definitions.
34838
34839 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34840
34841         * graphite-clast-to-gimple.c (my_long_long): Defined.
34842         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34843         * graphite-sese-to-poly.c (my_long_long): Defined.
34844         (scop_ivs_can_be_represented): Use it.
34845
34846 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34847
34848         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34849         graphite-max-bbs-per-function, and loop-block-tile-size.
34850         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34851         with "maximum".
34852         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34853
34854 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34855
34856         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34857         forward declaration.
34858         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34859         (add_upper_bounds_from_estimated_nit): New.
34860         (build_loop_iteration_domains): Use it.
34861
34862 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34863
34864         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34865
34866 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34867
34868         PR middle-end/43306
34869         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34870         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34871
34872 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34873
34874         * graphite.c (graphite_initialize): To bound the number of bbs per
34875         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34876         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34877         * doc/invoke.texi: Document it.
34878
34879 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34880
34881         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34882         * graphite-sese-to-poly.h (build_poly_scop): Same.
34883
34884 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34885
34886         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34887         the number of parameters in the scop.  Use as an upper bound
34888         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34889         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34890         * doc/invoke.texi: Document it.
34891
34892 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34893
34894         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34895         * doc/c-tree.texi: Remove.
34896         * doc/generic.texi: Merge c-tree.texi here.
34897         * doc/gccint.texi (Trees): Remove menu entry.
34898         (c-tree.texi): Remove @include.
34899         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34900         * doc/languages.texi (Reading RTL): Ditto.
34901
34902 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34903
34904         PR target/42869
34905         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34906
34907 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34908
34909         PR middle-end/42431
34910         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34911         code added to work around reload clobbering CONST insns.
34912
34913 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34914
34915         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34916         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34917         (cselib_preserve_only_values): Remove retain argument, don't
34918         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34919         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34920         * var-tracking.c (micro_operation): Move insn field before union.
34921         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34922         (struct variable_tracking_info_def): Remove n_mos field, change
34923         mos into a vector of micro_operations.
34924         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34925         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34926         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34927         changing into a vector.
34928         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34929         come before all other uops generated by add_stores.
34930         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34931         argument removal.
34932         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34933         a vector.  Run just one pass over the bbs instead of separate counting
34934         and computation phase.
34935         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34936
34937         PR debug/43329
34938         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34939         into *nonlocalized_list vector.
34940         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34941         even if origin is non-NULL.
34942         (gen_variable_die): Likewise.
34943         (process_scope_var): Don't change origin.
34944         (gen_decl_die): Likewise.
34945         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34946         before adding new edges instead of after it, fix moving over
34947         debug stmts.
34948
34949 2010-03-11  David S. Miller  <davem@davemloft.net>
34950
34951         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34952         of four.
34953         * configure: Rebuild.
34954
34955 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34956
34957         PR tree-optimization/43257
34958         * tree.c (assign_assembler_name_if_neeeded): New function.
34959         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34960         above new function.
34961         * tree.h (assign_assembler_name_if_neeeded): Declare.
34962         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34963         the function if needed.
34964
34965 2010-03-11  Chris Demetriou  <cgd@google.com>
34966
34967         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34968         include/stdint-gcc.h, and include/stdint.h world-readable.
34969
34970 2010-03-11  Richard Guenther  <rguenther@suse.de>
34971
34972         PR tree-optimization/43255
34973         * tree-vrp.c (process_assert_insertions_for): Do not insert
34974         asserts for trivial conditions.
34975
34976 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34977
34978         PR tree-optimization/43280
34979         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34980         generation.  Move calculation of size out of the if branch.
34981         (find_bswap): Modify compare number generation.
34982
34983 2010-03-11  Richard Guenther  <rguenther@suse.de>
34984
34985         PR lto/43200
34986         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
34987         (input_gimple_stmt): Fixup handled component types during
34988         operand read.  Also fix up decls in ADDR_EXPRs.
34989
34990 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
34991
34992         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
34993         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
34994
34995 2010-03-10  Jan Hubicka  <jh@suse.cz>
34996
34997         PR c/43288
34998         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
34999         * varasm.c (get_variable_section): Don't do that here...
35000         (make_decl_rtl): ... and here.
35001         (do_assemble_alias): Produce decl RTL.
35002         (assemble_alias): Likewise.
35003
35004 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35005
35006         PR debug/43290
35007         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35008         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35009         of fde->vdrap_reg.
35010         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35011         (based_loc_descr): Only express drap or vdrap regno based expressions
35012         using DW_OP_fbreg when not optimizing.
35013         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35014         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35015         REG_CFA_SET_VDRAP note.
35016
35017 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35018
35019         PR tree-optimization/43236
35020         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35021         error in calculation of base address in reverse iteration case.
35022         (generate_builtin): Take number of latch executions if the statement
35023         is in the latch.
35024
35025 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35026
35027         PR middle-end/42859
35028         * tree-eh.c: Include pointer-set.h.
35029         (lower_eh_dispatch): Filter out duplicate case labels and
35030         remove the unneeded edge when the label is unused.  Return
35031         true when some edges are removed.
35032         (execute_lower_eh_dispatch): When any lowering resulted in
35033         removing an edge, also delete unreachable blocks.
35034
35035 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35036
35037         PR bootstrap/43287
35038         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35039         UNSPEC_MACHOPIC_OFFSET.
35040
35041 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35042
35043         PR target/43294
35044         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35045         (m68k_delegitimize_address): New function.
35046
35047 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35048
35049         PR debug/43299
35050         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35051
35052         PR debug/43299
35053         * var-tracking.c (adjust_sets): New function.
35054         (count_with_sets, add_with_sets): Use it.
35055         (get_adjusted_src): New inline function.
35056         (add_stores): Use it.
35057
35058         PR debug/43304
35059         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35060         call cselib_dummy_expand_value_rtx_cb instead of
35061         cselib_expand_value_rtx_cb.
35062
35063         PR debug/43293
35064         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35065         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35066         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35067         and .cfi_endproc around the pic thunks.
35068         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35069         all queued unwind info register saves are saved before the call.
35070         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35071         considered as sp-=4 for unwind info and the pop as sp+=4 which
35072         also clobbers dest, but doesn't actually restore it.
35073
35074         PR debug/43290
35075         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35076         RTX_FRAME_RELATED_P.
35077
35078 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35079
35080         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35081         whitespaces in output template.
35082
35083 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35084
35085         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35086         out array boundary.
35087
35088 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35089
35090         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35091         builtins.exp in a separate job.
35092
35093 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35094
35095         * graphite-sese-to-poly.c (add_param_constraints): Use
35096         lower_bound_in_type and upper_bound_in_type.
35097
35098 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35099
35100         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35101         instead of unsigned_type_node.
35102
35103 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35104             Reza Yazdani  <reza.yazdani@amd.com>
35105
35106         PR middle-end/43065
35107         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35108         on pointer type parameters.
35109
35110 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35111
35112         PR middle-end/42644
35113         PR middle-end/42130
35114         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35115         handle conversions from pointer to integers.
35116         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35117         induction variable, to be able to work with code generated by CLooG.
35118         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35119         (build_poly_scop): Bail out if we cannot codegen a loop.
35120
35121 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35122
35123         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35124         code generation with gloog_error.
35125
35126 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35127
35128         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35129         Call fold_convert on all the returned values.
35130         (expand_scalar_variables_expr): Pass to
35131         expand_scalar_variables_ssa_name the type of the resulting expression.
35132
35133 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35134
35135         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35136         ppl_min_for_le_pointset.
35137         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35138         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35139
35140 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35141
35142         * graphite-dependences.c (map_into_dep_poly): Removed.
35143         (dependence_polyhedron_1): Use combine_context_id_scat.
35144
35145 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35146
35147         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35148         (struct poly_bb): Same.
35149         (combine_context_id_scat): New.
35150
35151 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35152
35153         PR middle-end/42326
35154         * sese.c (name_defined_in_loop_p): Return false for default
35155         definitions.
35156
35157 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35158
35159         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35160         and clean up the logic.
35161
35162 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35163
35164         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35165         early return.
35166
35167 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35168
35169         * var-tracking.c (remove_cselib_value_chains): Define only for
35170         ENABLE_CHECKING.
35171         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35172         delete_slot_part, emit_notes_for_differences_1): Don't call
35173         remove_cselib_value_chains here.
35174         (set_slot_part, emit_notes_for_differences_2): Don't call
35175         add_cselib_value_chains here.
35176         (preserved_values): New vector.
35177         (preserve_value): New function.
35178         (add_uses, add_stores, vt_add_function_parameters): Use it
35179         instead of cselib_preserve_value.
35180         (changed_values_stack): New vector.
35181         (check_changed_vars_0): New function.
35182         (check_changed_vars_1, check_changed_vars_2): Use it.
35183         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35184         changed_values_stack VALUEs.
35185         (vt_emit_notes): For all preserved_values call
35186         add_cselib_value_chains.  If ENABLE_CHECKING call
35187         remove_cselib_value_chains before verifying value_chains is empty.
35188         Initialize and free changed_values_stack.
35189         (vt_initialize): Initialize preserved_values.
35190         (vt_finalize): Free preserved_values.
35191
35192 2010-03-08  Richard Guenther  <rguenther@suse.de>
35193
35194         PR tree-optimization/43269
35195         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35196         region detection.
35197
35198 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35199
35200         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35201         (ipa_is_param_called): Removed.
35202         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35203         (ipa_print_node_params): Do not print the called flag.
35204         (ipa_write_node_info): Do not stream the called flag.
35205         (ipa_read_node_info): Likewise.
35206
35207 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35208
35209         PR debug/43176
35210         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35211         * cselib.c (struct expand_value_data): Add dummy field.
35212         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35213         dummy to false.
35214         (cselib_dummy_expand_value_rtx_cb): New function.
35215         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35216         any rtl.
35217         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35218         * var-tracking.c: Include pointer-set.h.
35219         (variable): Change n_var_parts to char from int.  Add
35220         cur_loc_changed and in_changed_variables fields.
35221         (variable_canonicalize): Remove.
35222         (shared_var_p): New inline function.
35223         (unshare_variable): Maintain cur_loc_changed and
35224         in_changed_variables fields.  If var was in changed_variables,
35225         replace it there with new_var.  Just copy cur_loc instead of
35226         resetting it to something else.
35227         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35228         (dataflow_set_union): Don't call variable_canonicalize.
35229         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35230         of their DEBUG_EXPR_TREE_DECLs.
35231         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35232         and in_changed_variables and cur_loc_changed is false.
35233         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35234         and cur_loc_changed.  Don't update cur_loc here.
35235         (variable_merge_over_src): Don't call variable_canonicalize.
35236         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35237         removing loc that is equal to cur_loc, clear cur_loc,
35238         set cur_loc_changed and ensure variable_was_changed is called.
35239         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35240         compare pointers in cur_loc check, if it is equal to loc,
35241         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35242         (variable_different_p): Remove compare_current_location argument,
35243         don't compare cur_loc.
35244         (dataflow_set_different_1): Adjust variable_different_p caller.
35245         (variable_was_changed): If dv had some var in changed_variables
35246         already, reset in_changed_variables flag for it and propagate
35247         cur_loc_changed over to the new variable.  On empty var
35248         always set cur_loc_changed.  Set in_changed_variables on whatever
35249         var is added to changed_variables.
35250         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35251         Use shared_var_p.  When removing loc that is equal to cur_loc,
35252         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35253         end, don't set it to something else, just call variable_was_changed.
35254         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35255         loc being removed, clear cur_loc and set cur_loc_changed.
35256         Set cur_loc_changed if all locations have been removed.
35257         (struct expand_loc_callback_data): New type.
35258         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35259         allocated.  Always create SUBREGs if simplify_subreg failed.
35260         Prefer to use cur_loc, when that fails and still in
35261         changed_variables (and seen first time) recompute it.  Set
35262         cur_loc_changed of variables which had to change cur_loc and
35263         compute elcd->cur_loc_changed if any of the subexpressions used
35264         had to change cur_loc.
35265         (vt_expand_loc): Adjust to pass arguments in
35266         expand_loc_callback_data structure.
35267         (vt_expand_loc_dummy): New function.
35268         (emitted_notes): New variable.
35269         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35270         that weren't used for any other decl in current
35271         emit_notes_for_changes call call vt_expand_loc_dummy to update
35272         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35273         first loc_chain location if NULL before.  Always use just
35274         cur_loc instead of first loc_chain location.  When cur_loc_changed
35275         is false, when not --enable-checking=rtl just don't emit any note.
35276         When rtl checking, compute the note and assert it is the same
35277         as previous note.  Clear cur_loc_changed and in_changed_variables
35278         at the end before removing from changed_variables.
35279         (check_changed_vars_3): New function.
35280         (emit_notes_for_changes): Traverse changed_vars to call
35281         check_changed_vars_3 on each changed var.
35282         (emit_notes_for_differences_1): Clear cur_loc_changed and
35283         in_changed_variables.  Recompute cur_loc of new_var.
35284         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35285         (vt_emit_notes): Initialize and destroy emitted_notes.
35286
35287 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35288
35289         PR rtl-optimization/42220
35290         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35291         Use verify_reg_tracked to determine if we should use OP_OUT rather
35292         than OP_INOUT.
35293         (build_def_use): If we see an in-out operand for a register that we
35294         know nothing about, treat is an output if possible, fail the block if
35295         not.
35296
35297 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35298
35299         PR debug/42897
35300         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35301         permanently.
35302
35303 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35304
35305         PR debug/42897
35306         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35307         uses of relevant DEFs that are dead outside the loop too.
35308
35309 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35310
35311         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35312         Reverted:
35313         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35314         PR debug/41371
35315         * var-tracking.c (values_to_unmark): New variable.
35316         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35317         values_to_unmark vector.  Moved body to...
35318         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35319         instead queue it into values_to_unmark vector.
35320         (vt_find_locations): Free values_to_unmark vector.
35321
35322 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35323
35324         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35325         (site.exp): Export them when plugins are enabled.
35326
35327 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35328
35329         PR middle-end/42326
35330         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35331         that contain scevs.
35332         (chrec_fold_multiply): Same.
35333
35334 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35335
35336         PR c/43248
35337         * c-decl.c (build_compound_literal): Return early if init is
35338         an error_mark_node.
35339
35340 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35341
35342         PR tree-optimization/43164
35343         PR tree-optimization/43191
35344         * tree-sra.c (type_consists_of_records_p): Reject records with
35345         zero-size bit-fields at the end.
35346
35347 2010-03-04  Mike Stump  <mikestump@comcast.net>
35348
35349         * Makefile.in (TAGS): Remove *.y.
35350
35351 2010-03-04  Richard Guenther  <rguenther@suse.de>
35352
35353         PR tree-optimization/40761
35354         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35355         in reverse order.
35356         (my_rev_post_order_compute): New function.
35357         (init_pre): Call it.
35358
35359 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35360
35361         PR middle-end/43209
35362         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35363         decrease the cost of an IV candidate when the cost is infinite.
35364
35365 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35366
35367         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35368         Use '3DNow!' for the extension of that name, ensure normal space
35369         after the string.
35370         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35371
35372 2010-03-03  Jeff Law  <law@redhat.com>
35373
35374         * PR middle-end/32693
35375         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35376         than gen_rtx_SUBREG.
35377         (extract_bit_field_1): Likewise.
35378
35379 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35380
35381         * doc/sourcebuild.texi (Test directives): Document that arguments
35382         include-opts and exclude-opts are now optional for dg-skip-if,
35383         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35384
35385 2010-03-03  Jason Merrill  <jason@redhat.com>
35386
35387         PR c++/12909
35388         * cgraph.h (varpool_node): Add extra_name field.
35389         * varpool.c (varpool_extra_name_alias): New.
35390         (varpool_assemble_decl): Emit extra name aliases.
35391         (varpool_mark_needed_node): Look past an extra name alias.
35392         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35393         * lto-streamer-in.c (lto_input_tree): Read it.
35394         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35395
35396 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35397
35398         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35399         (sparc*-*-solaris2*): ...this.
35400
35401 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35402
35403         PR debug/43229
35404         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35405         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35406         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35407         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35408
35409         PR debug/43237
35410         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35411         fallthrough to default handling, just with want_address 0 instead of 2.
35412         For single element lists, add_AT_loc directly, otherwise create an
35413         artificial variable DIE and stick location list to it.
35414
35415         PR debug/43177
35416         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35417         (VAL_EXPR_HAS_REVERSE): Define.
35418         (reverse_op): New function.
35419         (add_stores): For reversible operations add an extra MO_VAL_USE.
35420
35421 2010-03-02  Jason Merrill  <jason@redhat.com>
35422
35423         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35424
35425 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35426
35427         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35428         (sparc64-*-linux*): Likewise.
35429         (sparc64-*-solaris2*): Include assembler files before linker ones.
35430         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35431         * config/sparc/gas.h: Delete.
35432         * config/sparc/sol2-64.h: Add copyright notice.
35433         * config/sparc/sol2-gas-bi.h: Likewise.
35434         * config/sparc/sol2-gld.h: Likewise.
35435         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35436         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35437         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35438         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35439         (sparc_elf_asm_named_section): Rename into...
35440         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35441
35442 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35443
35444         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35445
35446 2010-03-02  Jeff Law  <law@redhat.com>
35447
35448         PR middle-end/42431
35449         * reload1.c (rtx_p, substitute_stack): Declare.
35450         (substitute): Record addresses of changed rtxs.
35451         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35452         Restore the original rtx when complete.
35453         (reload): Free subsitute_stack when complete.
35454
35455 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35456
35457         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35458         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35459         new chapter.
35460         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35461         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35462         Torture Tests): Change from subsection to section.
35463
35464 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35465             Steven Bosscher  <steven@gcc.gnu.org>
35466
35467         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35468         instead of bb.
35469
35470 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35471
35472         PR middle-end/42640
35473         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35474         the assignment from the new induction variable to the assignment
35475         of the value from the original loop PHI function.
35476
35477 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35478             Daniel Jacobowitz  <dan@codesourcery.com>
35479
35480         * doc/sourcebuild.texi (Test directives): Clarify options to
35481         dg-skip-if.
35482
35483 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35484
35485         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35486         Disable cfi directives unless GCC and gas agree on using read-only
35487         .eh_frame sections for 64-bit.
35488         * configure: Regenerate.
35489
35490 2010-03-01  Richard Guenther  <rguenther@suse.de>
35491
35492         PR tree-optimization/43220
35493         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35494         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35495
35496 2010-03-01  Richard Guenther  <rguenther@suse.de>
35497             Martin Jambor  <mjambor@suse.cz>
35498
35499         PR middle-end/41250
35500         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35501         gimplified parameters.
35502
35503 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35504
35505         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35506
35507 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35508
35509         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35510
35511 2010-03-01  Richard Guenther  <rguenther@suse.de>
35512
35513         PR middle-end/43213
35514         * expr.c (expand_assignment): Use the alias-oracle to tell
35515         if the rhs aliases the result decl.
35516
35517 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35518
35519         PR pch/14940
35520         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35521         to sol_gt_pch_get_address.
35522         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35523         64-bit, SPARC and x86.
35524         (sol_gt_pch_get_address): New function.
35525
35526 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35527
35528         * toplev.h (inform_n, error_n): Declare.
35529         * diagnostic.c (inform_n, error_n): New function.
35530
35531 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35532
35533         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35534         has no rtl yet when processing local_decls, queue it and recheck
35535         if deferred stack allocation hasn't assigned it rtl.
35536
35537 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35538
35539         * config/sh/sh.c (unspec_bbr_uid): New.
35540         (gen_block_redirect): Use it instead of INSN_UID.
35541         (gen_far_branch): Likewise.
35542
35543 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35544
35545         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35546         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35547
35548 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35549
35550         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35551         (Warning Options): -Wno-conversion-null is valid for
35552         Objective-C++ as well.
35553         * doc/tm.texi (Named Address Spaces): Likewise.
35554         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35555         * doc/tree-ssa.texi (Tree SSA): Likewise.
35556
35557 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35558
35559         PR bootstrap/43202
35560         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35561         by default.  Don't set the default arch for
35562         i[34567]86-*-darwin*|x86_64-*-darwin*.
35563
35564 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35565
35566         PR bootstrap/43202
35567         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35568         default.  Set the default 32bit/64bit archs with $with_arch
35569         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35570
35571 2010-02-27  Richard Guenther  <rguenther@suse.de>
35572
35573         PR tree-optimization/43186
35574         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35575         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35576         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35577         unroller iterations.
35578
35579 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35580
35581         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35582         required and i[34567]86-*-* targets don't support 64bit ISA.
35583
35584 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35585
35586         PR ada/43096
35587         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35588         the same alias set.
35589
35590 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35591
35592         * config.gcc: Set the default arch at least to Prescott for
35593         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35594         if SSE math is enabled.
35595
35596 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35597
35598         * diagnostic.c (diagnostic_initialize): Update.
35599         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35600         informative notes.
35601         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35602         (diagnostic_inhibit_notes): New.
35603         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35604
35605 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35606
35607         PR c/20631
35608         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35609         * doc/standards.texi: Likewise.
35610         * doc/extend.texi: Likewise.
35611         * doc/trouble.texi: Likewise.
35612         * doc/cppopts.texi: Likewise.
35613         * doc/install.texi: Likewise.
35614         * c.opt (std=c90,std=gnu90): New options.
35615         * c-opts.c (c_common_handle_option): Handle them.
35616
35617 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35618
35619         PR c/24577
35620         * c-decl.c (undeclared_variable): Use an informative note.
35621
35622 2010-02-26  Richard Guenther  <rguenther@suse.de>
35623
35624         PR tree-optimization/43186
35625         * gimple.h (gimple_fold): Remove.
35626         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35627         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35628         Try harder for conditions.
35629
35630 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35631
35632         PR debug/43190
35633         * function.c (used_types_insert): Don't skip through named pointer
35634         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35635         and it is different from the main variant's type.
35636
35637 2010-02-26  Nick Clifton  <nickc@redhat.com>
35638
35639         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35640
35641 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35642
35643         * config.gcc: Support --with-fpmath=sse for x86.
35644
35645         * config/i386/ssemath.h: New.
35646
35647         * doc/install.texi (--with-fpmath=sse): Documented.
35648
35649 2010-02-26  Richard Guenther  <rguenther@suse.de>
35650
35651         PR tree-optimization/43188
35652         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35653         vector types of over-aligned element type.
35654
35655 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35656
35657         PR target/43175
35658         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35659         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35660
35661 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35662
35663         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35664
35665 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35666
35667         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35668         * var-tracking.c: Include diagnostic.h.
35669         (debug_dv): New function.
35670         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35671
35672         PR debug/43160
35673         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35674         (add_value_chain, add_value_chains, remove_value_chain,
35675         remove_value_chains): Handle DEBUG_EXPRs.
35676         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35677
35678         PR debug/43161
35679         * regcprop.c (struct queued_debug_insn_change): New type.
35680         (struct value_data_entry): Add debug_insn_changes field.
35681         (struct value_data): Add n_debug_insn_changes field.
35682         (debug_insn_changes_pool): New variable.
35683         (free_debug_insn_changes, apply_debug_insn_changes,
35684         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35685         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35686         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35687         fields.
35688         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35689         changes for them.
35690         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35691         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35692         changes, call cprop_find_used_regs via note_stores.
35693         (copyprop_hardreg_forward): When copying vd from predecessor
35694         which has any queued DEBUG_INSN changes, make sure the pointers are
35695         cleared.  At the end call df_analyze and then if there are any
35696         DEBUG_INSN changes queued at the end of some basic block for still
35697         live registers, apply them.
35698         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35699
35700 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35701
35702         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35703         (arm*-*-*): Ditto.
35704
35705 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35706
35707         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35708         targets.  Set the default with_cpu/with_arch from arch/cpu.
35709         Allow x86-64 and native for with_cpu/with_arch.
35710
35711 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35712
35713         * ebitmap.c: Change calls to verify_popcount with calls to
35714         sbitmap_verify_popcount.
35715         (ebitmap_clear_bit): Fixed map->cacheindex test and
35716         map>cache update when bit clearing results in an empty
35717         element.
35718
35719 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35720
35721         PR target/43154
35722         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35723         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35724         and support both V2DF and V2DI modes.
35725         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35726         support both V2DF and V2DI modes.
35727         (general): Delete trailing whitespace from a few patterns.
35728
35729         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35730         V2DF/V2DI interleave high/low builtins.
35731
35732         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35733         new VSX builtins.
35734
35735         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35736         interleave high/low functions.
35737
35738 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35739
35740         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35741         #pragma extern_prefix.
35742
35743 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35744
35745         PR debug/43166
35746         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35747         BLKmode, assert op0 is a MEM and just adjust its mode.
35748
35749         PR debug/43165
35750         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35751         if bitpos isn't multiple of mode's bitsize.
35752
35753 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35754
35755         * c.opt (-ftemplate-depth=): New.
35756         (-ftemplate-depth-): Deprecate.
35757         * optc-gen.awk: Handle -ftemplate-depth=.
35758         * opth-gen.awk: Likewise.
35759         * c-opts.c (c_common_handle_option): Likewise.
35760         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35761
35762 2010-02-24  Jason Merrill  <jason@redhat.com>
35763
35764         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35765
35766 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35767
35768         * cfg.c (alloc_aux_for_block): Remove inline.
35769         (alloc_aux_for_edge): Likewise.
35770
35771 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35772
35773         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35774
35775 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35776
35777         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35778         * config/i386/sol2-gas.h: New file.
35779         * config.gcc (i[34567]86-*-solaris2*): Use it.
35780
35781 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35782
35783         PR c/43128
35784         * c-typeck.c (ep_convert_and_check): New.
35785         (build_conditional_expr): Use it.
35786         (build_binary_op): Likewise.
35787
35788 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35789
35790         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35791
35792         PR debug/43150
35793         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35794         bounds even for -O+.
35795         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35796         expr needs to have DECL_NAME set.
35797
35798 2010-02-24  Nick Clifton  <nickc@redhat.com>
35799
35800         * config/mep/mep.c: Include gimple.h.
35801         (mep_function_uses_sp): Delete unused function.
35802         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35803         parameters.  Use unsigned integers to count args.  Return a
35804         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35805
35806 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35807
35808         PR target/43107
35809         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35810         greater or equal to nelt instead of 2 * nelt.
35811         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35812         with nelt - 1.
35813
35814 2010-02-23  Jason Merrill  <jason@redhat.com>
35815
35816         PR debug/42800
35817         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35818         in cfun->local_decls even if they have register types.
35819
35820         PR c++/42837
35821         * stor-layout.c (place_field): Don't warn about unnecessary
35822         DECL_PACKED if the type is packed.
35823
35824 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35825
35826         PR target/43139
35827         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35828         GOTOFF relocs, even when the base reg isn't pic pointer.
35829
35830 2010-02-23  Michael Matz  <matz@suse.de>
35831
35832         PR debug/43077
35833         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35834         (expand_gimple_basic_block): Generate and use debug temps if there
35835         are debug uses left after the last real use of TERed ssa names.
35836         Unlink debug immediate uses when they are expanded.
35837
35838 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35839
35840         PR 43123
35841         * config/i386/i386.c (override_options): Reorganise to provide
35842         better error messages.
35843
35844 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35845
35846         PR middle-end/43083
35847         * graphite-scop-detection.c (create_single_exit_edge): Move
35848         the call to find_single_exit_edge to....
35849         (create_sese_edges): ...here.  Don't handle multiple edges
35850         exiting the function.
35851         (build_graphite_scops): Don't handle multiple edges
35852         exiting the function.
35853
35854 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35855
35856         PR middle-end/43097
35857         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35858         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35859
35860 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35861
35862         PR middle-end/43026
35863         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35864
35865 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35866
35867         PR c++/43126
35868         * c-typeck.c (convert_arguments): Print declaration location.
35869         * c-common.c (validate_nargs): Rename as
35870         builtin_function_validate_nargs.
35871         (check_builtin_function_arguments): Update.
35872
35873 2010-02-22  Richard Guenther  <rguenther@suse.de>
35874
35875         PR lto/43045
35876         * tree-inline.c (declare_return_variable): Use the type of
35877         the call stmt lhs if available.
35878
35879 2010-02-22  Duncan Sands  <baldrick@free.fr>
35880
35881         * passes.c (register_pass): Always consider all pass lists when
35882         ref_pass_instance_number is zero.
35883
35884 2010-02-22  Richard Guenther  <rguenther@suse.de>
35885
35886         PR tree-optimization/42749
35887         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35888         parameter.  Do arithmetic in the original type.
35889         (update_accumulator_with_ops): Likewise.
35890         (adjust_accumulator_values): Adjust.
35891
35892 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35893
35894         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35895         (QI to BLKmode splitter): New splitter.
35896
35897 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35898
35899         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35900         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35901
35902 2010-02-22  Richard Guenther  <rguenther@suse.de>
35903
35904         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35905
35906 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35907
35908         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35909         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35910         ($(T)crti.o, $(T)crtn.o): Remove rules.
35911
35912 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35913
35914         PR fortran/35259
35915         * doc/invoke.texi (-fassociative-math): Document that this
35916         option is automatically enabled for Fortran.
35917
35918 2010-02-20  David S. Miller  <davem@davemloft.net>
35919
35920         * configure.ac: Test if linker and assembler properly support
35921         GOTDATA_OP relocations.
35922         * configure: Rebuild.
35923         * config.in: Likewise.
35924         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35925         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35926         (movsi_high_pic): Likewise.
35927         (movdi_lo_sum_pic): Likewise.
35928         (movdi_high_pic): Likewise.
35929         (movsi_pic_gotdata_op): New pattern.
35930         (movdi_pic_gotdata_op): Likewise.
35931         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35932         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35933
35934 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35935
35936         PR target/43067
35937         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35938         attribute to ssemul.
35939         (xop_mulv2div2di3_high): Ditto.
35940
35941 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35942
35943         PR c++/35669
35944         * c.opt (Wconversion-null): New option.
35945         * doc/invoke.texi (Wconversion-null): Document.
35946
35947 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35948
35949         * common.opt (Wlarger-than-): Add Undocumented.
35950
35951 2010-02-19  Mike Stump  <mikestump@comcast.net>
35952
35953         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35954
35955 2010-02-19  Jason Merrill  <jason@redhat.com>
35956
35957         PR target/40332
35958         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35959         * configure: Likewise.
35960
35961 2010-02-20  Alan Modra  <amodra@gmail.com>
35962
35963         PR middle-end/42344
35964         * cgraph.h (cgraph_make_decl_local): Declare.
35965         * cgraph.c (cgraph_make_decl_local): New function.
35966         (cgraph_make_node_local): Use it.
35967         * cgraphunit.c (cgraph_function_versioning): Likewise.
35968         * ipa.c (function_and_variable_visibility): Likewise.
35969
35970 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35971
35972         PR bootstrap/43121
35973         * except.c (sjlj_emit_function_enter): Don't call
35974         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35975         directly.
35976         * rtl.h (add_reg_br_prob_note): Remove prototype.
35977
35978 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35979
35980         PR 41779
35981         * c-common.c (conversion_warning): Remove widening conversions
35982         before checking the conversion of integers to reals.
35983
35984 2010-02-19  Mike Stump  <mikestump@comcast.net>
35985
35986         PR middle-end/43125
35987         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
35988
35989         PR objc/43061
35990         * cgraphunit.c (process_function_and_variable_attributes): Check
35991         DECL_PRESERVE_P instead of looking up attribute "used".
35992         * ipa-pure-const.c (check_decl): Likewise.
35993         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
35994         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
35995         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
35996         instead of attribute "used".
35997         * config/sol2-c.c (solaris_pragma_init): Likewise.
35998         (solaris_pragma_fini): Likewise.
35999
36000 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36001
36002         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36003         Use XCNEW instead of xcalloc.
36004         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36005         XNEW instead of xmalloc.
36006         (get_fields): Use XNEWVEC instead of xmalloc.
36007
36008         PR debug/43084
36009         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36010         populate vars array.
36011         (create_new_general_access): For debug stmts just reset value.
36012         (get_stmt_accesses): For accesses within debug stmts just record them
36013         using add_access_to_acc_sites instead of preventing the peeling or
36014         counting them as accesses.
36015
36016         PR middle-end/42233
36017         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36018
36019 2010-02-19  Richard Guenther  <rguenther@suse.de>
36020
36021         PR tree-optimization/42916
36022         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36023         instructions.
36024
36025 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36026
36027         * configure.ac: Replace all uses of changequote in macro arguments
36028         with proper quoting.
36029
36030 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36031
36032         PR middle-end/42233
36033         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36034
36035 2010-02-19  Richard Guenther  <rguenther@suse.de>
36036
36037         PR tree-optimization/42944
36038         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36039         test for aliasing with errno.
36040
36041 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36042
36043         PR middle-end/42233
36044         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36045         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36046         * dojump.c: Include output.h.
36047         (inv): New inline function.
36048         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36049         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36050         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36051         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36052         argument, pass it down to other calls.
36053         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36054         add REG_BR_PROB note to the conditional jump.
36055         * cfgexpand.c (add_reg_br_prob_note): Removed.
36056         (expand_gimple_cond): Don't call it, add the probability
36057         as last argument to jumpif_1/jumpifnot_1.
36058         * Makefile.in (dojump.o): Depend on output.h.
36059         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36060         callers.
36061         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36062         * stmt.c (do_jump_if_equal): Likewise.
36063         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36064         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36065         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36066         Likewise.
36067         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36068         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36069         jumpifnot_1 callers.
36070         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36071         callers.
36072         (store_expr): Adjust jumpifnot caller.
36073         (store_constructor): Adjust jumpif caller.
36074
36075         PR middle-end/42233
36076         * gimplify.c (gimple_boolify): For __builtin_expect call
36077         gimple_boolify also on its first argument.
36078
36079 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36080
36081         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36082         changequote block.
36083         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36084         * configure: Regenerated.
36085
36086 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36087
36088         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36089         lang_hooks.types_compatible_p instead of comptypes.
36090
36091 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36092
36093         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36094         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36095         if __prefer_thumb__ is defined.
36096
36097 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36098
36099         PR tree-optimization/43066
36100         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36101         array with zero-sized element type.
36102
36103 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36104
36105         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36106         rtx, allocate struct var_loc_node here and return it to the
36107         caller, and only if it is actually needed.
36108         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36109         move it earlier and return immediately if it returns NULL.
36110
36111 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36112
36113         * config/sparc/gas.h: New file.  Restore
36114         TARGET_ASM_NAMED_SECTION to its ELF default.
36115         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36116         check !HAVE_GNU_AS.
36117         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36118         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36119         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36120         after sparc/sysv4.h.
36121
36122 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36123
36124         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36125
36126 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36127
36128         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36129         patterns from predicated pattern.
36130
36131 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36132
36133         PR target/43103
36134         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36135         for insn mnemonic suffix.
36136
36137 2010-02-17  Richard Guenther  <rguenther@suse.de>
36138
36139         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36140         to loop PHI nodes.
36141
36142 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36143
36144         PR debug/42918
36145         * caller-save.c (save_call_clobbered_regs): If BB ends with
36146         a DEBUG_INSN, move any notes in between last real insn and the last
36147         DEBUG_INSN after the last DEBUG_INSN.
36148
36149 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36150
36151         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36152         Fix return type.  Fix argument type.  Explain meaning of return value.
36153
36154 2010-02-16  Richard Guenther  <rguenther@suse.de>
36155
36156         PR tree-optimization/41043
36157         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36158         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36159         statements ...
36160         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36161
36162 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36163
36164         PR tree-optimization/43074
36165         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36166         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36167         vectorizable cycles in hybrid SLP check.
36168         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36169
36170 2010-02-16  Richard Guenther  <rguenther@suse.de>
36171
36172         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36173         (true_dependence): If memrefs_conflict_p computes must-alias
36174         trust it.  Move TBAA check after offset-based disambiguation.
36175         (canon_true_dependence): Likewise.
36176
36177 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36178
36179         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36180         * doc/invoke.texi: Document it.
36181         * var-tracking.c: Include toplev.h and params.h.
36182         (vt_find_locations): Return bool indicating success.  Compute
36183         hash sizes unconditionally.  Check new parameter, report.
36184         (variable_tracking_main_1): Check vt_find_locations results and
36185         retry.  Renamed from...
36186         (variable_tracking_main): ... this.  New wrapper to preserve
36187         flag_var_tracking_assignments.
36188         * Makefile.in (var-tracking.o): Adjust dependencies.
36189
36190 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36191             Jakub Jelinek  <jakub@redhat.com>
36192
36193         PR target/42854
36194         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36195         if weak_import attribute is present.
36196         * config/darwin.c (machopic_select_section): Likewise.
36197
36198 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36199
36200         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36201         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36202         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36203         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36204
36205         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36206         types.
36207
36208         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36209         Fix argument types.
36210
36211         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36212         Rewrite text to refer to the names.
36213
36214 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36215
36216         * config/i386/i386-builtin-types.def
36217         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36218         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36219         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36220         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36221         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36222         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36223         IX86_BUILTIN_VPERMIL2PS256.
36224         (MULTI_ARG_4_DF2_DI_I): Defined.
36225         (MULTI_ARG_4_DF2_DI_I1): Defined.
36226         (MULTI_ARG_4_SF2_SI_I): Defined.
36227         (MULTI_ARG_4_SF2_SI_I1): Defined.
36228         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36229         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36230         __builtin_ia32_vpermil2ps256.
36231         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36232         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36233         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36234         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36235         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36236         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36237         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36238         CODE_FOR_xop_vpermil2v8sf3.
36239         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36240         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36241         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36242         (_mm256_permute2_pd): New.
36243         (_mm_permute2_ps): New.
36244         (_mm256_permute2_ps): New.
36245
36246 2010-02-15  Nick Clifton  <nickc@redhat.com>
36247
36248         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36249         boolean parameters.  Use emit_jump_insn when emitting a pop
36250         instruction containing a return insn.
36251         (push): Use 'true' rather than '1' as second parameter to F.
36252         (h8300_expand_prologue): Likewise.
36253         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36254         (h8300_expand_epilogue): Likewise.
36255
36256 2010-02-15  Richard Guenther  <rguenther@suse.de>
36257
36258         PR middle-end/43068
36259         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36260         if that is zero.
36261
36262 2010-02-15  Nick Clifton  <nickc@redhat.com>
36263
36264         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36265         delta.
36266
36267 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36268
36269         * intl.c (fake_ngettext): New function.
36270         * intl.h (fake_ngettext): Declare.
36271         (ngettext): Define macro.
36272         * collect2.c (notice_translated): New function.
36273         (main): Use notice_translated and ngettext.
36274         * collect2.h (notice_translated): Declare.
36275
36276 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36277
36278         * reorg.c (delete_computation): Comment fixes.
36279         * caller-save.c (setup_save_areas): Idem.
36280         * sel-sched-dump.c (dump_lv_set): Idem.
36281         * rtl.def: Idem.
36282
36283 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36284
36285         * config/s390/s390.c (s390_sched_init): New function.
36286         (TARGET_SCHED_INIT): Target hook defined.
36287
36288 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36289             Jack Howarth  <howarth@bromo.med.uc.edu>
36290             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36291
36292         PR target/42982
36293         Partial revert of unintended change in fix for PR41605.
36294         * config/darwin.h: Fix typo.
36295         * config/darwin9.h: Same.
36296
36297 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36298
36299         * c-pch.c (pch_init): Clear v.
36300
36301 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36302
36303         PR middle-end/42930
36304         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36305         graphite_can_represent_init for MULT_EXPR.
36306
36307 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36308
36309         PR middle-end/42914
36310         PR middle-end/42530
36311         * graphite-sese-to-poly.c (remove_phi): New.
36312         (translate_scalar_reduction_to_array): Call remove_phi.
36313
36314 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36315
36316         PR middle-end/42771
36317         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36318         * graphite-clast-to-gimple.h (gloog): Update declaration.
36319         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36320         * graphite-poly.h (struct poly_bb): Add missing comments.
36321         (struct scop): Add poly_scop_p field.
36322         (POLY_SCOP_P): New.
36323         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36324         * graphite.c (graphite_transform_loops): Build the polyhedral
36325         representation for each scop before code generation.
36326         * sese.c (rename_variables_in_operand): Removed.
36327         (rename_variables_in_expr): Return the renamed expression.
36328         (rename_sese_parameters): New.
36329         * sese.h (rename_sese_parameters): Declared.
36330
36331 2010-02-11  Richard Guenther  <rguenther@suse.de>
36332
36333         PR tree-optimization/42998
36334         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36335         POINTER_PLUS_EXPR properly.
36336
36337 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36338             Changpeng Fang  <changpeng.fang@amd.com>
36339
36340         PR middle-end/40886
36341         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36342         the cost of an IV candidate when the IV is used in a test against zero.
36343
36344         * gcc.dg/tree-ssa/ivopts-3.c: New.
36345
36346 2010-02-11  Richard Guenther  <rguenther@suse.de>
36347
36348         PR lto/41664
36349         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36350         pointer-vs-decl case by swapping refs.  Handle some cases
36351         of pointer-vs-decl disambiguations more conservatively.
36352         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36353         to false after expanding.
36354
36355 2010-02-11  Richard Guenther  <rguenther@suse.de>
36356
36357         PR driver/43021
36358         * gcc.c (process_command): Handle LTO file@offset case more
36359         appropriately.
36360
36361 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36362
36363         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36364         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36365         of DEBUG_INSNs.
36366         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36367
36368         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36369         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36370         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36371         Optimize eq/ne comparisons when both arguments are known to be
36372         zero-extended.
36373         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36374         Don't mask operands unnecessarily if they are known to be already
36375         zero-extended.
36376
36377 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36378
36379         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36380         instead of loop.
36381
36382 2010-02-10  Richard Guenther  <rguenther@suse.de>
36383
36384         PR tree-optimization/43017
36385         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36386         for wrapping signed arithmetic.
36387
36388 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36389
36390         PR debug/43010
36391         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36392         if no debug info should be emitted for it.
36393
36394 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36395
36396         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36397         note when flag_exceptions is set.
36398
36399 2010-02-10  Duncan Sands  <baldrick@free.fr>
36400
36401         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36402
36403 2010-02-10  Richard Guenther  <rguenther@suse.de>
36404
36405         PR c/43007
36406         * tree.c (get_unwidened): Handle constants.
36407         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36408
36409 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36410
36411         PR lto/42985
36412         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36413         check for variable argument counts independently.
36414
36415 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36416
36417         PR target/42841
36418         * config/sh/sh.c (find_barrier): Increase length for non delayed
36419         conditional branches.
36420
36421 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36422
36423         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36424
36425 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36426
36427         * builtins.c (set_builtin_user_assembler_name): Also handle
36428         ffs if int is smaller than word.
36429
36430 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36431
36432         PR middle-end/42973
36433         * ira-conflicts.c (get_dup): Remove.
36434         (process_reg_shuffles): Add new parameter.  Use it as an
36435         additional guard for copy generation.
36436         (add_insn_allocno_copies): Rewrite.
36437
36438 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36439
36440         * common.opt (fsched2-use-traces): Preserved for backward
36441         compatibility.
36442         * doc/invoke.texi: Remove the documentation about option
36443         -fsched2-use-traces.
36444         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36445         flag_sched2_use_traces.
36446         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36447         the backward compatibility flag section.
36448
36449 2010-02-09  Richard Guenther  <rguenther@suse.de>
36450
36451         PR tree-optimization/43008
36452         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36453         make HEAP variables initialized from global memory if they
36454         are not known builtin functions.
36455         (find_func_aliases): Adjust.
36456
36457 2010-02-09  Richard Guenther  <rguenther@suse.de>
36458
36459         PR tree-optimization/43000
36460         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36461         arithmetic manually.
36462
36463 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36464
36465         PR tree-optimization/42931
36466         * tree-loop-linear.c (try_interchange_loops): Don't call
36467         double_int_mul if estimated_loop_iterations failed.
36468
36469 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36470
36471         PR middle-end/42898
36472         * tree-sra.c (build_accesses_from_assign): Do not mark in
36473         should_scalarize_away_bitmap if stmt has volatile ops.
36474         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36475         has volatile ops.
36476
36477 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36478
36479         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36480
36481 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36482
36483         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36484         before the pattern.
36485
36486 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36487
36488         PR middle-end/42946
36489         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36490
36491 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36492
36493         PR middle-end/42988
36494         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36495         to unknown_dependence.
36496         (graphite_legal_transform_dr): Handle the unknown_dependence.
36497         (graphite_carried_dependence_level_k): Same.
36498
36499 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36500
36501         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36502
36503 2010-02-07  Richard Guenther  <rguenther@suse.de>
36504
36505         PR middle-end/42991
36506         * expr.c (get_inner_reference): Always initialize *pbitsize.
36507
36508 2010-02-07  Richard Guenther  <rguenther@suse.de>
36509
36510         PR middle-end/42956
36511         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36512         new ARRAY_REFs on variable size element or minimal index arrays.
36513         Complete.
36514         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36515         gimple_fold_indirect_ref.
36516
36517 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36518
36519         PR target/42957
36520         * arm.c (arm_override_options): Just return if the user has specified
36521         an invalid fpu name.
36522
36523 2010-02-03  Jason Merrill  <jason@redhat.com>
36524
36525         PR c++/42870
36526         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36527         i386_pe_maybe_record_exported_symbol.
36528
36529 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36530
36531         PR target/42924
36532         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36533         (pa_delegitimize_address): New function.
36534
36535 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36536
36537         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36538         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36539
36540 2010-02-05  Richard Guenther  <rguenther@suse.de>
36541
36542         PR lto/42762
36543         * lto-streamer-in.c (get_resolution): Deal with references
36544         to undefined functions.
36545
36546 2010-02-05  Richard Guenther  <rguenther@suse.de>
36547
36548         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36549         (fold_const_aggregate_ref): Likewise.
36550         (ccp_fold_stmt): Substitute loads.
36551         (maybe_fold_reference): Verify types before substituting.
36552         Unshare properly.
36553         (fold_gimple_assign): Unshare properly.
36554         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36555
36556 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36557
36558         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36559         for rs6000_gen_cell_microcode.
36560
36561 2010-02-04  Richard Guenther  <rguenther@suse.de>
36562
36563         PR rtl-optimization/42952
36564         * dse.c (const_or_frame_p): Remove MEM handling.
36565
36566 2010-02-04  Nick Clifton  <nickc@redhat.com>
36567
36568         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36569         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36570         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36571         (mn10300_asm_output_mi_thunk): New function.
36572         (mn10300_can_output_mu_thunk): New function.
36573         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36574         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36575         (FUNCTION_ARG): Delete incorrect comment.
36576
36577 2010-02-03  Jason Merrill  <jason@redhat.com>
36578
36579         PR c++/40138
36580         * fold-const.c (operand_equal_p): Handle erroneous types.
36581
36582 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36583
36584         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36585
36586 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36587
36588         PR rtl-optimization/42941
36589         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36590         of xmalloc.
36591
36592 2010-02-03  Jason Merrill  <jason@redhat.com>
36593
36594         PR c++/35652
36595         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36596
36597 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36598
36599         PR debug/42896
36600         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36601         (cselib_reset_table): Renamed from...
36602         (cselib_reset_table_with_next_value): ... this.
36603         (cselib_get_next_uid): Renamed from...
36604         (cselib_get_next_unknown_value): ... this.
36605         * cselib.c (next_uid): Renamed from...
36606         (next_unknown_value): ... this.
36607         (cselib_clear_table): Adjust.
36608         (cselib_reset_table): Adjust.  Renamed from...
36609         (cselib_reset_table_with_next_value): ... this.
36610         (cselib_get_next_uid): Adjust.  Renamed from...
36611         (cselib_get_next_unknown_value): ... this.
36612         (get_value_hash): Use hash.
36613         (cselib_hash_rtx): Likewise.
36614         (new_cselib_val): Adjust.  Set and dump uid.
36615         (cselib_lookup_mem): Pass next_uid as hash.
36616         (cselib_subst_to_values): Likewise.
36617         (cselib_log_lookup): Dump uid.
36618         (cselib_lookup): Pass next_uid as hash.  Adjust.
36619         (cselib_process_insn): Adjust.
36620         (cselib_init): Initialize next_uid.
36621         (cselib_finish): Adjust.
36622         (dump_cselib_table): Likewise.
36623         * dse.c (canon_address): Dump value uid.
36624         * print-rtl.c (print_rtx): Print value uid.
36625         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36626         (dvuid): New type.
36627         (dv_uid): New function, sort of renamed from...
36628         (dv_htab_hash): ... this, reimplemented in terms of it and...
36629         (dv_uid2hash): ... this.  New.
36630         (variable_htab_eq): Drop excess assertions.
36631         (tie_break_pointers): Removed.
36632         (canon_value_cmp): Compare uids.
36633         (variable_post_merge_New_vals): Print uids.
36634         (vt_add_function_parameters): Adjust.
36635         (vt_initialize): Reset table.  Adjust.
36636
36637 2010-02-03  Richard Guenther  <rguenther@suse.de>
36638
36639         PR tree-optimization/42944
36640         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36641         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36642         malloc and calloc clobbering errno.
36643
36644 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36645
36646         * doc/invoke.texi: Fix name of sched1 dump.
36647
36648         * opts.c (decode_options): Set flag_tree_switch_conversion
36649         only conditionally on optimize >= 2.
36650
36651         * gcse.c: Assorted comment fixes in pass description.
36652
36653 2010-02-03  Anthony Green  <green@moxielogic.com>
36654
36655         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36656         nop padding in order to maintain alignment of storage location of
36657         target function address.
36658         (moxie_trampoline_init): Store target function address at newly
36659         aligned location.
36660         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36661         to 32.
36662         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36663
36664 2010-02-03  Richard Guenther  <rguenther@suse.de>
36665
36666         PR middle-end/42927
36667         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36668
36669 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36670
36671         * config.gcc: Reenable check for obsolete targets.
36672         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36673         mips-sgi-irix6.[0-4]*.
36674
36675 2010-02-02  Nick Clifton  <nickc@redhat.com>
36676
36677         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36678         constant size of 4 as being the same as 0.
36679         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36680         can take values in the range 0..4.
36681
36682 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36683
36684         PR java/41991
36685         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36686         as _darwin10_Unwind_FindEnclosingFunction().
36687         * libgcc-libsystem.ver: New.
36688
36689 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36690
36691         PR target/41399
36692         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36693         implicitly set registers.
36694
36695 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36696
36697         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36698         (arm_override_options): Allow automatic selection of the thread
36699         pointer register if thumb2.
36700         (legitimize_pic_address): Improve code sequences for Thumb2.
36701         (arm_call_tls_get_addr): Likewise.
36702         (legitimize_tls_address): Likewise.
36703         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36704         (pic_load_addr_32bit): ... this.  New named pattern.
36705         * thumb2.md (pic_load_addr_thumb2): Delete.
36706         (pic_load_dot_plus_four): Delete.
36707         (tls_load_dot_plus_four): New named pattern.
36708
36709 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36710
36711         PR libgomp/29986
36712         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36713         Document fix for TLS bug.
36714
36715 2010-01-31  Richard Guenther  <rguenther@suse.de>
36716
36717         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36718         conservatively correct.
36719
36720 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36721
36722         PR target/42850
36723         Revert:
36724         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36725
36726         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36727
36728 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36729
36730         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36731
36732 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36733
36734         * config.gcc: Adjust order of makefile fragments for mingw targets.
36735
36736 2010-01-31  Richard Guenther  <rguenther@suse.de>
36737
36738         PR middle-end/42898
36739         * gimplify.c (gimplify_init_constructor): For volatile LHS
36740         initialize a temporary.
36741
36742 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36743
36744         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36745         --with-headers
36746         * configure: Regenerate.
36747
36748 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36749
36750         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36751         the same alias set and their sizes different constantness.
36752         (aliasing_component_refs_p): Revert 2009-10-24 change.
36753
36754 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36755
36756         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36757         unused.
36758
36759 2010-01-29  Richard Guenther  <rguenther@suse.de>
36760
36761         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36762         Assert we successfully updated the call.
36763
36764 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36765
36766         PR rtl-optimization/42889
36767         * df.h (df_set_bb_dirty_nonlr): New prototype.
36768         * df-core.c (df_set_bb_dirty_nonlr): New function.
36769         * df-scan.c (df_insn_rescan): Call it instead of
36770         df_set_bb_dirty for DEBUG_INSNs.
36771
36772 2010-01-29  Richard Guenther  <rguenther@suse.de>
36773
36774         PR middle-end/37448
36775         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36776         quadratic behavior in most cases.
36777
36778 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36779
36780         PR target/42891
36781         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36782         in the call to gen_x86_movsicc_0_m1.
36783
36784 2010-01-28  Richard Guenther  <rguenther@suse.de>
36785
36786         PR tree-optimization/42871
36787         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36788
36789 2010-01-28  Richard Guenther  <rguenther@suse.de>
36790
36791         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36792         into call arguments.
36793
36794 2010-01-28  Richard Guenther  <rguenther@suse.de>
36795
36796         PR middle-end/42883
36797         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36798         the forwarder if the destination is an EH landing pad.
36799
36800 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36801
36802         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36803         block list passed to gimple_duplicate_sese_tail.
36804         (parallelize_loops): Avoid parallelization when the function
36805         has_nonlocal_label.
36806         Avoid parallelization when the preheader is IRREDUCIBLE.
36807         Try to optimize when estimated_loop_iterations_int is unresolved.
36808         Add the loop's location to the dump file.
36809         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36810         (gimple_duplicate_sese_tail): Remove the check for the latch.
36811         Redirect nexits to the exit block.
36812         Remove handling of the incoming edges to the latch.
36813         Redirect the backedge from the copied latch to the exit bb.
36814
36815 2010-01-28  Michael Matz  <matz@suse.de>
36816
36817         PR target/42881
36818         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36819         Wrap force_reg into a sequence, emit it before user.
36820
36821 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36822
36823         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36824         (arm_rev): New.
36825         (arm_legacy_rev): Likewise.
36826         (thumb_legacy_rev): Likewise.
36827
36828 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36829
36830         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36831         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36832         on MEM's address failed, try avoid_constant_pool_reference and
36833         recurse if it returned something different.
36834         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36835         address, try avoid_constant_pool_reference and recurse if it
36836         returned something different.
36837         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36838         address and avoid_constant_pool_reference returned something
36839         different, don't set have_address.
36840
36841 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36842
36843         PR debug/42861
36844         * var-tracking.c (val_store): Add modified argument, obey it.
36845         Adjust callers.
36846         (count_uses): Move down logging of main.
36847         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36848         don't need resolution.
36849         (emit_notes_in_bb): Likewise.
36850
36851 2010-01-27  Richard Guenther  <rguenther@suse.de>
36852
36853         PR middle-end/42878
36854         * tree-inline.c (remap_decl): Delay remapping of SSA name
36855         default definitions until we need them.
36856
36857 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36858
36859         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36860         (rs6000_delegitimize_address): New function.
36861
36862         * config/s390/s390.c (s390_delegitimize_address): Call
36863         delegitimize_mem_from_attrs.
36864
36865         PR middle-end/42874
36866         * tree-inline.c (cannot_copy_type_1): Removed.
36867         (copy_forbidden): Don't forbid copying of functions containing
36868         records/unions with variable length fields.
36869
36870 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36871
36872         Revert:
36873         PR target/42841
36874         * config/sh/sh.c (find_barrier): Increase length for non delayed
36875         conditional branches.
36876
36877 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36878
36879         * configure.ac (gnu-unique-object): Fix ldd version check.
36880         * configure: Regenerate.
36881
36882 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36883
36884         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36885         HAVE_GNU_AS value.
36886         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36887         Test for HAVE_GNU_AS value.
36888
36889 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36890
36891         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36892         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36893         INT64_TYPE): Define.
36894         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36895         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36896         INT_LEAST64_TYPE): Define.
36897         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36898         UINT_LEAST64_TYPE): Define.
36899         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36900         INT_FAST64_TYPE): Define.
36901         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36902         UINT_FAST64_TYPE): Define.
36903         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36904         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36905         (SIG_ATOMIC_TYPE): Define.
36906
36907 2010-01-26  Richard Guenther  <rguenther@suse.de>
36908
36909         * df-scan.c (df_scan_set_bb_info): Remove assert.
36910         (df_insn_rescan_debug_internal): Merge asserts.
36911         (df_install_ref): Likewise.
36912         (df_mark_reg): Use bitmap_set_range.
36913         (df_hard_reg_used_p): Remove assert.
36914         (df_hard_reg_used_count): Likewise.
36915
36916 2010-01-26  Richard Guenther  <rguenther@suse.de>
36917
36918         PR rtl-optimization/42685
36919         * web.c (web_main): Ignore DEBUG_INSNs.
36920
36921 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36922
36923         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36924
36925         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36926         Fix types of fndecl and arglist parameters.
36927
36928 2010-01-26  Richard Guenther  <rguenther@suse.de>
36929
36930         PR middle-end/42806
36931         * tree-eh.c (unsplit_eh): Skip debug insns.
36932
36933 2010-01-26  Richard Guenther  <rguenther@suse.de>
36934
36935         PR tree-optimization/42250
36936         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36937
36938 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36939
36940         PR fortran/42866
36941         * omp-low.c (expand_omp_sections): Only use single_pred if
36942         l2_bb is single_pred_p.
36943
36944 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36945
36946         PR target/42841
36947         * config/sh/sh.c (find_barrier): Increase length for non delayed
36948         conditional branches.
36949         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36950
36951 2010-01-24  David S. Miller  <davem@davemloft.net>
36952
36953         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36954         define if not using GAS.
36955         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36956         Likewise.  Delete SECTION_MERGE code, which is only applicable
36957         when using GAS.
36958
36959 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36960
36961         PR c++/42748
36962         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36963         mangling of va_list in system headers.
36964
36965 2010-01-23  Toon Moene  <toon@moene.org>
36966
36967         * tree-predcom.c (combine_chains): Return NULL, not false.
36968
36969 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36970
36971         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36972         initialization of variable res to agree with return type.
36973
36974 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36975
36976         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36977         * tree-sra.c: Add include of expr.h.
36978
36979 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36980
36981         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36982         insert the debug stmt on the single non-EH edge from the stmt.
36983
36984 2010-01-22  Richard Henderson  <rth@redhat.com>
36985
36986         PR tree-opt/42833
36987         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
36988         the RHS until after generate_subtree_copies has insertted its
36989         code before the current statement.
36990
36991 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
36992
36993         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
36994
36995         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
36996
36997 2010-01-21  Martin Jambor  <mjambor@suse.cz>
36998
36999         PR tree-optimization/42585
37000         * tree-sra.c (struct access): New field grp_total_scalarization.
37001         (dump_access): Dump the new field.
37002         (should_scalarize_away_bitmap): New variable.
37003         (cannot_scalarize_away_bitmap): Likewise.
37004         (sra_initialize): Allocate new bitmaps.
37005         (sra_deinitialize): Free new bitmaps.
37006         (create_access_1): New function.
37007         (create_access): Parts moved to create_access_1.
37008         (type_consists_of_records_p): New function.
37009         (completely_scalarize_record): Likewise.
37010         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37011         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37012         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37013         access.
37014         (analyze_all_variable_accesses): Completely scalarize small eligible
37015         records.
37016
37017 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37018
37019         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37020
37021 2010-01-21  Andrew Haley  <aph@redhat.com>
37022
37023         * gcc.c (process_command): Move lang_specific_driver before
37024         setting cc_libexec_prefix.
37025
37026 2010-01-21  Richard Guenther  <rguenther@suse.de>
37027
37028         PR middle-end/19988
37029         * fold-const.c (negate_expr_p): Pretend only negative
37030         real constants are easily negatable.
37031
37032 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37033             Jason Merrill  <jason@redhat.com>
37034
37035         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37036         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37037         * calls.c (initialize argument_information): Handle it.
37038         * c-common.c (handle_transparent_union_attribute): Use new name.
37039         * c-decl.c (finish_struct): Ditto.
37040         * c-typeck.c (type_lists_compatible_p): Ditto.
37041         (convert_for_assignment): Use new name and also handle record.
37042         * function.c (aggregate_value_p): Handle it.
37043         (pass_by_reference): Ditto.
37044         (assign_parm_data_types): Ditto.
37045         * print-tree.c (print_node): Ditto.
37046         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37047         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37048         * tree.c (first_field): New fn.
37049
37050 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37051
37052         PR target/42818
37053         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37054         even when linking statically, for now.
37055
37056 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37057
37058         PR debug/42715
37059         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37060         without a cselib val.
37061         (count_uses): Accept MO_VAL_SET with no val on stores.
37062         (add_stores): Likewise.
37063
37064 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37065
37066         * var-tracking.c (check_value_val): Add a compile time assertion.
37067         (dv_is_decl_p): Simplify.
37068         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37069         gcc_assert if ENABLE_CHECKING.
37070
37071 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37072
37073         PR debug/42782
37074         * var-tracking.c: Include tree-flow.h.
37075         (mem_dies_at_call): New.
37076         (dataflow_set_preserve_mem_locs): Use it.
37077         (dataflow_set_remove_mem_locs): Likewise.
37078         (dump_var): Renamed from dump_variable.  Adjust all callers.
37079         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37080         * Makefile.in (var-tracking.o): Adjust deps.
37081
37082 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37083
37084         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37085
37086 2010-01-20  Richard Guenther  <rguenther@suse.de>
37087
37088         PR tree-optimization/42717
37089         * tree-ssa-dce.c (get_live_post_dom): Remove.
37090         (forward_edge_to_pdom): Take an arbitrary edge to copy
37091         degenerate PHI args from.
37092         (remove_dead_stmt): Use the first post-dominator even if it
37093         does not contain live statements as redirection destination.
37094
37095 2010-01-20  Richard Guenther  <rguenther@suse.de>
37096
37097         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37098
37099 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37100
37101         * sel-sched.c (create_speculation_check): Remove set but not used
37102         variable twin.
37103         (try_transformation_cache): Remove set but not used variable ds.
37104         (calculate_privileged_insns): Remove set but not used variables
37105         cur_insn and min_spec_insn.
37106         (find_best_expr): Remove set but not used variable avail_n.
37107         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37108         variable e.
37109         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37110         false_label.
37111         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37112         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37113         new_scop_exit_edge.
37114
37115 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37116
37117         PR bootstrap/42786
37118         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37119         cpu types.  Add support for *-sse3 cpu types.
37120         (x86_64-*-*): Ditto.
37121
37122 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37123
37124         PR middle-end/42803
37125         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37126         argument, call initializer_constant_valid_p_1 instead of
37127         initializer_constant_valid_p, pass CACHE to it, return NULL
37128         immediately if first call returns NULL.
37129         (initializer_constant_valid_p_1): New function.
37130         (initializer_constant_valid_p): Use it.
37131
37132 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37133
37134         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37135
37136 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37137
37138         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37139         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37140         (loc_list_from_tree): Don't handle unsigned division.  Handle
37141         signed modulo using DW_OP_{over,over,div,mul,minus}.
37142         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37143         modulo instead of signed.
37144
37145 2010-01-20  DJ Delorie  <dj@redhat.com>
37146
37147         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37148         (Fpa): Pass it
37149         (h8300_emit_stack_adjustment): Propogate it.
37150         (push): Pass it.
37151         (h8300_expand_prologue): Likewise.
37152         (h8300_expand_epilogue): Likewise.
37153
37154 2010-01-19  Michael Matz  <matz@suse.de>
37155
37156         PR tree-optimization/41783
37157         * tree-data-ref.c (toplevel): Include flags.h.
37158         (dump_data_dependence_relation):  Also dump the inputs if the
37159         result will be unknown.
37160         (split_constant_offset_1): Look through some conversions.
37161         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37162         the offset from last element is too large.
37163         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37164         (reassociate_to_the_same_stmt): Handle vector registers.
37165         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37166         (e.g. conversions).
37167         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37168         wide_prolog_niters argument, emit widening instructions.
37169         (vect_do_peeling_for_alignment): Adjust caller, use widened
37170         variant of the iteration cound.
37171         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37172
37173 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37174
37175         PR target/38697
37176         * config/arm/neon-testgen.m (emit_automatics): New parameter
37177         features. Adjust for Fixed_return_reg feature.
37178         (test_intrinsic): Call emit_automatics with new feature.
37179         * config/arm/neon.ml: Update copyright years.
37180         (features): New Fixed_return_reg feature.
37181         (ops): Update feature for Vget_low.
37182
37183 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37184
37185         PR tree-optimization/42719
37186         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37187         stmt uses.
37188
37189         PR debug/42728
37190         * fwprop.c (all_uses_available_at): Return false if def_set dest
37191         is a REG that is used in def_insn.
37192
37193 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37194
37195         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37196
37197         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37198         Add argument names.
37199
37200         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37201
37202         * target.h (struct gcc_target) <secondary_reload>: Change type
37203         of last argument to secondary_reload_info *.
37204
37205 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37206
37207         PR target/42774
37208         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37209         memory references with unaligned offsets.  Remove CQImode handling.
37210         (unaligned_memory_operand): Return 1 for memory references with
37211         unaligned offsets.  Remove CQImode handling.
37212
37213 2010-01-18  Richard Guenther  <rguenther@suse.de>
37214
37215         PR middle-end/39954
37216         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37217         builtin calls.
37218
37219 2010-01-18  Richard Guenther  <rguenther@suse.de>
37220
37221         PR tree-optimization/42781
37222         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37223         restrict processing only if the original variable was artificial.
37224
37225 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37226
37227         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37228         find number of popped argument bytes.
37229
37230         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37231         Fix the text that describes the return value for invalid insns.
37232
37233         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37234
37235         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37236         Clarify what 'cost of the -dependence' is.  Fix quoting.
37237
37238         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37239         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37240
37241 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37242
37243         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37244         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37245
37246 2010-01-17  Richard Guenther  <rguenther@suse.de>
37247
37248         PR middle-end/42248
37249         * function.c (split_complex_args): Take a VEC to modify.
37250         (assign_parms_augmented_arg_list): Build a VEC instead of
37251         a chain of PARM_DECLs.
37252         (assign_parms_unsplit_complex): Take a VEC of arguments.
37253         Do not fixup unmodified parms.
37254         (assign_parms): Deal with the VEC.
37255         (gimplify_parameters): Likewise.
37256
37257 2010-01-17  Richard Guenther  <rguenther@suse.de>
37258
37259         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37260         node existence check.
37261         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37262         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37263         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37264         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37265         (gimple_execute_on_growing_pred): Likewise.
37266
37267 2010-01-17  Richard Guenther  <rguenther@suse.de>
37268
37269         PR tree-optimization/42773
37270         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37271         (compute_antic_aux): Likewise.
37272         (compute_partial_antic_aux): Likewise.
37273
37274 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37275
37276         PR debug/42767
37277         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37278         and US_TRUNCATE.
37279
37280 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37281
37282         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37283         appearance.
37284
37285         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37286         Fix markup for strict argument.
37287
37288         (TARGET_SCHED_REORDER2): Fix argument types.
37289
37290         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37291         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37292
37293         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37294         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37295
37296         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37297         Add argument name.
37298
37299         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37300         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37301         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37302         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37303         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37304
37305         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37306
37307         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37308
37309         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37310         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37311
37312         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37313
37314         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37315         Use prototype.
37316
37317         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37318
37319         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37320         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37321
37322         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37323
37324         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37325
37326         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37327         referring to it.  Fix language.
37328
37329         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37330
37331         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37332
37333         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37334
37335         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37336
37337         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37338         '@var{stream}.  Remove stray 'and'.
37339
37340         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37341
37342         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37343
37344         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37345
37346         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37347         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37348
37349         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37350         Fix description of return value.
37351         Rename argument "sz" to "len."
37352
37353         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37354         Clarify meaning of 'true' return value.
37355
37356         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37357
37358         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37359         rep_mode versus mode_rep.
37360
37361         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37362
37363         (TARGET_BUILTIN_DECL): Fix name.
37364
37365         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37366
37367         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37368
37369         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37370
37371         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37372
37373         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37374
37375         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37376         Clarify language.
37377
37378         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37379         Rename argument tm_fn to md_fn.
37380
37381         (TARGET_OPTION_PRINT): Fix argument list.
37382
37383 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37384
37385         PR target/42664
37386         * config/i386/i386.c (ix86_fixup_binary_operands):
37387         Revert FMA4 fixup of operands.
37388
37389 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37390
37391         PR other/42525
37392         * Makefile.in (write_entries_to_file, install-plugin):
37393         Use \012 instead of \n with tr.
37394
37395 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37396
37397         * configure.ac (HAVE_AS_REF): New C macro.
37398         * configure: Regenerate.
37399         * config.in: Likewise.
37400         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37401         if HAVE_AS_REF.
37402         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37403         if HAVE_AS_REF.
37404
37405 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37406
37407         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37408
37409         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37410
37411         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37412
37413         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37414
37415         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37416
37417         (TARGET_BINDS_LOCAL_P): Fix argument type.
37418
37419         (TARGET_ASM_FILE_END): Use prototype.
37420
37421         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37422
37423         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37424
37425         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37426
37427         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37428
37429         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37430         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37431
37432         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37433         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37434
37435         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37436         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37437         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37438         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37439
37440         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37441
37442         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37443
37444         (TARGET_INIT_BUILTINS): Use prototype.
37445
37446         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37447         Put 'const char *' in braces.  Fix parameter types.
37448         (TARGET_INVALID_CONVERSION): Fix parameter types.
37449         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37450         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37451
37452         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37453         Fix argument type.
37454
37455         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37456
37457         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37458
37459 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37460
37461         * doc/tm.texi (TARGET_HELP): Fix return type.
37462
37463         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37464         in braces.  Fix argument types.
37465
37466         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37467
37468         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37469
37470         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37471
37472         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37473         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37474
37475         (TARGET_MANGLE_TYPE): Fix argument types.
37476
37477         (TARGET_IRA_COVER_CLASSES): Use prototype.
37478
37479         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37480
37481         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37482
37483         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37484
37485         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37486
37487         (TARGET_CALLEE_COPIES): Fix argument types.
37488
37489         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37490
37491         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37492
37493         (TARGET_FUNCTION_VALUE): Fix argument types.
37494
37495         (TARGET_RETURN_IN_MSB): Fix argument type.
37496
37497         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37498
37499         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37500
37501         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37502
37503         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37504         agree with return type.
37505
37506         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37507
37508 2010-01-15  Jing Yu  <jingyu@google.com>
37509
37510         PR rtl-optimization/42691
37511         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37512         a pseudo to a constant and are merged, and adjust comments.
37513
37514 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37515
37516         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37517
37518 2010-01-15  Richard Guenther  <rguenther@suse.de>
37519
37520         PR middle-end/42739
37521         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37522         labels of computed or non-local gotos to the destination.
37523         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37524         landing pad label is the first label.
37525
37526 2010-01-15  Richard Guenther  <rguenther@suse.de>
37527
37528         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37529
37530 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37531
37532         PR target/42747
37533         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37534         to allow generation of the xssqrtdp instruction on power7.
37535         (sqrtdf2_fpr): Ditto.
37536
37537 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37538
37539         PR middle-end/42674
37540         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37541         functions with noreturn attribute.
37542
37543         PR c++/42608
37544         * varasm.c (declare_weak): Add weak attribute to decl if it
37545         doesn't have one already.
37546         (assemble_external): Only add decls to weak_decls if they also
37547         have weak attribute.
37548
37549 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37550
37551         * var-tracking.c (var_reg_delete): Don't delete the association
37552         between REGs and values or one-part variables if the register
37553         isn't clobbered.
37554
37555 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37556
37557         PR debug/42657
37558         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37559         because its first operand is a non-localized variable.
37560
37561 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37562
37563         PR tree-optimization/42706
37564         * tree-sra.c (encountered_recursive_call): New variable.
37565         (encountered_unchangable_recursive_call): Likewise.
37566         (sra_initialize): Initialize both new variables.
37567         (callsite_has_enough_arguments_p): New function.
37568         (scan_function): Call decl and flags check only for IPA-SRA, check
37569         whether there is a recursive call and whether it has enough arguments.
37570         (all_callers_have_enough_arguments_p): New function.
37571         (convert_callers): Look for recursive calls only when
37572         encountered_recursive_call is set.
37573         (ipa_early_sra): Bail out either if
37574         !all_callers_have_enough_arguments_p or
37575         encountered_unchangable_recursive_call.
37576
37577 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37578
37579         * sel-sched.c: Add 2010 to copyright years.
37580         * sel-sched-ir.c: Likewise.
37581         * sel-sched-ir.h: Likewise.
37582
37583 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37584
37585         PR tree-optimization/42714
37586         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37587         constructors specially.
37588
37589 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37590
37591         * config/i386/drivers-i386.c (detect_caches_intel):
37592         Add l2sizekb parameter and fill in.
37593         (host_detect_local_cpu): Add l2sizekb, fill in.
37594         Add Atom small cache heuristic.
37595
37596 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37597
37598         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37599         Add level3 parameter and fill in.
37600         (detect_caches_intel): Handle level3 cache.
37601
37602 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37603
37604         * config/i386/drivers-i386.c (host_detect_local_cpu):
37605         Fix core duo detection.
37606
37607 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37608
37609         * config/i386/drivers-i386.c (host_detect_local_cpu):
37610         Fix Atom detection.
37611
37612 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37613
37614         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37615         (rs6000_variable_issue_1): this.  Use...
37616         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37617
37618 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37619
37620         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37621         sel_restore_notes.  Update all callers.  Call reemit_notes
37622         for all insns.
37623
37624 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37625
37626         PR rtl-optimization/42246
37627         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37628         loops.
37629
37630 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37631
37632         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37633         all successors is the same as number of successors in current region.
37634
37635 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37636
37637         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37638         to rename is not separable.  Otherwise check that its LHS is not NULL.
37639
37640 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37641
37642         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37643
37644 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37645
37646         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37647         available registers when failed to discover LHS register class.
37648         Fix indentation.  Update comment.
37649
37650 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37651             Alexander Monakov  <amonakov@ispras.ru>
37652
37653         PR rtl-optimization/42389
37654         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37655         to can_issue_more.
37656         (advance_state_on_fence): Likewise.
37657         (sel_target_adjust_priority): Print debug output only when
37658         sched_verbose >= 4, not 2.
37659         (get_expr_cost): Do not issue all unique insns on the next cycle.
37660         (fill_insns): Initialize can_issue_more from the value saved
37661         with the fence.
37662         * sel-sched-ir.c (flist_add): New parameter issue_more.
37663         Init FENCE_ISSUE_MORE with it.
37664         (merge_fences): Likewise.
37665         (init_fences): Update call to flist_add.
37666         (add_to_fences, add_clean_fence_to_fences)
37667         (add_dirty_fence_to_fences): Likewise.
37668         (move_fence_to_fences): Update call to merge_fences.
37669         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37670         sched groups.
37671         * sel-sched-ir.h (struct _fence): New field issue_more.
37672         (FENCE_ISSUE_MORE): New accessor macro.
37673
37674 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37675
37676         PR rtl-optimization/42388
37677         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37678         that have no predecessors nor successors.  Do not call move_bb_info
37679         for empty blocks outside of current region.
37680
37681 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37682
37683         PR rtl-optimization/42294
37684         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37685         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37686         originators' originators.
37687
37688 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37689
37690         PR rtl-optimization/39453
37691         PR rtl-optimization/42246
37692         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37693         for pipelining_p.
37694         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37695
37696 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37697             Alexander Monakov  <amonakov@ispras.ru>
37698
37699         PR middle-end/42245
37700         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37701         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37702         argument.  Update all callers.
37703         (tidy_control_flow): ... and here.  Recompute topological order
37704         of basic blocks in region if necessary.
37705         (sel_redirect_edge_and_branch): Change return type.  Return true
37706         if topological order might have been invalidated.
37707         (purge_empty_blocks): Export and move from...
37708         * sel-sched.c (purge_empty_blocks): ... here.
37709         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37710         (maybe_tidy_empty_bb): Delete prototype.
37711         (purge_empty_blocks): Declare.
37712
37713 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37714
37715         PR rtl-optimization/42249
37716         * sel-sched.c (try_replace_dest_reg): When chosen register
37717         and original register is the same, do not bail out early, but
37718         still check all original insns for validity of replacing destination
37719         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37720         in this case.
37721
37722 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37723
37724         PR c/42721
37725         Port from no-undefined-overflow branch:
37726         2009-03-09  Richard Guenther  <rguenther@suse.de>
37727
37728         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37729
37730 2010-01-14  Richard Guenther  <rguenther@suse.de>
37731
37732         PR lto/42665
37733         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37734
37735 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37736
37737         PR tree-optimization/42709
37738         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37739         as scalar type in creation of constant vector operand.
37740
37741 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37742
37743         PR testsuite/42414
37744         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37745         (check-parallel-%): Match `testsuite' directory component only
37746         at the end.
37747
37748 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37749
37750         PR translation/39521
37751         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37752         strings with _().
37753
37754 2010-01-13  Richard Guenther  <rguenther@suse.de>
37755
37756         PR tree-optimization/42730
37757         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37758         offset zero.
37759
37760 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37761
37762         PR target/pr42542
37763         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37764         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37765         them signed.
37766
37767 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37768
37769         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37770         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37771         ___umulsi3_highpart.
37772
37773         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37774         rather than schedule_insns if the pass is enabled.
37775
37776 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37777
37778         PR tree-optimization/42704
37779         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37780         SSA_NAMEs.
37781
37782 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37783
37784         PR tree-optimization/42703
37785         * tree-sra.c (analyze_access_subtree): Check that we can build a
37786         reference to the original data within the aggregate.
37787
37788 2010-01-13  Richard Guenther  <rguenther@suse.de>
37789
37790         PR tree-optimization/42705
37791         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37792
37793 2010-01-13  Richard Guenther  <rguenther@suse.de>
37794
37795         PR middle-end/42716
37796         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37797
37798 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37799
37800         PR debug/41371
37801         * var-tracking.c (values_to_unmark): New variable.
37802         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37803         values_to_unmark vector.  Moved body to...
37804         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37805         instead queue it into values_to_unmark vector.
37806         (vt_find_locations): Free values_to_unmark vector.
37807
37808 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37809
37810         * config/s390/s390.c (override_options): Set
37811         default of max-pending-list-length to 256
37812
37813 2010-01-13  Richard Guenther  <rguenther@suse.de>
37814
37815         PR lto/42678
37816         * tree-pass.h (PROP_gimple_lcx): New.
37817         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37818         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37819         before the final cleanup_eh.
37820         (dump_properties): Dump PROP_gimple_lcx.
37821         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37822         (tree_lower_complex_O0): Remove.
37823         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37824         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37825         tree_lower_complex, schedule TODO_update_ssa.
37826         * lto-streamer-out.c (output_function): Stream the functions
37827         properties.
37828         * lto-streamer-in.c (input_function): Likewise.
37829         (lto_read_body): Do not override them here.
37830
37831 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37832
37833         PR c/42708
37834         * c-typeck.c (build_c_cast): Fold value cast to union type before
37835         wrapping it in a CONSTRUCTOR.
37836
37837 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37838
37839         PR rtl-optimization/42699
37840         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37841         involved.
37842
37843 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37844
37845         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37846         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37847         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37848         SUBTARGET_WARN_UNUSED_SPEC): ... here
37849         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37850
37851 2010-01-12  Julian Brown  <julian@codesourcery.com>
37852
37853         * config/arm/neon-schedgen.ml (Utils): Don't try to
37854         open missing module.
37855         (find_with_result): New.
37856
37857 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37858
37859         PR debug/42662
37860         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37861         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37862
37863         PR tree-optimization/42645
37864         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37865         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37866         decl_map, set processing_debug_stmt to -1 and return name without
37867         any remapping.
37868
37869 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37870
37871         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37872         binutils version, and reword target configuration description.
37873
37874 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37875
37876         * config/avr/avr.h (LINKER_NAME): Remove.
37877
37878 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37879
37880         PR target/42416
37881         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37882         that support VSX, warn for -mno-altivec if vsx is not disabled,
37883         and disable vsx.
37884
37885 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37886             Shujing Zhao  <pearly.zhao@oracle.com>
37887
37888         PR translation/42469
37889         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37890         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37891         character between option name and help text.
37892         * c.opt (imultilib): Likewise.
37893
37894 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37895
37896         * lto-streamer-out.c (output_unreferenced_globals): Output static
37897         variables.
37898
37899 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37900
37901         PR rtl-optimization/42621
37902         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37903         optimizing for size.
37904         (duplicate_computed_gotos): Remove now-redundant check.
37905
37906 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37907
37908         PR target/37454
37909         * configure.ac: Save and restore LDFLAGS and LIBS
37910         * configure: Regenerate.
37911
37912 2010-01-10  Richard Guenther  <rguenther@suse.de>
37913
37914         PR middle-end/42667
37915         * builtins.c (fold_builtin_strlen): Add type argument and
37916         convert the resulting length to it.
37917         (fold_builtin_1): Adjust.
37918
37919 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37920
37921         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37922         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37923         1 insn.
37924         (num_insns_constant_wide): Adjust for that change.
37925
37926 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37927
37928         PR debug/42631
37929         * web.c (union_defs): Add used argument, to combine uses of
37930         uninitialized regs.
37931         (entry_register): Adjust type and tests of used argument.
37932         (web_main): Widen used for new use.  Pass it to union_defs.
37933         * df.h (union_defs): Adjust prototype.
37934
37935 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37936
37937         PR debug/42630
37938         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37939         uses in new incoming argument.  Free body.
37940         (reset_debug_uses_in_loop): New.
37941         (analyze_insn_to_expand_var): Call the latter if the former found
37942         anything.  Fix whitespace.  Reject invalid dest overlaps before
37943         going through all insns in the loop.
37944
37945 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37946
37947         PR debug/42629
37948         * haifa-sched.c (dying_use_p): Debug insns don't count.
37949
37950 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37951
37952         PR middle-end/42363
37953         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37954         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37955         (verify_gimple_call): Reject LHS in noreturn calls.
37956
37957 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37958
37959         PR debug/42604
37960         PR debug/42395
37961         * tree-vect-loop-manip.c (adjust_info): New type.
37962         (adjust_vec): New pointer to vector.
37963         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37964         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37965         (slpeel_update_phis_for_duplicate_loop): Use them.
37966         (slpeel_update_phi_nodes_for_guard1): Likewise.
37967         (slpeel_update_phi_nodes_for_guard2): Likewise.
37968         (slpeel_tree_peel_loop_to_edge): Likewise.
37969         (vect_update_ivs_after_vectorizer): Likewise.
37970
37971 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37972
37973         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37974         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37975
37976 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37977
37978         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37979         bogus uninitialized warning.
37980
37981 2010-01-09  Richard Guenther  <rguenther@suse.de>
37982
37983         PR middle-end/42512
37984         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37985         the evolution is compatible with the initial condition.
37986
37987 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37988
37989         * gcc.c (process_command): Update copyright notice dates.
37990         * gcov.c (print_version): Likewise.
37991         * gcov-dump.c (print_version): Likewise.
37992         * mips-tfile.c (main): Likewise.
37993         * mips-tdump.c (main): Likewise.
37994
37995 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37996
37997         PR target/41885
37998         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
37999         (rotlhi3): Delete.
38000         (rotlhi3_8): Delete.
38001         (rotlsi3): Delete.
38002         (rotlsi3_8): Delete.
38003         (rotlsi3_16): Delete.
38004         (rotlsi3_24): Delete.
38005         (rotl<mode>3): New.
38006         (*rotw<mode>3): New.
38007         (*rotb<mode>3): New.
38008         * config/avr/avr.c (avr_rotate_bytes): New function.
38009         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38010
38011 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38012
38013         PR target/37454
38014         * configure.ac: Modify -rdynamic check.
38015         * configure: Regenerate.
38016
38017 2010-01-08  DJ Delorie  <dj@redhat.com>
38018
38019         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38020         register popping order.
38021
38022 2010-01-08  Richard Guenther  <rguenther@suse.de>
38023
38024         PR lto/42528
38025         * c.opt (fsigned-char): Also let LTO handle this option.
38026         (funsigned-char): Likewise.
38027
38028 2010-01-07  Richard Guenther  <rguenther@suse.de>
38029
38030         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38031         (gimple_op): Likewise.
38032         (gimple_op_ptr): Likewise.
38033         (gimple_assign_set_lhs): Remove gcc_assert.
38034         (gimple_assign_set_rhs1): Likewise.
38035         (gimple_assign_set_rhs2): Likewise.
38036         (gimple_call_set_lhs): Likewise.
38037         (gimple_call_set_fn): Likewise.
38038         (gimple_call_set_fndecl): Likewise.
38039         (gimple_call_fndecl): Likewise.
38040         (gimple_call_return_type): Likewise.
38041         (gimple_call_set_chain): Likewise.
38042         (gimple_call_num_args): Likewise.
38043         (gimple_call_set_arg): Likewise.
38044         (gimple_cond_set_code): Likewise.
38045         (gimple_cond_set_lhs): Likewise.
38046         (gimple_cond_set_rhs): Likewise.
38047         (gimple_cond_set_true_label): Likewise.
38048         (gimple_cond_set_false_label): Likewise.
38049         (gimple_label_set_label): Likewise.
38050         (gimple_goto_set_dest): Likewise.
38051         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38052         (gimple_debug_bind_get_value): Likewise.
38053         (gimple_debug_bind_get_value_ptr): Likewise.
38054         (gimple_debug_bind_set_var): Likewise.
38055         (gimple_debug_bind_set_value): Likewise.
38056         (gimple_debug_bind_reset_value): Likewise.
38057         (gimple_debug_bind_has_value_p): Likewise.
38058         (gimple_return_retval_ptr): Remove gcc_assert.
38059         (gimple_return_retval): Likewise.
38060         (gimple_return_set_retval): Likewise.
38061         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38062         (safe_referenced_var_iterator): Remove.
38063         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38064         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38065         (fill_referenced_var_vec): Remove.
38066         (first_readonly_imm_use): Remove redundant gcc_assert.
38067         (phi_arg_index_from_use): Combine gcc_asserts.
38068         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38069         (first_imm_use_stmt): Remove redundant gcc_assert.
38070         * tree-cfg.c (verify_gimple_call): Verify function and chain
38071         operands.  Verify arguments.
38072         (verify_types_in_gimple_stmt): Verify condition code and labels.
38073
38074 2010-01-07  Richard Guenther  <rguenther@suse.de>
38075
38076         PR tree-optimization/42641
38077         * sese.c (rename_map_elt_info): Use the SSA name version, do
38078         not hash pointers.
38079
38080 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38081
38082         PR tree-optimization/42625
38083         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38084         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38085
38086 2010-01-07  Duncan Sands  <baldrick@free.fr>
38087
38088         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38089
38090 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38091
38092         PR target/42511
38093         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38094         note itself is not function_invariant_p.
38095
38096 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38097
38098         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38099         Do not add the DF_NOTE problem.
38100         * store-motion.c (execute_rtl_store_motion): Likewise.
38101
38102 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38103
38104         PR tree-optimization/42157
38105         * tree-sra.c (compare_access_positions): Stabilize sort if both
38106         accesses have integer types, return zero immediately if they are the
38107         same.
38108
38109 2010-01-06  Richard Henderson  <rth@redhat.com>
38110
38111         PR middle-end/41883
38112         * haifa-sched.c (add_to_note_list): Merge into ...
38113         (concat_note_lists): ... here, and ...
38114         (unlink_other_notes, rm_other_notes): Merge into...
38115         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38116         NOTE_INSN_EPILOGUE_BEG.
38117
38118 2010-01-06  Richard Guenther  <rguenther@suse.de>
38119
38120         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38121         not inline regular functions into always-inline functions.
38122
38123 2010-01-06  Nick Clifton  <nickc@redhat.com>
38124
38125         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38126         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38127         used together.
38128         (OVERRIDE_OPTIONS): Delete.
38129         (OPTIMIZATION_OPTIONS): Define.
38130         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38131         * config/rx/rx.c (rx_handle_option): Issue an error message if
38132         -mcpu=rx200 and -fpu are used together.
38133         (rx_set_optimization_options): New function.  Issue an error
38134         message if an optimization attribute attempts to reset the FPU/
38135         math optimization pairing.
38136         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38137         * config/rx/rx.opt: Set the default to 32-bit doubles.
38138         * config/rx/t-rx: Add multilibs for -nofpu option.
38139         * doc/invoke.texi: Update documentation of RX options.
38140
38141 2010-01-06  Richard Guenther  <rguenther@suse.de>
38142
38143         * tree-ssa-pre.c (name_to_id): New global.
38144         (alloc_expression_id): Simplify SSA name handling.
38145         (lookup_expression_id): Likewise.
38146         (init_pre): Zero name_to_id.
38147         (fini_pre): Free it.
38148
38149 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38150
38151         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38152
38153 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38154
38155         PR target/42542
38156         * config/i386/sse.md (smaxv2di3): New.
38157         (umaxv2di3): Likewise.
38158         (sminv2di3): Likewise.
38159         (uminv2di3): Likewise.
38160
38161 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38162
38163         PR target/42564
38164         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38165         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38166         (legitimize_tls_address): Likewise.
38167         (sparc_tls_referenced_p): Likewise.
38168         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38169         and adjust calls to legitimize_pic_address.
38170         (legitimate_constant_p) Use sparc_tls_referenced_p.
38171         (legitimate_pic_operand_p): Likewise.
38172         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38173         (sparc_tls_symbol_ref_1): Delete.
38174         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38175         (legitimize_tls_address): Make static, handle CONST patterns.
38176         (legitimize_pic_address): Make static, remove unused parameter and
38177         adjust recursive calls.
38178         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38179         and adjust call to legitimize_pic_address.
38180         (sparc_output_mi_thunk): Likewise.
38181
38182 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38183             H.J. Lu  <hongjiu.lu@intel.com>
38184
38185         PR target/42542
38186         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38187         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38188         operands to make them signed.
38189
38190         Revert:
38191         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38192
38193         PR target/42542
38194         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38195         GTU to GT for V4SI and V2DI.
38196
38197         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38198         (umin<mode>3): Removed.
38199         (uminv8hi3): New.
38200         (uminv4si3): Likewise.
38201
38202 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38203
38204         PR tree-optimization/42462
38205         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38206         current_function_decl to helper functions and macros.
38207
38208 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38209
38210         PR bootstrap/41771
38211         * flags.h: Don't include real.h.
38212         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38213         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38214         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38215         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38216         * dominance.c: Update copyright.
38217         * gimple.c (walk_gimple_op): Remove inline.
38218         * tree-ssa-reassoc.c: Include real.h.
38219         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38220         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38221
38222 2010-01-05  Nick Clifton  <nickc@redhat.com>
38223
38224         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38225         register to push into the stack frame when the accumulator has to
38226         be saved during interrupts.
38227
38228 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38229
38230         * doc/invoke.texi: Remove the documentation about option
38231         -Wunreachable-code.
38232         * common.opt (Wunreachable-code):  Preserved for backward
38233         compatibility.
38234         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38235         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38236         the backward compatibility flag section.
38237
38238 2010-01-05  Richard Guenther  <rguenther@suse.de>
38239
38240         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38241
38242 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38243
38244         PR other/42611
38245         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38246
38247         PR tree-optimization/42508
38248         * tree-sra.c (convert_callers): Check for recursive call
38249         by comparing cgraph nodes instead of decls.
38250         (modify_function): Call ipa_modify_formal_parameters also
38251         on all same_body aliases.
38252
38253         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38254         cgraph nodes when checking for same_body aliases.
38255
38256 2010-01-05  Richard Guenther  <rguenther@suse.de>
38257
38258         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38259         allocation and lookup.
38260         (get_or_alloc_expr_for_constant): Likewise.
38261         (phi_translate): Sink allocation.
38262
38263 2010-01-04  Richard Guenther  <rguenther@suse.de>
38264
38265         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38266         a new entry only if needed.
38267         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38268         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38269         hashtable lookup.
38270         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38271         the result array.
38272         (phi_translate): Handle CONSTANTs early.
38273
38274 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38275
38276         PR tree-optimization/42398
38277         * tree-sra.c (struct access): Removed flag grp_different_types.
38278         (dump_access): Do not dump the removed flag.
38279         (sort_and_splice_var_accesses): Do not set the removed flag.
38280         (sra_modify_expr): Check for type compatibility directly.
38281
38282 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38283
38284         PR tree-optimization/42366
38285         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38286         edges with variable number of parameters.
38287         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38288         flag instead of asserting it.
38289         (ipa_read_node_info): Read uses_analysis_done flag.
38290
38291 2010-01-04  Richard Guenther  <rguenther@suse.de>
38292
38293         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38294         iterative_hash_* as intended.
38295         (vn_reference_compute_hash): Likewise.  Simplify hashing
38296         SSA names.
38297         (vn_reference_lookup_2): Likewise.
38298         (vn_nary_op_compute_hash): Likewise.
38299         (vn_phi_compute_hash): Likewise.
38300         (expressions_equal_p): Remove strange code.
38301         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38302         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38303         (bitmap_insert_into_set_1): Take value-id as parameter.
38304         (add_to_value): Pass it.
38305         (bitmap_insert_into_set): Likewise.
38306         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38307
38308 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38309
38310         PR driver/42442
38311         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38312         (do_self_spec): For switches with SWITCH_IGNORE set set also
38313         SWITCH_IGNORE_PERMANENTLY.
38314         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38315         of SWITCH_IGNORE.
38316
38317 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38318
38319         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38320         tree of an unreferenced global var.
38321
38322 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38323
38324         PR target/42542
38325         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38326         GTU to GT for V4SI and V2DI.
38327
38328         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38329         (umin<mode>3): Removed.
38330         (uminv8hi3): New.
38331         (uminv4si3): Likewise.
38332
38333 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38334
38335         PR lto/42581
38336         * collect2.c (main): Turn on trace in collect2 if -v is passed
38337         to gcc with LTO.
38338
38339 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38340
38341         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38342         description of expression operand.
38343
38344 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38345
38346         * configure.ac: Add install-html to target_list for Make-hooks.
38347         * configure: Regenerate.
38348         * fortran/Make-lang.in (F95_HTMLFILES): New.
38349         (fortran.html): Use it.
38350         (fortran.install-html): New.
38351         * Makefile.in (install-html): Add lang.install-html.
38352         * java/Make-lang.in (JAVA_HTMLFILES): New.
38353         (java.html): Use it.
38354         (java.install-html): New.
38355         * objc/Make-lang.in (objc.install-html): New.
38356         * objcp/Make-lang.in (obj-c++.install-html): New.
38357         * cp/Make-lang.in (c++.install-html): New.
38358         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38359         * lto/Make-lang.in (lto.install-html): New.
38360
38361 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38362
38363         PR lto/42520
38364         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38365
38366 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38367
38368         PR rtl-optimization/41862
38369         * store-motion.c (store_killed_in_insn, compute_store_table,
38370         remove_reachable_equiv_notes, replace_store_insn,
38371         build_store_vectors): Ignore all DEBUG_INSNs.
38372
38373 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38374
38375         PR lto/41564
38376         * common.opt: Add dumpdir.
38377
38378         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38379         isn't specified.
38380         (option_map): Add --dumpdir.
38381
38382         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38383
38384         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38385
38386         * opts.c (decode_options): Try dump_dir_name first if
38387         dump_base_name isn't an absolute path.
38388         (common_handle_option): Handle OPT_dumpdir.
38389
38390         * toplev.c (dump_dir_name): New.
38391         (print_switch_values): Also ignore -dumpdir.
38392
38393         * toplev.h (dump_dir_name): New.
38394
38395 2010-01-03  Richard Guenther  <rguenther@suse.de>
38396
38397         PR tree-optimization/42589
38398         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38399         double-word expansion of bswap32.
38400
38401 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38402
38403         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38404         with BLOCK_FOR_INSN.
38405         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38406         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38407         noce_process_if_block): Likewise.
38408         * gcse.c (compute_local_properties, insert_expr_in_table,
38409         insert_set_in_table, canon_list_insert, find_avail_set,
38410         pre_insert_copy_insn): Likewise.
38411
38412         * basic-block.h (BLOCK_NUM): Move from here...
38413         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38414
38415 2010-01-03  Richard Guenther  <rguenther@suse.de>
38416
38417         PR tree-optimization/42438
38418         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38419         contains_may_not_return_call flag.
38420         (BB_MAY_NOTRETURN): New.
38421         (valid_in_sets): Trapping nary operations are not valid
38422         in blocks that may not return.
38423         (insert_into_preds_of_block): Remove check for trapping expressions.
38424         (compute_avail): Compute also BB_MAY_NOTRETURN.
38425
38426 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38427
38428         * doc/invoke.texi: Add 2010 to copyright years.
38429
38430 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38431
38432         * config/sparc/sparc.c: Fix formatting nits.
38433
38434 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38435             Alexander Monakov  <amonakov@ispras.ru>
38436
38437         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38438
38439 2010-01-02  Richard Guenther  <rguenther@suse.de>
38440
38441         PR middle-end/42577
38442         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38443         (simplify_switch_using_ranges): Mark to be removed edges
38444         as non-executable.
38445
38446 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38447
38448         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38449
38450         * collect2.c (scan_libraries): Add missing argument in call to
38451         scan_prog_file.
38452
38453 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38454
38455         PR target/42448
38456         * config/alpha/predicates.md (aligned_memory_operand): Return false
38457         for CQImode.
38458         (unaligned_memory_operand): Return true for CQImode.
38459         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38460         doesn not cross aligned SImode word boundary.
38461
38462 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38463
38464         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38465         Remove.
38466         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38467         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38468
38469 2010-01-02  Richard Guenther  <rguenther@suse.de>
38470
38471         PR lto/41597
38472         * toplev.c (compile_file): Emit LTO marker properly.  Change
38473         it to __gnu_lto_v1.
38474         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38475
38476 2010-01-01  Richard Guenther  <rguenther@suse.de>
38477
38478         PR debug/42455
38479         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38480
38481 2010-01-01  Richard Guenther  <rguenther@suse.de>
38482
38483         PR c/42570
38484         * c-decl.c (grokdeclarator): For zero-size arrays force
38485         structural equality checks as layout_type does.
38486
38487 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38488
38489         * builtins.c: Update copyright to 2010.
38490
38491 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38492
38493         PR lto/42531
38494         * lto-streamer-out.c (produce_asm): Revert the last change.
38495         (copy_function): Likewise.
38496
38497         * lto-streamer.c (lto_get_section_name): Skip any leading
38498         asterisk in name.
38499
38500 2010-01-01  Richard Guenther  <rguenther@suse.de>
38501
38502         PR middle-end/42559
38503         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38504         for LABEL_DECLs.
38505
38506 \f
38507 Copyright (C) 2010 Free Software Foundation, Inc.
38508
38509 Copying and distribution of this file, with or without modification,
38510 are permitted in any medium without royalty provided the copyright
38511 notice and this notice are preserved.