Fix PR45199: do not aggregate memory accesses to the same array for -ftree-loop-distr...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2
3         PR tree-optimization/45199
4         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
5         (stores_zero_from_loop): Call
6         mem_write_stride_of_same_size_as_unit_type_p.
7         * tree-data-ref.h (stride_of_unit_type_p): New.
8         * tree-loop-distribution.c (generate_memset_zero): Simplified.
9         Call stride_of_unit_type_p.
10         (build_rdg_partition_for_component): Do not call
11         rdg_flag_similar_memory_accesses when
12         flag_tree_loop_distribute_patterns is set.
13
14 2010-12-02  Richard Guenther  <rguenther@suse.de>
15
16         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
17         sign-changing conversions for induction detection.
18
19 2010-12-02  Richard Guenther  <rguenther@suse.de>
20
21         PR tree-optimization/46723
22         * tree-vect-loop.c (get_initial_def_for_induction): Strip
23         conversions from the induction evolution and apply it to
24         the result instead.
25         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
26         assigns for induction defs.
27
28 2010-12-02  Richard Guenther  <rguenther@suse.de>
29
30         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
31         the case we need to split the edge and not the block.
32
33 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
34
35         DFA model for Core 2 and Core i7 scheduling.
36
37         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
38         * config/i386/i386.c (ix86_option_override_internal): Update entries
39         for Core 2 and Core i7.
40         (ix86_issue_rate): Set issue rate to 3 [be realistic].
41         * config/i386/i386.md: Include "core2.md".
42         (define_attr cpu): Add "corei7".
43
44 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
45
46         Define tuning for Core 2 and Core i7.
47
48         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
49         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
50         (m_CORE2): Replace with m_CORE2_{32,64}.
51         (m_CORE2I7{,_32,_64}): New macros.
52         (m_GENERIC32, m_GENERIC64): Update.
53         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
54         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
55         set m_CORE2I7_64 iff m_GENERIC64.
56         (processor_target_table): Use generic costs for Core 2 and Core i7.
57         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
58         (ix86_issue_rate): Remove entry for Core 2.
59         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
60         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
61         (TARGET_CORE2): Update.
62         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
63         (PROCESSOR_CORE2): Remove.
64
65 2010-12-02  Richard Guenther  <rguenther@suse.de>
66
67         * lto-streamer.h (LTO_major_version): Bump to 2.
68
69 2010-12-02  Richard Guenther  <rguenther@suse.de>
70
71         PR lto/44871
72         * gimple.c (canonical_type_hash_cache): New hashtable.
73         (gimple_type_hash): Make a wrapper around ...
74         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
75         (gimple_canonical_type_hash): Likewise.
76         (gtc_visit): Take a gtc_mode argument.
77         (gimple_types_compatible_p_1): Likewise. Do not compare struct
78         tag names or field names when computing canonical types.
79         (gimple_types_compatible_p): Adjust.
80         (visit): Take a gtc_mode argument.
81         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
82         names or field names when computing hashes of canonical types.
83         (gimple_register_canonical_type): Use gimple_canonical_type_hash
84         for the hash.
85         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
86         (free_gimple_type_tables): Free canonical_type_hash_cache.
87
88 2010-12-02  Richard Guenther  <rguenther@suse.de>
89             Ira Rosen  <irar@il.ibm.com>
90
91         PR tree-optimization/46663
92         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
93         FUNCTION_DECL exists and that it's a builtin.
94
95 2010-12-02  Jie Zhang  <jie@codesourcery.com>
96
97         PR middle-end/46674
98         * varasm.c (compute_visible_aliases): Handle user set
99         assembler name.
100
101 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
102
103         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
104         thinko regarding setting -mno-<xxx> debug switches.
105         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
106
107 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
108
109         * intl.c: Don't include tm.h.
110         * Makefile.in (intl.o): Don't depend on $(TM_H).
111
112 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
113
114         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
115         unused warning.
116         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
117
118 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
119
120         * graphite-sese-to-poly.c (analyze_drs): Removed.
121         (build_scop_drs): Do not call analyze_drs.
122         (analyze_drs_in_stmts): New.
123         (insert_stmts): New.
124         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
125         (insert_out_of_ssa_copy_on_edge): Same.
126         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
127         (rewrite_phi_out_of_ssa): Same.
128         (rewrite_cross_bb_scalar_dependence): Same.
129         (split_reduction_stmt): Move data references in the new basic blocks.
130         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
131
132 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
133
134         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
135
136 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
137
138         PR middle-end/45297
139         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
140         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
141         * graphite-poly.h (new_poly_bb): Update declaration.
142         (gbb_from_bb): Moved here...
143         (pbb_from_bb): New.
144         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
145         Removed.
146         (graphite_stmt_p): Removed.
147         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
148         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
149         new_poly_bb.
150         (build_scop_bbs_1): Do not pass in sbitmap reductions.
151         (build_scop_bbs): Same.
152         (gbb_from_bb): ... from here.
153         (add_conditions_to_constraints): Moved up.
154         (analyze_drs): New.
155         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
156         not contain data references.
157         (new_pbb_from_pbb): New.
158         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
159         block is split.
160         (rewrite_close_phi_out_of_ssa): Update call to
161         insert_out_of_ssa_copy_on_edge.
162         (rewrite_reductions_out_of_ssa): Now static.
163         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
164         (split_pbb): New.
165         (split_reduction_stmt): Call split_pbb.
166         (translate_scalar_reduction_to_array): Pass in the scop, do not
167         pass in the sbitmap reductions.
168         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
169         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
170         (rewrite_commutative_reductions_out_of_ssa): Same.
171         (build_poly_scop): Call build_scop_bbs,
172         rewrite_commutative_reductions_out_of_ssa,
173         rewrite_reductions_out_of_ssa, and
174         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
175         before scop_to_lst.
176         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
177         Removed declaration.
178         (rewrite_reductions_out_of_ssa): Same.
179         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
180         (build_scop_bbs): Same.
181         * graphite.c (graphite_transform_loops): Do not initialize reductions.
182         Do not call build_scop_bbs,
183         rewrite_commutative_reductions_out_of_ssa,
184         rewrite_reductions_out_of_ssa, and
185         rewrite_cross_bb_scalar_deps_out_of_ssa.
186         * sese.h (struct gimple_bb): Add field pbb.
187         (GBB_PBB): New.
188
189 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
190
191         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
192         New.
193         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
194         handle_scalar_deps_crossing_scop_limits.
195         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
196         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
197
198 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
199
200         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
201         when replacing a constant in an ADDR_EXPR.
202
203 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
204
205         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
206         for the stride.
207         (lst_do_strip_mine): Same.
208         (scop_do_strip_mine): Same.
209         * graphite-poly.c (apply_poly_transforms): Update call to
210         scop_do_strip_mine.
211         * graphite-poly.h (scop_do_strip_mine): Update declaration.
212
213 2010-12-01  Jan Hubicka  <jh@suse.cz>
214
215         * tree.c (build_common_builtin_nodes): Do not initialize
216         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
217         * builtins.c (expand_builtin_profile_func): Remove.
218         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
219         BUILT_IN_PROFILE_FUNC_EXIT.
220         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
221         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
222         * gimplify.c (gimplify_function_tree): Reorganize code calling
223         profiling functions.
224
225 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
226
227         * opts.c: Expand comment on tm.h include.
228
229 2010-12-01  Yao Qi  <yao@codesourcery.com>
230
231         * config/arm/predicates.md ("vfp_register_operand"): Return true for
232         VFP_D0_D7_REGS classes.
233
234 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
235
236         * common.opt (flag_stack_check): New Variable entry.
237         (fcompare-debug-second): Use Var.
238         * flags.h (flag_compare_debug, flag_stack_check): Remove.
239         * opts.c (flag_compare_debug): Remove.
240         (common_handle_option): Don't handle OPT_fcompare_debug_second.
241         Set opts->x_flag_stack_check for OPT_fstack_check_.
242         * toplev.c (flag_stack_check): Remove.
243
244 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
245
246         * common.opt (main_input_filename, main_input_basename,
247         main_input_baselength): New Variable entries.  From toplev.c.
248         * final.c (output_quoted_string): Move from toplev.c.
249         * output.h (output_quoted_string): Move from toplev.h.
250         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
251         access main_input_filename, main_input_baselength and
252         main_input_basename.
253         * targhooks.c: Include intl.h and opts.h.
254         (option_affects_pch_p, default_get_pch_validity): Move from
255         toplev.c.
256         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
257         Move from toplev.h.
258         * toplev.c (main_input_filename, main_input_basename,
259         main_input_baselength): Move to common.opt.
260         (output_quoted_string): Move to final.c.
261         (warn_deprecated_use): Move to tree.c.
262         (option_affects_pch_p, default_get_pch_validity,
263         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
264         * toplev.h (skip_leading_substring): Move to tree-dump.c.
265         (warn_deprecated_use): Move to tree.h.
266         (output_quoted_string): Move to output.h.
267         (main_input_filename, main_input_basename, main_input_baselength):
268         Move to common.opt.
269         (default_get_pch_validity, default_pch_valid_p): Move to
270         targhooks.c.
271         * tree-dump.c (skip_leading_substring): Move from toplev.h.
272         * tree.c (warn_deprecated_use): Move from toplev.c.
273         * tree.h (warn_deprecated_use): Move from toplev.h.
274         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
275         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
276         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
277         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
278         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
279         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
280         config/mcore/mcore.c, config/mep/mep.c,
281         config/microblaze/microblaze.c, config/mips/mips.c,
282         config/mmix/mmix.c, config/mn10300/mn10300.c,
283         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
284         config/picochip/picochip.c, config/s390/s390.c,
285         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
286         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
287         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
288         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
289         varasm.c, xcoffout.c: Don't include toplev.h.
290         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
291         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
292         varasm.o, xcoffout.o): Update dependencies.
293         * config/arm/t-arm (arm.o): Update dependencies.
294         * config/spu/t-spu-elf (spu.o): Update dependencies.
295
296 2010-12-01  Richard Guenther  <rguenther@suse.de>
297
298         PR tree-optimization/46730
299         * value-prof.c (gimple_ic): Always generate a separate merge BB.
300
301 2010-11-30  Ian Lance Taylor  <iant@google.com>
302
303         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
304         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
305         * config/i386/linux64.h (ASM_SPEC): Likewise.
306         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
307         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
308         * config/i386/vxworks.h (ASM_SPEC): Likewise.
309         * config/i386/x86-64.h (ASM_SPEC): Likewise.
310         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
311         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
312
313 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
314
315         * c-decl.c (finish_function): Call objc_finish_function in
316         Objective-C.
317         * c-typeck.c (convert_for_assignment): Do not call
318         objc_type_quals_match().
319
320 2010-11-30  Richard Guenther  <rguenther@suse.de>
321
322         PR tree-optimization/46722
323         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
324         operands as arguments.
325         (execute_optimize_widening_mul): Also handle power of two as
326         multiplication.
327
328 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
329
330         PR middle-end/46709
331         * cgraphunit.c (process_function_and_variable_attributes): Fix
332         cut'n'pasteo.
333
334 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
335
336         * hwint.c:  New.  Extracted from toplev.c.
337         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
338         Move from toplev.h.
339         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
340         Move to hwint.c.
341         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
342         Move to hwint.h.
343         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
344         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
345         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
346         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
347         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
348         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
349         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
350         tree-vrp.c: Don't include toplev.h.
351         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
352         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
353         toplev.h in generated output.
354         * Makefile.in (OBJS-common): Add hwint.o.
355         Dependencies for above files changed to remove toplev.h.
356         (hwint.o): New.
357         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
358         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
359         toplev.h.
360         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
361         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
362
363 2010-11-30  Richard Guenther  <rguenther@suse.de>
364
365         PR tree-optimization/46717
366         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
367         call.  Manually create EH edges for the direct call and update
368         target PHI nodes.
369
370 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
371
372         * diagnostic-core.h: Include bversion.h.
373         * toplev.h: Don't include input.h or bversion.h.
374         (parse_optimize_options): Don't declare here.
375         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
376         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
377         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
378         config/host-darwin.c, config/i386/host-cygwin.c,
379         config/i386/host-mingw32.c, config/i386/msformat-c.c,
380         config/i386/netware.c, config/i386/nwld.c,
381         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
382         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
383         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
384         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
385         config/score/score3.c, config/score/score7.c,
386         config/sh/symbian-base.c, config/sh/symbian-c.c,
387         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
388         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
389         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
390         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
391         graphite-blocking.c, graphite-clast-to-gimple.c,
392         graphite-dependences.c, graphite-flattening.c,
393         graphite-interchange.c, graphite-poly.c,
394         graphite-scop-detection.c, graphite.c, haifa-sched.c,
395         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
396         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
397         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
398         lto-opts.c, lto-section-in.c, lto-section-out.c,
399         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
400         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
401         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
402         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
403         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
404         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
405         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
406         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
407         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
408         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
409         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
410         include toplev.h.
411         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
412         toplev.h.  Dependencies for above files and c-family files changed
413         to remove $(TOPLEV_H) or toplev.h.
414         (C_TREE_H): Don't include $(TOPLEV_H).
415         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
416         bversion.h.
417         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
418         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
419         config/t-darwin, config/t-sol2,
420         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
421         Dependencies for above files changed to remove $(TOPLEV_H) or
422         toplev.h.
423
424 2010-11-30  Richard Guenther  <rguenther@suse.de>
425
426         PR lto/44986
427         * gcc.c (main): Use the first input with a compiler as infile
428         for link spec processing.
429
430 2010-11-30  Richard Guenther  <rguenther@suse.de>
431
432         PR lto/45949
433         * cgraphunit.c (ipa_passes): Stop after errors from
434         small IPA passes.
435
436 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
437
438         * gcc-plugin.h: Include coretypes.h.
439         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
440
441 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
442
443         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
444         * ggc-none.c (ggc_internal_alloc_zone_stat)
445         (ggc_internal_cleared_alloc_zone_stat): New.
446
447 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
448
449         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
450         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
451         (rs6000_emit_prologue): Don't set PIC register if
452         TARGET_SINGLE_PIC_BASE.
453         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
454         * doc/invoke.texi (msingle-pic-base): Document.
455
456 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
457
458         PR driver/46712
459         * exec-tool.in (id): New.
460         Check and export LT_RCU_$id instead of LT_RCU.
461
462 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
463
464         PR tree-optimization/46675
465         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
466         in offset calculation.
467
468 2010-11-29  Jan Hubicka  <jh@suse.cz>
469
470         * collect2.c (main): Do not imply verbose output with
471         LTO and linker plugin.
472
473 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
474
475         * dwarf2out.c (print_die): Print the address of the current DIE or
476         of any DIE referenced by the current one.
477
478 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
479
480         PR debug/46101
481         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New
482         function.
483         (scope_die_for, gen_type_die_for_member): Replace uses of
484         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
485
486 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
487
488         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
489         (darwin_asm_declare_object_name): Correct spelling.
490         (darwin_output_aligned_bss): Likewise.
491
492 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
493             Mike Stump  <mrs@gcc.gnu.org>
494
495         PR target/26427
496         PR target/33120
497         PR testsuite/35710
498         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
499         (ASM_OUTPUT_LOCAL): Likewise.
500         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
501         (darwin_output_aligned_bss): Likewise.
502         (darwin_asm_output_aligned_decl_local): Likewise.
503         (darwin_asm_output_aligned_decl_common): Likewise.
504         (darwin_use_anchors_for_symbol_p): Likewise.
505         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
506         (TARGET_ASM_OUTPUT_ANCHOR): Define.
507         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
508         (DARWIN_SECTION_ANCHORS): Set to 1.
509         * config/darwin.c (emit_aligned_common): New var.
510         (darwin_init_sections): Check that the Darwin private zero-size section
511         marker is in range.
512         (darwin_text_section): Check for zero-sized objects.
513         (darwin_mergeable_string_section): Likewise.
514         (darwin_mergeable_constant_section): Likewise.
515         (machopic_select_section): Adjust to check for zero-sized objects.
516         Assert that OBJC meta data are non-zero sized.
517         (darwin_asm_declare_object_name): New.
518         (darwin_asm_declare_constant_name): Adjust for zero-sized
519         object sections.
520         (BYTES_ZFILL): Define.
521         (darwin_emit_weak_or_comdat): New.
522         (darwin_emit_local_bss): New.
523         (darwin_emit_common): New.
524         (darwin_output_aligned_bss): New.
525         (darwin_asm_output_aligned_decl_common): New.
526         (darwin_asm_output_aligned_decl_local): New.
527         (darwin_file_end): Disable subsections_via_symbols when section
528         anchoring is active.
529         (darwin_asm_output_anchor): Re-enable.
530         (darwin_use_anchors_for_symbol_p): New.
531         (darwin_override_options): Check for versions that can emit
532         aligned common.  Update usage of flags to current.
533         * config/darwin-sections.def: Update comments and flags for
534         non-anchor sections.  zobj_const_section, zobj_data_section,
535         zobj_bss_section, zobj_const_data_section: New.
536         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
537         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
538         (L2_MAX_OFILE_ALIGNMENT): Define.
539         (ASM_OUTPUT_ALIGNED_BSS): Define.
540         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
541         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
542         (SECTION_NO_ANCHOR): Define.
543         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
544         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
545
546 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
547
548         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
549         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
550         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
551         Conditionally define.
552         (GET_ENVIRONMENT): Poison.
553         * configure.ac: Don't test for mincore.
554         * configure: Regenerate.
555         * config.in: Regenerate.
556         * collect2-aix.c: Don't include <sys/mman.h>.
557         * collect2.c: Don't include <signal.h>.
558         (SIGCHLD): Don't define.
559         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
560         * config/alpha/alpha.c: Include "splay-tree.h" instead of
561         <splay-tree.h>.
562         * config/arm/arm.c (arm_target_help): Use getenv instead of
563         GET_ENVIRONMENT.
564         * config/avr/driver-avr.c: Don't include <stdlib.h>.
565         * config/frv/frv.c: Don't include <ctype.h>.
566         * config/host-darwin.c: Don't include <sys/mman.h>.
567         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
568         (MAP_FAILED): Don't define.
569         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
570         * config/host-solaris.c: Don't include <sys/mman.h>.
571         * config/i386/cygming.h: Don't include <stdio.h>.
572         * config/i386/driver-i386.c: Don't include <stdlib.h>.
573         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
574         * config/iq2000/iq2000.c: Don't include <signal.h>.
575         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
576         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
577         * config/mep/mep-pragma.c: Don't include <stdio.h>.
578         * config/microblaze/microblaze.c: Don't include <signal.h>.
579         * config/mips/mips.c: Don't include <signal.h>.
580         * config/rs6000/host-darwin.c: Don't include <signal.h>.
581         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
582         * defaults.h (GET_ENVIRONMENT): Don't define.
583         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
584         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
585         (SIGCHLD, MAP_FAILED, kill): Don't define.
586         (process_command): Use getenv instead of GET_ENVIRONMENT.
587         * genhooks.c: Don't include <string.h>.
588         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
589         <sys/types.h>.
590         (MAP_FAILED): Don't define.
591         * ggc-page.c Don't include <sys/mman.h>.
592         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
593         * ggc-zone.c: Don't include <sys/mman.h>.
594         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
595         * graph.c: Include "config.h" instead of <config.h>.
596         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
597         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
598         (SIGCHLD, kill): Don't define.
599         * mips-tfile.c: Don't include <signal.h>.
600         * opts.c: Don't include <signal.h> or <sys/resource.h>.
601         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
602         * passes.c: Don't include <signal.h>, <sys/resource.h> or
603         <sys/times.h>.
604         * sparseset.h: Don't include <assert.h>.
605         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
606         * tlink.c: Don't include "libiberty.h".
607         * toplev.c: Don't include <signal.h> or <sys/times.h>.
608         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
609         * tree-switch-conversion.c: Don't include <signal.h>.
610         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
611
612 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
613
614         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
615         c_parser_objc_try_catch_finally_statement for consistency with the
616         C++ parser.  Parse @catch(...) and pass NULL_TREE to
617         objc_begin_catch_clause() in that case.  Improved error recovery.
618         Reorganized code to be almost identical to
619         cp_parser_objc_try_catch_finally_statement.
620
621 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
622
623         PR tree-optimization/46621
624         * gimple.h: Don't include tm.h or hard-reg-set.h .
625         * Makefile.in (GIMPLE_H): Remove $(TM_H).
626
627         PR bootstrap/44756
628         * cppbuiltin.c: Include target.h .
629         (define_builtin_macros_for_type_sizes):
630         Use targetm.float_words_big_endian.
631
632 2010-11-27  Jan Hubicka  <jh@suse.cz>
633
634         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
635         and output cold_text_section_label.
636         (dwarf2out_init): Don't do that there.
637         (dwarf2out_finish): Handle cold section end label only if cold
638         section was used.
639
640 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
641
642         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
643         VLA variables.
644
645 2010-11-27  Richard Guenther  <rguenther@suse.de>
646
647         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
648         (gimple_assign_ssa_name_copy_p): Likewise.
649         (gimple_assign_unary_nop_p): Use is_gimple_assign.
650         (is_gimple_cast): Remove.
651         (gimple_assign_single_p): Move ...
652         * gimple.h (gimple_assign_single_p): ... here.
653         (is_gimple_cast): Remove.
654         (gimple_assign_rhs_code): Simplify.
655         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
656         instead of is_gimple_cast.
657         * ipa-type-escape.c (look_for_casts): Likewise.
658
659 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
660
661         * doc/options.texi (Enum, EnumValue): Document new record types.
662         (Enum): Document new option flag.
663         * opt-functions.awk
664         * optc-gen.awk: Handle enumerated option arguments.
665         * opth-gen.awk: Handle enumerated option arguments.
666         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
667         enum_value_to_arg): New.
668         (decode_cmdline_option): Handle enumerated arguments.
669         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
670         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
671         * opts.c (print_filtered_help, print_specific_help): Take
672         lang_mask arguments.
673         (print_filtered_help): Handle printing values of enumerated
674         options.  Print possible arguments for enumerated options.
675         (print_specific_help): Update call to print_filtered_help.
676         (common_handle_option): Update calls to print_specific_help.  Use
677         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
678         handle OPT_ffp_contract_, OPT_fexcess_precision_,
679         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
680         OPT_fira_region_ here.
681         * opts.h (enum cl_var_type): Add CLVC_ENUM.
682         (struct cl_option): Add var_enum.
683         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
684         struct cl_enum, cl_enums, cl_enums_count): New.
685         (CL_ERR_ENUM_ARG): Define.
686         (CL_ERR_NEGATIVE): Update value.
687         (enum_value_to_arg): Declare.
688         * common.opt (flag_ira_algorithm, flag_ira_region,
689         flag_fp_contract_mode, flag_excess_precision_cmdline,
690         default_visibility, flag_tls_default): Remove Variable entries.
691         (help_enum_printed): New Variable.
692         (fdiagnostics-show-location=): Use Enum.  Add associated
693         SourceInclude, Enum and EnumValue entries.
694         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
695         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
696         associated Enum and EnumValue entries.
697
698 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
699
700         PR target/46623
701         * config/microblaze/microblaze.c (microblaze_block_move_straight):
702         Use XALLOCAVEC.
703         (microblaze_option_override): Don't use C++ style comments.
704         (save_restore_insns): Remove unused variable base_offset.
705         (microblaze_expand_prologue): Remove unused variable insn.
706         (microblaze_secondary_reload): Adjust type to match target.h .
707         (microblaze_elf_in_small_data_p): Move declarations to start of block.
708         (microblaze_expand_move): Likewise.
709         * config/microblaze/microblaze.h (LARGE_INT):
710         Avoid signed / unsigned comparisons.
711         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
712         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
713         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
714
715 2010-11-26  Michael Matz  <matz@suse.de>
716
717         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
718
719         * passes.c (init_optimization_passes): Remove superfluous
720         copy-prop pass.
721
722 2010-11-26  Richard Guenther  <rguenther@suse.de>
723
724         PR lto/46648
725         * gimple.c (gtc_visit): Do not return true for members of an
726         SCC still being processed but the current lattice value of
727         the member.  Treat SCC members comparison state as lattice,
728         starting at equal, eventually dropping to unequal.
729         (gimple_types_compatible_p_1): Likewise.
730
731 2010-11-26  Richard Guenther  <rguenther@suse.de>
732
733         PR middle-end/46559
734         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
735         for location list processing.
736
737 2010-11-26  Richard Guenther  <rguenther@suse.de>
738
739         PR lto/46560
740         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
741         flags manually.
742
743 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
744
745         * config/s390/s390.c (print_operand_address): Replace assert with
746         error message.
747         (print_operand): Replace assertions, gcc_unreachable and
748         fatal_insn with error messages.
749
750 2010-11-26  Richard Guenther  <rguenther@suse.de>
751
752         PR tree-optimization/46665
753         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
754
755 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
756
757         * config/arm/arm.c (arm_option_override): enable loop array
758         prefetching at -O3 for suitable targets, and configure params.
759         * config/arm/arm-protos.h (struct tune_params): Add fields for
760         configuring loop array prefetching.
761
762 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
763
764         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
765
766 2010-11-26  Richard Guenther  <rguenther@suse.de>
767
768         PR tree-optimization/46664
769         * tree-affine.c (aff_combination_to_tree): Add rest last.
770
771 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
772
773         PR target/33637
774         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
775         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
776         * configure: Regenerated.
777         * exec-tool.in: Not quoting command, may have extra arguments.
778
779 2010-11-26  Richard Guenther  <rguenther@suse.de>
780
781         PR tree-optimization/46528
782         PR debug/46338
783         * profile.c (branch_prob): Do not split blocks based on locations
784         from debug statements.
785
786 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
787
788         PR middle-end/46647
789         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
790         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
791
792         PR bootstrap/45700
793         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
794         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
795         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
796         build6_loc): Define.
797         * fold-const.c (protected_set_expr_location_unshare): New inline.
798         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
799         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
800         pedantic_omit_one_operand_loc, omit_two_operands_loc,
801         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
802         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
803         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
804         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
805         instead of buildN followed by SET_EXPR_LOCATION or
806         protected_set_expr_location.
807         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
808         Use buildN_stat_loc instead of buildN_stat followed by
809         SET_EXPR_LOCATION.
810
811 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
812
813         * Makefile.in (s-tm-texi): Remove spurous tab.
814
815 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
816
817         PR debug/46258
818         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
819         debug stmts.
820
821 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
822
823         * toplev.c (finalize): Add no_backend parameter.  Don't finish
824         passes when preprocessing only.  Adjust...
825         (do_compile): ... caller.
826
827 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
828
829         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
830         flag_unsafe_math_optimizations.
831         (negsf2): Likewise.
832         Move fnegabs related patterns together.  Only use fmpynfadd instruction
833         to negate a multiply if !flag_signed_zeros is true.
834
835 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
836
837         * gengtype-state.c (read_state_structures): Initialize "previous".
838
839 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
840             Jeremie Salvucci  <jeremie.salvucci@free.fr>
841
842         * gengtype-state.c: Add new file.
843
844         * gengtype.c (type count): New variable.
845         (new_structure, find_param_structure, create_pointer)
846         (create_array): Use it to set state_number in types.
847         (dump_everything): Improve comment.
848         (main): Call read_state and write_state. Print type_count.
849
850         * gengtype.h (type_lineloc): New function.
851         (read_state, write_state): New declarations.
852
853         * Makefile.in (GENGTYPE_FLAGS): New variable.
854         (s-gtype): Run gengtype twice and generate gtype.state.
855         (build/gengtype-state.o): New rule.
856         (build/gengtype$(build_exeext)): Link gengtype-state.o.
857         (mostlyclean): Update comment.  Remove gtype.state.
858
859 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
860
861         PR middle-end/46637
862         * combine.c (try_combine): When substing i2dest for i2src, pass
863         1 as last argument even if
864         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
865
866 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
867
868         PR middle-end/46647
869         * builtins.c (target_char_cast): Check INTEGER_CST instead of
870         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
871
872 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
873
874         * target.def (supports_split_stack, except_unwind_info): Take
875         gcc_options parameters.
876         * targhooks.c (default_except_unwind_info,
877         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
878         gcc_options parameters.
879         * targhooks.h (default_except_unwind_info,
880         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
881         prototypes.
882         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
883         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
884         Document that hooks must not be modified.
885         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
886         * doc/tm.texi: Regenerate.
887         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
888         &global_options to targetm.except_unwind_info.
889         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
890         dwarf2out_begin_prologue, dwarf2out_frame_init,
891         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
892         &global_options to targetm.except_unwind_info.
893         * except.c (init_eh, finish_eh_generation,
894         gate_convert_to_eh_region_ranges,
895         output_one_function_exception_table): Pass &global_options to
896         targetm.except_unwind_info.
897         * expr.c (build_personality_function): Pass &global_options to
898         targetm.except_unwind_info.
899         * function.c (expand_function_end): Pass &global_options to
900         targetm.except_unwind_info.
901         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
902         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
903         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
904         and targetm.supports_split_stack.  Remove assertions about opts
905         and opts_set.
906         (common_handle_option): Remove assertions about opts, opts_set and dc.
907         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
908         &global_options to targetm.except_unwind_info.
909         * tree.c (build_common_builtin_nodes: Pass &global_options to
910         targetm.except_unwind_info.
911         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
912         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
913         thumb1_expand_prologue, thumb1_output_function_prologue,
914         arm_unwind_emit, arm_output_fn_unwind): Update calls to
915         arm_except_unwind_info.
916         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
917         parameter.
918         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
919         parameter.
920         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
921         ia64_reorg, ia64_asm_unwind_emit): Update calls to
922         ia64_except_unwind_info.
923         * config/pa/pa.c (pa_option_override): Pass &global_options to
924         targetm.except_unwind_info.
925         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
926         Remove prototype.
927
928 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
929
930         * cgraphunit.c (process_function_and_variable_attributes):
931         Mark dllexport-ed function/variables as needed.
932         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
933         as externally visible.
934
935 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
936
937         PR rtl-optimization/46585
938         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
939         (vinsn_init): Skip computation of dependencies for local NOPs.
940         (vinsn_delete): Don't try to free regsets for local NOPs.
941         (setup_nop_and_exit_insns): Change definition of nop_pattern.
942
943 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
944
945         PR rtl-optimization/46602
946         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
947         (tidy_control_flow): Here.
948
949 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
950             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
951
952         PR bootstrap/45888
953         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
954         Fix target.def pathname in timestamp comparison.
955
956 2010-11-24  Richard Henderson  <rth@redhat.com>
957
958         * config/ia64/predicates.md (pmpyshr_operand): New.
959         * config/ia64/ia64.c (ia64_expand_unpack): New.
960         (ia64_expand_widen_mul_v4hi): New.
961         (ia64_expand_widen_sum): Update for pattern renames.
962         (ia64_expand_dot_prod_v8qi): Likewise.
963         * config/ia64/ia64-protos.h: Update.
964         * config/ia64/vect.md (vecwider): New mode attribute.
965         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
966         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
967         (pmpyshr2, pmpyshr2_u): New.
968         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
969         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
970         (mulv2si3): New.
971         (vec_pack_ssat_v4hi): Rename from pack2_sss.
972         (vec_pack_usat_v4hi): Rename from *pack2_uss.
973         (vec_pack_ssat_v2si): Rename from pack4_sss.
974         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
975         vec_select operation.
976         (vec_interleave_highv8qi): Similarly.
977         (mux1_alt): Rename from *mux1_alt.
978         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
979         (vec_interleave_lowv4hi): Rename from unpack2_l.
980         (vec_interleave_highv4hi): Rename from unpack2_h.
981         (mix2_r): Rename from *mix2_r.
982         (mix2_l): Similarly.
983         (vec_extract_evenodd_helper): New.
984         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
985         (vec_interleave_lowv2si): Rename from *unpack4_l.
986         (vec_interleave_highv2si): Rename from *unpack4_h.
987         (vec_extract_evenv2si, vec_extract_oddv2si): New.
988         (vec_interleave_lowv2sf): Rename from fmix_r.
989         (vec_interleave_highv2sf): Rename from *fmix_l.
990         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
991         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
992         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
993         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
994
995 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
996
997         * targhooks.c (default_except_unwind_info): Remove
998         MUST_USE_SJLJ_EXCEPTIONS case.
999         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1000         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1001         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
1002         * doc/tm.texi: Regenerate.
1003         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
1004
1005 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
1006
1007         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
1008         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
1009         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
1010         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
1011         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
1012
1013 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1014
1015         PR target/46519
1016         * config/i386/i386.c (ix86_expand_call): Don't check
1017         TREE_THIS_VOLATILE.
1018
1019 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
1020
1021         PR target/46519
1022         * config/i386/i386.c (upper_128bits_state): New.
1023         (block_info_def): Remove upper_128bits_set and done.  Add state,
1024         referenced, count, processed and rescanned.
1025         (check_avx256_stores): Updated.
1026         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
1027         Call note_stores only if needed.  Set referenced and count.
1028         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
1029         (rescan_move_or_delete_vzeroupper): New.
1030         (move_or_delete_vzeroupper):  Process and rescan all all basic
1031         blocks instead of predecessor blocks of all exit points.
1032         (ix86_option_override_internal): Enable vzeroupper optimization
1033         only for -fexpensive-optimizations and not optimizing for size.
1034         (use_avx256_p): Removed.
1035         (init_cumulative_args): Don't set use_avx256_p.
1036         (ix86_function_arg): Likewise.
1037         (ix86_expand_move): Likewise.
1038         (ix86_expand_vector_move_misalign): Likewise.
1039         (ix86_local_alignment): Likewise.
1040         (ix86_minimum_alignment): Likewise.
1041         (ix86_expand_epilogue): Don't check use_avx256_p when generating
1042         vzeroupper.
1043         (ix86_expand_call): Likewise.
1044
1045         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
1046         and use_avx256_p.  Add rescan_vzeroupper_p.
1047
1048 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1049
1050         * toplev.c: Include <signal.h>.
1051
1052 2010-11-24  Richard Guenther  <rguenther@suse.de>
1053
1054         PR lto/43218
1055         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
1056         conflicting function signatures as non-inlineable.
1057
1058 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1059
1060         PR rtl-optimization/46614
1061         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
1062          (deps_analyze_insn): Mark JUMP_INSNs in
1063         last_pending_memory_flush that weren't added through
1064         flush_pending_lists with NON_FLUSH_JUMP_KIND.
1065         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
1066         on INSN_LIST instead of JUMP_P check on its operand.
1067         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
1068
1069 2010-11-24  Richard Guenther  <rguenther@suse.de>
1070
1071         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
1072
1073 2010-11-24  Richard Guenther  <rguenther@suse.de>
1074
1075         PR lto/46606
1076         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
1077         a FIELD_DECL that is type correct issue a warning and fixup
1078         with a VIEW_CONVERT_EXPR.
1079
1080 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1081
1082         * doc/invoke.texi (Options for Debugging Your Program or GCC):
1083         Explain static numbering of dump files.
1084
1085 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
1086
1087         * common.opt (user_vect_verbosity_level): New Variable entry.
1088         (ftree-vectorizer-verbose=): Mark as UInteger.
1089         * flag-types.h (enum vect_verbosity_levels): Move from enum
1090         verbosity_levels in tree-vectorizer.h.
1091         * opts.c: Don't include tree.h.
1092         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
1093         gcc_options parameter; take integer option argument.
1094         (common_handle_option): Update call to vect_set_verbosity_level.
1095         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
1096         (vect_set_verbosity_level): Move to opts.c.
1097         (vect_verbosity_level, vect_print_dump_info): Update for change of
1098         enum name.
1099         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
1100         (vect_print_dump_info): Update for change of enum name.
1101         * tree.h (vect_set_verbosity_level): Remove.
1102         * Makefile.in (opts.o): Update dependencies.
1103
1104 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
1105
1106         PR middle-end/46629
1107         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
1108         instead of insn with any_condjump_p.
1109
1110 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
1111
1112         * config/mips/loongson.md: Change the description comment of the file
1113         and update the copyright years.
1114         (define_insn "<u>div<mode>3): Add loongson3a support.
1115         (define_insn "<u>mod<mode>3"): Likewise.
1116         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
1117         mul<mode>3_mul3_loongson.
1118         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
1119         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
1120
1121 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1122
1123         * common.opt (initial_max_fld_align, flag_debug_asm,
1124         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
1125         flag_print_asm_name, graph_dump_format, help_printed,
1126         help_columns, flag_opts_finished): New Variable entries.
1127         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
1128         frandom-seed=): Mark deferred.
1129         (fsched-verbose=): Use UInteger and Var.
1130         * flags.h (set_struct_debug_option, flag_print_asm_name,
1131         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
1132         graph_dump_format): Don't declare here.
1133         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
1134         * opts-global.c: Include dbgcnt.h and debug.h.
1135         (decode_options): Pass location to finish_options.
1136         (handle_common_deferred_options): Check flag_dump_all_passed.
1137         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
1138         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
1139         OPT_fstack_limit.
1140         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
1141         (set_struct_debug_option): Add location_t parameter.  Update
1142         recursive call.  Use error_at.
1143         (default_options_optimization): Use error_at.
1144         (finish_options): Add location_t parameter.  Use
1145         opts->x_flag_opts_finished instead of first_time_p.  Use
1146         opts->x_optimize instead of optimize.  Use error_at.  Pass
1147         location to inform.
1148         (print_filtered_help): Use opts->x_help_printed to track what
1149         options have been printed.
1150         (print_specific_help): Use opts->x_help_columns to track number of
1151         columns.
1152         (common_handle_option): Pass locations and gcc_options pointers to
1153         more functions.  Use warning_at instead of fnotice and warning.
1154         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
1155         OPT_fdebug_prefix_map_.  Use error_at.  Set
1156         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
1157         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
1158         OPT_fsched_verbose_.
1159         (handle_param): Add location_r parameter.  Use error_at.
1160         (set_debug_level): Add location_r parameter.  Use error_at and
1161         warning_at.
1162         (setup_core_dumping): Add diagnostic_context parameter.
1163         (decode_d_option): Add gcc_options, location_t and
1164         diagnostic_context parameters and use them instead of global
1165         state.  Use warning_at.
1166         (enable_warning_as_error): Use error_at.
1167         * opts.h (finish_options): Update prototype.
1168         (set_struct_debug_option): Declare here.
1169         * rtl.h (fix_sched_param): Remove.
1170         * stor-layout.c (initial_max_fld_align): Remove.
1171         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
1172         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
1173         (process_options): Set maximum_field_alignment.
1174         * tree.h (initial_max_fld_align) Don't declare here.
1175         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1176
1177 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1178
1179         * flag-types.h (struct visibility_flags): Don't declare here.
1180         * flags.h (strip_off_ending, fast_math_flags_set_p,
1181         fast_math_flags_struct_set_p): Declare here.
1182         (visibility_options): Don't declare here.
1183         * opts-common.c (option_enabled, get_option_state): Move from
1184         opts.c.
1185         * opts-global.c: Include diagnostic.h instead of
1186         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
1187         and toplev.h.
1188         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1189         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1190         print_ignored_options, unknown_option_callback,
1191         post_handling_callback, lang_handle_option, add_input_filename,
1192         read_cmdline_options, initial_lang_mask, init_options_once,
1193         decode_cmdline_options_to_array_default_mask,
1194         set_default_handlers, decode_options): Move from opts.c.
1195         (print_ignored_options): Use warning_at instead of saving and
1196         restoring input_location.
1197         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
1198         instead of expr.h.  Don't include langhooks.h, except.h or
1199         lto-streamer.h.  Add more comments on includes.
1200         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
1201         toplev.c.
1202         (visibility_options): Move to c-family/c-common.c.
1203         (const_char_p, ignored_options, in_fnames, num_in_fnames,
1204         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
1205         print_ignored_options, unknown_option_callback,
1206         post_handling_callback, lang_handle_option, add_input_filename,
1207         read_cmdline_options, initial_lang_mask, init_options_once,
1208         decode_cmdline_options_to_array_default_mask,
1209         set_default_handlers, decode_options): Move to opts-global.c.
1210         (target_handle_option, default_options_optimization,
1211         finish_options, common_handle_option): Remove static.
1212         (option_enabled, get_option_state): Move to opts-common.c.
1213         * opts.h (common_handle_option, target_handle_option,
1214         finish_options, default_options_optimization): Declare.
1215         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
1216         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
1217         opts.c.
1218         * toplev.h (strip_off_ending, decode_d_option,
1219         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
1220         declare here.
1221         * Makefile.in (opts.o, opts-global.o): Update dependencies.
1222
1223 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
1224
1225         PR driver/42690
1226         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
1227         options, replace by call of pass-through-libs spec function to process
1228         link_gcc_c_sequence spec.
1229         (lto_libgcc_spec): Delete variable.
1230         (static_specs[]): Remove related entry.
1231         (static_spec_functions[]): Add new entry for pass-through-libs.
1232         (main): Don't generate deleted lto_libgcc_spec.
1233         (pass_through_libs_spec_func): New function to implement the new
1234         pass-through-libs spec function.
1235         * doc/invoke.texi (pass-through-libs): Document new spec function.
1236
1237 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
1238
1239         * doc/options.texi (Warning, Optimization): Document.
1240
1241 2010-11-23  Jan Hubicka  <jh@suse.cz>
1242
1243         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
1244         (tree_decl_with_vis): Add implicit_section_name_p.
1245         * targhooks.h (default_function_section): Declare.
1246         * target.def (function_section): New hook.
1247         * defaults.h (HOT_TEXT_SECTION_NAME,
1248         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1249         * predict.c (choose_function_section): Remove.
1250         (estimate_bb_frequencies): Do not use choose_function_section.
1251         * coretypes.h (enum node_frequency): Move here from cgraph.h
1252         * cgraph.h (enum node_frequency): Remove.
1253         * varasm.c (initialize_cold_section_name, unlikely_text_section,
1254         unlikely_text_section_p): Remove.
1255         (named_subsection_entry): New structure.
1256         (get_text_section): New function.
1257         (default_function_section): New function.
1258         (function_section_1): Break out from ...; handle profile info.
1259         (function_section): ... here.
1260         (unlikely_text_section): Remove.
1261         (unlikely_text_section_p): Use function_section_1.
1262         (assemble_start_function): Do not initialize cold section.
1263         (default_section_type_flags): Do not special case cold subsection.
1264         (switch_to_section): Likewise.
1265         * output.h (get_text_section): Define.
1266         * config/i386/winnt.c: Do not special case cold section.
1267         * config/darwin-protos.h (darwin_function_section): Declare.
1268         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
1269         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1270         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
1271         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1272         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
1273         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
1274         * config/darwin.c (machopic_select_section): Use
1275         darwin_function_section.
1276         (darwin_function_section): New function.
1277         * config/darwin.h (HOT_TEXT_SECTION_NAME,
1278         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1279         (TARGET_ASM_FUNCTION_SECTION): Define.
1280         * system.h (HOT_TEXT_SECTION_NAME,
1281         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
1282
1283 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
1284
1285         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
1286         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
1287
1288 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
1289
1290         PR middle-end/46499
1291         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
1292         following unconditional jumps.
1293
1294 2010-11-23  Richard Guenther  <rguenther@suse.de>
1295
1296         * doc/md.texi (386 constraints): Clarify A constraint documentation.
1297
1298 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1299             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1300
1301         * gengtype.c (enum typekind, struct options)
1302         (struct nested_ptr_data, struct pair, NUM_PARAM)
1303         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
1304         Move to gengtype.h.
1305         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
1306         Remove static, add zero state_number.
1307         (typedefs, structures, param_structs, variables): Remove static.
1308         (create_option): Remove.
1309         (create_string_option, create_type_option, create_nested_option):
1310         New functions.
1311         (create_nested_ptr_option): Use create_nested_option.
1312         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
1313         new create*option functions.
1314         (process_gc_options): Adjust for discriminated option.
1315         (output_mangled_typename): Handle TYPE_NONE.
1316         (walk_type): Test option kinds.
1317         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
1318         (write_func_for_structure, write_type, write_local, write_root)
1319         (write_roots, note_def_vec, dump_options): Adjust for
1320         discriminated option.
1321
1322         * gengtype.h (typedefs, structures, param_structs, variables
1323         enum typekind): Move from gengtype.c
1324         (enum option_kind): New discriminating enumeration.
1325         (struct options): Becomes discriminated.
1326         (struct nested_ptr_data): Nove from gengtype.c
1327         (create_string_option, create_type_option, create_nested_option)
1328         (create_nested_ptr_option): New functions
1329         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
1330         (UNION_OR_STRUCT_P): Move from gengtype.c
1331
1332         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
1333         discriminated options.
1334
1335 2010-11-23  Richard Guenther  <rguenther@suse.de>
1336
1337         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
1338         twice.  Avoid re-allocating the ops vector all the time.
1339
1340 2010-11-23  Richard Guenther  <rguenther@suse.de>
1341
1342         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
1343         is_gimple_min_invariant, group tree code checks to allow
1344         combining them.
1345         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
1346         of is_gimple_reg.
1347
1348 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1349
1350         * config.gcc (sparc*-*-*): Reorder.
1351
1352 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
1353
1354         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
1355         Remove ENABLE_CHECKING around DBGPRINTF.
1356
1357 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
1358
1359         * common.opt (exit_after_options, write_symbols, debug_info_level,
1360         use_gnu_debug_info_extensions): New Variable entries.
1361         (fprofile-dir=): Use Var.
1362         * flag-types.h (enum debug_info_level): Rename to enum
1363         debug_info_levels.
1364         * flags.h (write_symbols, debug_info_level,
1365         use_gnu_debug_info_extensions): Remove declarations.
1366         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
1367         (set_struct_debug_option): Make static variables const.
1368         (use_gnu_debug_info_extensions): Remove.
1369         (set_debug_level, print_filtered_help, print_specific_help,
1370         fast_math_flags_set_p): Take gcc_options parameters and use them
1371         in place of global variables.
1372         (print_filtered_help): Make new_help non-static.
1373         (print_specific_help): Update call to print_filtered_help.
1374         (common_handle_option): Update calls to print_specific_help.  Use
1375         gcc_options structure for more settings.  Make --help table
1376         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
1377         set_debug_level.
1378         * toplev.c (profile_data_prefix): Remove.
1379         * toplev.h (profile_data_prefix, exit_after_options): Remove
1380         declarations.
1381         (fast_math_flags_set_p): Update prototype.
1382         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
1383         Update call to fast_math_flags_set_p.
1384
1385 2010-11-22  Richard Henderson  <rth@redhat.com>
1386
1387         PR target/46434
1388         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
1389         return the address register extracted.
1390         (crx_decompose_address): Update the extracted address register.
1391
1392 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1393
1394         PR driver/43335
1395         * gcc.c (main): Don't crash when lto-wrapper program is not found.
1396
1397 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
1398
1399         PR target/46608
1400         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
1401         * config/picochip/picochip-protos.h: Don't include "target.h" .
1402         (picochip_secondary_reload): Don't declare.
1403
1404         PR target/46613
1405         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
1406         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
1407         static.
1408
1409 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
1410
1411         PR bootstrap/46609
1412         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
1413         (source_dot_c_frul): Likewise.
1414
1415 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
1416
1417         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
1418
1419 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
1420
1421         PR bootstrap/44970
1422         * Makefile.in (fwprop.o) Add sparseset.h.
1423         * fwprop.c: Include sparseset.h
1424         (struct find_occurrence_data, find_occurrence_callback,
1425         find_occurrence): Remove.
1426         (active_defs, active_defs_check, register_active_defs,
1427         update_df_init, update_uses): New.
1428         (update_df): Rewrite.
1429         (try_fwprop_subst, forward_propagate_asm): Add calls to
1430         update_df_init and update_df.
1431         (fwprop_init): Allocate active_defs and active_defs_check.
1432         (fwprop_done): Free them.
1433         (fwprop, fwprop_addr): Adjust comments.
1434         * df.h (df_uses_create): Declare.
1435         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
1436         (df_ref_create): Return result of df_ref_create_structure directly.
1437         (df_ref_create_structure): Call df_install_ref_incremental when
1438         no collection_rec is passed.
1439         (df_ref_record): Do not create multiword hard reg info when no
1440         collection_rec is passed.
1441         (df_uses_create): New.
1442
1443 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1444
1445         PR middle-end/43057
1446         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
1447         setting location.
1448
1449 2010-11-22  Richard Guenther  <rguenther@suse.de>
1450
1451         * gimple-fold.c (maybe_fold_reference): When canonicalizing
1452         MEM_REFs, preserve volatileness.
1453         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
1454         addresses.
1455
1456 2010-11-22  Richard Guenther  <rguenther@suse.de>
1457
1458         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
1459
1460 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
1461
1462         PR rtl-optimization/45652
1463         * alias.c (get_reg_base_value): New.
1464         * rtl.h (get_reg_base_value): Add prototype.
1465         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
1466         non-null REG_BASE_VALUE for renaming.
1467
1468 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
1469             Basile Starynkevitch  <basile@starynkevitch.net>
1470
1471         * gengtype.c: Include xregex.h and obstack.h
1472         Added comments about role of get_output_file_with_visibility and
1473         our regexpr machinery.
1474         (frul_actionrout_t, struct file_rule_st): New.
1475         (hader_dot_h_frul, source_dot_c_frul): New functions.
1476         (NULL_REGEX,  NULL_FRULACT): New.
1477         (files_rules): New.
1478         (matching_file_name_substitute): New function.
1479         (get_output_file_with_visibility): Updated comments and rewritten
1480         to use the new files_rules machinery.
1481
1482         * Makefile.in (XREGEX_H): Added variable.
1483         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
1484
1485 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1486
1487         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
1488
1489 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
1490
1491         * target.def (conditional_register_usage): Define.
1492         * reginfo.c (init_reg_sets_1): Call
1493         targetm.conditional_register_usage.
1494         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
1495         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
1496         for making it a hook.
1497         * doc/tm.texi: Regenerate.
1498         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1499         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
1500         New function.
1501         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1502         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1503         * config/arc/arc.c (arc_conditional_register_usage): ...here.
1504         New function.
1505         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1506         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1507         * config/arm/arm.c (arm_conditional_register_usage): ...here.
1508         New function.
1509         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1510         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
1511         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
1512         * config/bfin/bfin.c (conditional_register_usage): Move code into...
1513         (bfin_conditional_register_usage): ...here.  New function.
1514         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1515         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
1516         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
1517         * config/cris/cris.c (cris_conditional_register_usage): Make static.
1518         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1519         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
1520         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
1521         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
1522         * config/frv/frv.c (frv_conditional_register_usage): Make static.
1523         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1524         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1525         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
1526         New function.
1527         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1528         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
1529         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
1530         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
1531         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1532         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
1533         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
1534         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
1535         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1536         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1537         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
1538         New function.
1539         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1540         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
1541         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
1542         Delete.
1543         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
1544         static.
1545         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1546         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
1547         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
1548         * config/mep/mep.c (mep_conditional_register_usage): Make static.
1549         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1550         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
1551         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
1552         * config/mips/mips.c (mips_conditional_register_usage): Make static.
1553         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1554         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
1555         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
1556         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
1557         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1558         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1559         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
1560         ...here.  New function.
1561         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1562         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1563         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
1564         * config/pa/pa.c (pa_conditional_register_usage): ...here.
1565         New function.
1566         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1567         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1568         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
1569         New function.
1570         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1571         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
1572         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
1573         Delete.
1574         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
1575         static.
1576         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1577         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
1578         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
1579         * config/rx/rx.c (rx_conditional_register_usage): Make static.
1580         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1581         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
1582         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
1583         * config/s390/s390.c (s390_conditional_register_usage): Make static.
1584         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1585         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1586         * config/score/score.c (score_conditional_register_usage): ...here.
1587         New function.
1588         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1589         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1590         * config/sh/sh.c (sh_conditional_register_usage): ...here.
1591         New function.
1592         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1593         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1594         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
1595         New function.
1596         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1597         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
1598         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
1599         * config/spu/spu.c (spu_conditional_register_usage): Make static.
1600         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1601         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
1602         * config/v850/v850.c (v850_conditional_register_usage): ...here.
1603         New function.
1604         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
1605
1606 2010-11-21  Jan Hubicka  <jh@suse.cz>
1607             Dominique d'Humieres <dominiq@lps.ens.ft>
1608
1609         PR target/46510
1610         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
1611         finalize external decls.
1612
1613 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
1614
1615         * system.h (strerror): Poison.
1616
1617 2010-11-21  Richard Henderson  <rth@redhat.com>
1618
1619         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
1620         for infq/huge_valq.
1621
1622 2010-11-21  Richard Henderson  <rth@redhat.com>
1623
1624         PR rtl-optimization/46571
1625         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
1626         (compute_hash_table_work): Use NONDEBUG_INSN_P.
1627
1628 2010-11-21  Paul Koning  <ni1d@arrl.net>
1629
1630         * config/mips/pdp11.md (negsi2): Fix wrong code.
1631
1632 2010-11-21  Paul Koning  <ni1d@arrl.net>
1633
1634         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
1635         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1636
1637 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
1638
1639         * config/mips/mips.c (machine_function): Rename load_label_length to
1640         load_label_num_insns.
1641         (mips_load_label_length): Rename to...
1642         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
1643         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
1644
1645 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
1646
1647         PR target/46533
1648         * config/alpha/predicates.md (direct_call_operand): Return false
1649         for !TARGET_SMALL_TEXT targets.
1650
1651 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
1652
1653         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
1654         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
1655         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
1656         * doc/tm.texi: Regenerate.
1657         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
1658         HANDLE_PRAGMA_WEAK): Poison.
1659         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1660         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1661         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
1662         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
1663         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1664         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1665         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1666         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
1667         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1668         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
1669         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1670         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
1671         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1672         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1673         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1674         (HANDLE_PRAGMA_WEAK): Don't undefine.
1675         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1676         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
1677         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1678         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
1679         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
1680         (HANDLE_PRAGMA_WEAK): Don't undefine.
1681         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1682         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
1683         (HANDLE_PRAGMA_PACK): Don't undefine.
1684         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
1685         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1686         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1687         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1688         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
1689         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1690         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1691         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
1692         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
1693         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1694         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
1695         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1696         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1697         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
1698         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1699         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
1700         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
1701
1702 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1703
1704         PR target/31100
1705         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
1706         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
1707         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
1708
1709 2010-11-20  Jan Hubicka  <jh@suse.cz>
1710
1711         * cgraph.c (ld_plugin_symbol_resolution_names): New.
1712         (dump_cgraph_node): Dump resolution.
1713         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
1714         (cgraph_comdat_can_be_unshared_p): Dclare.
1715         * lto-streamer-out.c (produce_symtab): Use
1716         cgraph_comdat_can_be_unshared_p.
1717         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
1718         (cgraph_comdat_can_be_unshared_p): New function based on logic
1719         in cgraph_externally_visible_p.
1720         (cgraph_externally_visible_p): Use it.
1721         (varpool_externally_visible_p): Virtual tables can be unshared.
1722         * varpool.c (dump_varpool_node): Dump resolution.
1723
1724 2010-11-20  Jan Hubicka  <jh@suse.cz>
1725
1726         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
1727
1728 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1729
1730         PR other/46202
1731         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
1732         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
1733         shell quoting.
1734         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
1735         (install-strip): New target.
1736         (STRIPPROG): New variable, exported if STRIP is set.
1737         * doc/install.texi (Final install): Minor markup and code style
1738         fixes.  Document install-strip target.
1739
1740 2010-11-20  Paul Koning  <ni1d@arrl.net>
1741
1742         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
1743         pdp11_regno_reg_class): New functions.
1744         * config/pdp11/pdp11.md (define_constants): Add register numbers.
1745         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
1746         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
1747         functions.
1748         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
1749         frame pointer and argument pointer pseudo-registers.
1750         (ARG_POINTER_REGNUM): Define.
1751         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
1752         argument pointer.
1753         (FIRST_PARM_OFFSET): Update for argument pointer.
1754         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1755         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
1756         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
1757         frame pointer and argument pointer.
1758
1759 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
1760
1761         PR debug/46561
1762         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
1763         when looking for immediate uses.
1764
1765         PR tree-optimization/45830
1766         * stmt.c (expand_switch_using_bit_tests_p): New function.
1767         (expand_case): Use it.
1768         * tree.h (expand_switch_using_bit_tests_p): New prototype.
1769         * tree-switch-conversion.c (struct switch_conv_info): Add
1770         bit_test_uniq, bit_test_count and bit_test_bb fields.
1771         (check_range): Fix a comment.
1772         (check_process_case): Compute bit_test_uniq and bit_test_count.
1773         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
1774         allocation.
1775         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
1776         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
1777         (array_value_type): New function.
1778         (build_one_array): Use it, if it returned different type,
1779         fold_convert all constructor fields and convert back to the
1780         wider type in the generated code.
1781         (process_switch): Initialize bit_test_uniq, bit_test_count and
1782         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
1783         returned true.
1784
1785 2010-11-19  Michael Matz  <matz@suse.de>
1786
1787         PR tree-optimization/46077
1788         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
1789
1790 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
1791
1792         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1793         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
1794         function.
1795         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1796
1797 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
1798
1799         * mode-switching.c (optimize_mode_switching): Use
1800         FOR_BB_INSNS instead of open-coded loop.
1801         * cfgrtl.c (redirect_branch_edge): Ditto.
1802
1803 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
1804
1805         PR target/46436
1806         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
1807         to accomodate 32 bit HOST_WIDE_INT.
1808         (m68hc11_emit_logical): Remove unused variable insn.
1809         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
1810         this_insn_uses_iy before use.
1811
1812         PR target/46434
1813         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
1814
1815 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
1816
1817         PR c/46547
1818         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
1819         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
1820
1821 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
1822
1823         * doc/extend.texi (Function attributes): Document PowerPC target
1824         attributes that are supported.
1825         (Pragmas): Document that PowerPC now supports target pragmas.
1826
1827         * doc/options.texi (TargetVariable): Document TargetVariable,
1828         HeaderInclude, and SourceInclude.
1829
1830         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
1831         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
1832         -ffp-contract=off.
1833
1834         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
1835         SourceInclude directives.  Fix a cut+paste error with target save
1836         enum variables.  Sort enums in the structures after ints and
1837         before shorts.
1838         * opth-gen.awk: Ditto.
1839
1840         * configure.ac: Add support for HeaderInclude and SourceInclude option
1841         directives to add the appropriate files to the dependency lists.
1842         * configure: Regenerate.
1843         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
1844         (OPTIONS_C_EXTRA): New variable for SourceInclude.
1845         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
1846         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
1847         (gcc-options.o): Ditto.
1848         * opt-include.awk: New awk script to handle HeaderInclude and
1849         TargetInclude.
1850
1851         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
1852         gets saved in the target options.
1853         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
1854         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
1855         (-mprototype): Ditto.
1856         (-mbit-word): ditto.
1857         (-mregnames): Ditto.
1858         (-msecure-plt): Ditto.
1859         (-mbss-plt): Ditto.
1860         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
1861         (-mpowerpc-gfxopt): Ditto.
1862         (-mmfcrf): Ditto.
1863         (-mpopcntb): Ditto.
1864         (-mfprnd): Ditto.
1865         (-mcmpb): Ditto.
1866         (-mmmfpgpr): Ditto.
1867         (-maltivec): Ditto.
1868         (-mhard-dfp): Ditto.
1869         (-mmulhw): Ditto.
1870         (-mdlmzb): Ditto.
1871         (-mmultiple): Ditto.
1872         (-mstring): Ditto.
1873         (-mpopcntd): Ditto.
1874         (-mfriz): Ditto.
1875         (-mvsx): Ditto.
1876         (-mno-update): Ditto.
1877         (-mavoid-indexed-addresses): Ditto.
1878         (-mtls-markers): Ditto.
1879         (-msched-epilog): Ditto.
1880         (-msched-prolog): Ditto.
1881         (-maix-struct-return): Ditto.
1882         (-msvr4-struct-return): Ditto.
1883         (-mxl-compat): Ditto.
1884         (-mrecip-precision): Ditto.
1885         (-mfp-in-toc): Ditto.
1886         (-msum-in-toc): Ditto.
1887         (-mvrsave): Ditto.
1888         (-mblock-move-inline-limit=): Ditto.
1889         (-misel): Ditto.
1890         (-mpaired): Ditto.
1891         (-mlongcall): Ditto.
1892         (-mgen-cell-microcode): Ditto.
1893         (-mwarn-cell-microcode): Ditto.
1894         (-mwarn-altivec-long): Ditto.
1895         (-mprioritize-restricted-insns=): Ditto.
1896         (-msingle-float): Ditto.
1897         (-mdouble-float): Ditto.
1898         (-msimple-fpu): Ditto.
1899         (-mxilinx-fpu): Ditto.
1900         * config/rs6000/aix64.opt (-mpe): Ditto.
1901
1902         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
1903         (rs6000_cpu): Move variable to be a target variable.  Rename
1904         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
1905         -mdebug=<xxx> variables into a single int.
1906         (rs6000_always_hint): Ditto.
1907         (rs6000_sched_groups): Ditto.
1908         (rs6000_align_branch_targets): Ditto.
1909         (rs6000_sched_costly_dep): Ditto.
1910         (rs6000_sched_insert_nops): Ditto.
1911         (rs6000_long_double_type_size): Ditto.
1912         (rs6000_ieeequad): Ditto.
1913         (rs6000_altivec_abi): Ditto.
1914         (rs6000_spe): Ditto.
1915         (rs6000_spe_abi): Ditto.
1916         (rs6000_float_gprs): Ditto.
1917         (rs6000_darwin64_abi): Ditto.
1918         (can_override_loop_align): Ditto.
1919         (rs6000_sdata): Ditto.
1920         (rs6000_tls_size): Ditto.
1921         (rs6000_current_abi): Ditto.
1922         (rs6000_traceback): Ditto.
1923         (rs6000_alignment_flags): Ditto.
1924         (rs6000_current_cmodel): Ditto.
1925         (rs6000_recip_control): Ditto.
1926         (rs6000_cpu_index): Ditto.
1927         (rs6000_tune_index): Ditto.
1928         (rs6000_debug): Ditto.
1929         (rs6000_target_flags_explict): Ditto.
1930
1931         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
1932         declaration.
1933
1934         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
1935         cmodel.  Change all uses.
1936
1937         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
1938         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
1939         Rename cmodel to rs6000_current_cmodel.
1940         (rs6000_sched_groups): Ditto.
1941         (rs6000_align_branch_targets): Ditto.
1942         (rs6000_sched_costly_dep): Ditto.
1943         (rs6000_sched_insert_nops): Ditto.
1944         (rs6000_long_double_type_size): Ditto.
1945         (rs6000_ieeequad): Ditto.
1946         (rs6000_altivec_abi): Ditto.
1947         (rs6000_spe): Ditto.
1948         (rs6000_spe_abi): Ditto.
1949         (rs6000_float_gprs): Ditto.
1950         (rs6000_darwin64_abi): Ditto.
1951         (can_override_loop_align): Ditto.
1952         (rs6000_sdata): Ditto.
1953         (rs6000_tls_size): Ditto.
1954         (rs6000_current_abi): Ditto.
1955         (rs6000_traceback): Ditto.
1956         (rs6000_alignment_flags): Ditto.
1957         (rs6000_current_cmodel): Ditto.
1958         (rs6000_recip_control): Ditto.
1959         (rs6000_cpu_index): Ditto.
1960         (rs6000_tune_index): Ditto.
1961         (rs6000_debug): Ditto.
1962         (rs6000_target_flags_explict): Ditto.
1963         (rs6000_sched_insert_nops_str): Make static.
1964         (rs6000_sched_costly_dep_str): Ditto.
1965         (rs6000_recip_name): Ditto.
1966         (rs6000_abi_name): Ditto.
1967         (rs6000_sdata_name): Ditto.
1968         (enum rs6000_traceback_name): Move to rs6000-opts.h.
1969         (rs6000_parse_tls_size_option): Delete.
1970         (rs6000_valid_attribute_p): New function for target attributes and
1971         pragmas.
1972         (rs6000_function_specific_save): Ditto.
1973         (rs6000_function_specific_restore): Ditto.
1974         (rs6000_function_specific_print): Ditto.
1975         (rs6000_can_inline_p): Ditto.
1976         (rs6000_set_current_function): Ditto.
1977         (rs6000_inner_target_options): Ditto.
1978         (rs6000_debug_target_options): Ditto.
1979         (rs6000_pragma_target_parse): Ditto.
1980         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
1981         attributes and pragmas.
1982         (TARGET_OPTION_SAVE): Ditto.
1983         (TARGET_OPTION_RESTORE): Ditto.
1984         (TARGET_OPTION_PRINT): Ditto.
1985         (TARGET_CAN_INLINE_P): Ditto.
1986         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1987         (POWER_MASKS): Move to file level scope from the
1988         rs6000_option_override_internal function.
1989         (POWERPC_MASKS): Ditto.
1990         (ISA_*_MASKS): Ditto.
1991         (struct rs6000_ptt): Ditto.
1992         (processor_target_table): Ditto.
1993         (rs6000_cpu_name_lookup): Map cpu name to an index in
1994         processor_target_table.
1995         (rs6000_debug_reg_global): Print more information on processor
1996         options for -mdebug=reg.
1997         (rs6000_init_hard_regno_mode_ok): Add support for target
1998         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
1999         Allow -mdebug=val1,val2.  Rename cmodel variable.
2000         (rs6000_option_override_internal): Ditto.
2001         (rs6000_option_override): Ditto.
2002         (rs6000_handle_option): Ditto.
2003         (rs6000_conditional_register_usage): Add debug trace message.
2004         (struct rs6000_opt_mask): New for target attribute/pragma support.
2005         (rs6000_opt_masks): Ditto.
2006         (struct rs6000_opt_var): Ditto.
2007         (rs6000_opt_vars): Ditto.
2008         (rs6000_previous_function): Ditto.
2009
2010         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
2011         wasn't already included.
2012         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
2013         (enum processor_type): Ditto.
2014         (rs6000_cpu): Ditto.
2015         (enum fpu_type_t): Ditto.
2016         (fpu_type): Ditto.
2017         (enum rs6000_dependence_cost): Ditto.
2018         (enum rs6000_nop_insertion): Ditto.
2019         (enum group_termination): Ditto.
2020         (rs6000_long_double_type_size): Ditto.
2021         (rs6000_ieeequad): Ditto.
2022         (rs6000_altivec_abi): Ditto.
2023         (rs6000_spe_abi): Ditto.
2024         (rs6000_spe): Ditto.
2025         (rs6000_float_gprs): Ditto.
2026         (rs6000_alignment_flags): Ditto.
2027         (rs6000_sched_insert_nops): Ditto.
2028         (enum rs6000_vector): Ditto.
2029         (enum rs6000_abi): Ditto.
2030         (rs6000_current_opt): Ditto.
2031         (rs6000_debug_*): Delete.
2032         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
2033         (TARGET_DEBUG*): Ditto.
2034
2035         * config/rs6000/rs6000-opts.h: New header file to define the enums
2036         that are used in target variables that are now defined in rs6000.opt.
2037
2038         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
2039         rs6000-opts.h.
2040         (rs6000_sdata): Ditto.
2041         (rs6000_abi_name): Delete.
2042         (rs6000_sdata_name): Ditto.
2043         (rs6000_tls_size_string): Ditto.
2044
2045 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2046
2047         * common.opt (debug_struct_ordinary, debug_struct_generic): New
2048         Variable entries.
2049         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
2050         should_emit_struct_debug): Move from opts.c.
2051         * flag-types.h (enum debug_struct_file): Move from opts.c.
2052         * flags.h (should_emit_struct_debug): Remove.
2053         (base_of_path): Declare.
2054         (set_struct_debug_option): Add gcc_options parameter.
2055         * optc-gen.awk, opth-gen.awk: Handle array variables.
2056         * opts.c (enum debug_struct_file, debug_struct_ordinary,
2057         debug_struct_generic): Remove.
2058         (set_struct_debug_option): Add gcc_options parameter.
2059         (base_of_path): Remove static.
2060         (main_input_basename, main_input_baselength, matches_main_base,
2061         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
2062         Remove.
2063         * toplev.c (main_input_basename, main_input_baselength): Define
2064         here.
2065         * toplev.h (main_input_basename, main_input_baselength): Declare
2066         here.
2067
2068 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2069
2070         * common.opt (flag_instrument_functions_exclude_functions,
2071         flag_instrument_functions_exclude_files): New Variable definitions.
2072         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
2073         * gimplify.c (char_p): Declare type and vectors.
2074         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
2075         * opts.c (flag_instrument_functions_exclude_functions,
2076         flag_instrument_functions_exclude_files): Remove.
2077         (add_comma_separated_to_vector): Take void **.
2078         (flag_instrument_functions_exclude_p): Move to gimplify.c.
2079         (common_handle_option): Use options structure for
2080         -finstrument-functions-exclude- options.
2081
2082 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
2083
2084         * doc/options.texi (Var): Document effects of Defer.
2085         (Defer): Document.
2086         * opt-functions.awk (var_type, var_set): Handle deferred options.
2087         * opts-common.c (set_option): Handle CLVC_DEFER.
2088         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
2089         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
2090         fstack-limit-symbol=): Mark as deferred.
2091         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
2092         plugin.h.
2093         (print_filtered_help): Don't report state of CLVC_DEFER options.
2094         (common_handle_option): Move code for OPT_fcall_used_,
2095         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
2096         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
2097         OPT_fstack_limit_symbol_ to opts-global.c.
2098         (option_enabled, get_option_state): Handle CLVC_DEFER.
2099         * opts.h: Include vec.h.
2100         (enum cl_var_type): Add CLVC_DEFER.
2101         (cl_deferred_option): Define type and vectors.
2102         (handle_common_deferred_options): Declare.
2103         * opts-global.c: New.
2104         * toplev.c (toplev_main): Call handle_common_deferred_options
2105         * Makefile.in (OPTS_H): Include $(VEC_H).
2106         (OBJS-common): Include opts-global.o.
2107         (opts.o): Update dependencies.
2108         (opts-global.o): Add dependencies.
2109
2110 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
2111
2112         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
2113         to objc_declare_protocols.
2114
2115 2010-11-19  Richard Guenther  <rguenther@suse.de>
2116
2117         PR lto/45789
2118         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
2119         IDENTIFIERs do not stream TREE_TYPE.
2120         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
2121
2122 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2123
2124         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
2125
2126 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
2127
2128         PR target/45870
2129         * dwarf2out.c (const_ok_for_output_1): Don't complain about
2130         non-delegitimized TLS UNSPECs.
2131
2132 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
2133             Ian Lance Taylor  <iant@google.com>
2134
2135         * config/darwin-c.c (darwin_additional_format_types): Export.
2136
2137 2010-11-18  Paul Koning  <ni1d@arrl.net>
2138
2139         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
2140         pointer.
2141
2142 2010-11-18  Paul Koning  <ni1d@arrl.net>
2143
2144         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
2145         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
2146         * config/pdp11/pdp11.opt (-mabshi): Delete.
2147
2148 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2149
2150         * resource.h (struct resources): Fix typo in the comment.
2151
2152 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
2153
2154         PR target/46546
2155         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
2156
2157 2010-11-18  Richard Henderson  <rth@redhat.com>
2158
2159         PR middle-end/46515
2160         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
2161         maybe_copy_epilogue_insn; handle prologue insns as well.
2162         * rtl.h, cfglayout.c: Update for rename.
2163         * recog.c (peep2_attempt): Copy prologue/epilogue data for
2164         RTX_FRAME_RELATED_P insns.
2165
2166 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
2167
2168         PR middle-end/46534
2169         * builtins.c (fold_builtin_printf): Don't copy and modify string
2170         before build_string_literal, instead modify what
2171         build_string_literal returned.
2172
2173 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
2174
2175         PR c/33193
2176         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
2177         REALPART_EXPR and IMAGPART_EXPR.
2178
2179 2010-11-18  Richard Guenther  <rguenther@suse.de>
2180
2181         PR tree-optimization/46172
2182         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
2183         function.
2184         (slpeel_tree_peel_loop_to_edge): Call it.
2185
2186 2010-11-18  Jeff Law  <law@redhat.com>
2187
2188         PR middle-end-optimization/46297
2189         * postreload.c (reload_combine_note_store): Deal with embedded
2190         side effects in MEM expressions.
2191
2192 2010-11-18  Richard Guenther  <rguenther@suse.de>
2193
2194         PR lto/45089
2195         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
2196         when checking is not enabled.
2197
2198 2010-11-18  Richard Guenther  <rguenther@suse.de>
2199
2200         PR lto/46525
2201         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
2202         type leaders.
2203         (gimple_register_canonical_type): Also cache the canoncial type
2204         for non type leaders.
2205
2206 2010-11-18  Richard Guenther  <rguenther@suse.de>
2207
2208         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
2209
2210 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
2211
2212         PR middle-end/46518
2213         * sel-sched-ir.c (init_expr): Use the correct type for
2214         target_available.
2215         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
2216
2217 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2218
2219         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
2220         as well as -mrelocatable at the same time.
2221
2222 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
2223
2224         PR target/46422
2225         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
2226         Call the clz builtin.
2227
2228 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
2229             Steve Ellcey  <sje@cup.hp.com>
2230
2231         PR middle-end/31490
2232         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
2233         if section attribute used.
2234
2235 2010-11-17  Jan Hubicka  <jh@suse.cz>
2236
2237         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
2238         expand errno setting variant when optimizing for size.
2239
2240 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2241
2242         * postreload.c (reload_combine): Call control_flow_insn_p only once.
2243         Reverse backward loop.  Fix formatting issues.
2244
2245 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
2246
2247         * c-parser.c (c_token_is_qualifier,
2248         c_parser_next_token_is_qualifier): New.
2249         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
2250         Improve error message on specs->tagdef_seen_p.
2251         (c_parser_struct_or_union_specifier): Improve error recovery.
2252         (c_parser_declspecs): Move exit condition on C_ID_ID early.
2253         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
2254         using c_parser_next_token_is_qualifier; extend it to cover
2255         a ctsk_tagdef typespec and !typespec_ok in general.
2256
2257 2010-11-17  Richard Guenther  <rguenther@suse.de>
2258
2259         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
2260         (gimple_mod_pow2_value_transform): Likewise.
2261         (gimple_mod_subtract_transform): Likewise.
2262
2263 2010-11-17  Richard Guenther  <rguenther@suse.de>
2264
2265         PR lto/46504
2266         * gimple.c (gimple_register_canonical_type): Make sure to only
2267         make type leaders canonical types.
2268
2269 2010-11-17  Michael Matz  <matz@suse.de>
2270
2271         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
2272         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
2273         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
2274         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
2275         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
2276         (pass_build_ssa): ... but here.
2277         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
2278         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
2279         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
2280         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
2281         * predict.c (rebuild_frequencies): Ditto.
2282         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
2283         * emit-rtl.c (verify_rtl_sharing): Ditto.
2284         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
2285         * tree-ssa-live.c (remove_unused_locals): Ditto.
2286         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
2287         * tree-ssa.c (pass_early_warn_uninitialized,
2288         execute_update_addresses_taken, pass_update_address_taken): Ditto.
2289         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
2290         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
2291         * passes.c (pass_postreload, execute_todo): Ditto.
2292         * tree-ssanames.c (pass_release_ssa_names): Ditto.
2293
2294 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2295
2296         * doc/invoke.texi (-dy): Remove.
2297         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
2298         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
2299         * langhooks.c (lhd_do_nothing_i): Remove.
2300         * langhooks.h (lang_hooks.parse_file): Take no arguments.
2301         * toplev.c (set_yydebug): Remove.
2302         (compile_file): Update call to lang_hooks.parse_file.
2303         (decode_d_option): Don't handle -dy.
2304
2305 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2306
2307         PR rtl-optimization/46440
2308         * combine.c (update_cfg_for_uncondjump): When changing
2309         an indirect jump into unconditional jump, remove BARRIERs
2310         from bb's footer.
2311
2312 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2313
2314         * opts.c (target_handle_option): Do not assert that loc ==
2315         UNKNOWN_LOCATION.
2316
2317 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
2318             Richard Guenther  <rguenther@suse.de>
2319
2320         PR middle-end/45838
2321         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2322         call_may_clobber_ref_p_1): Return true for __sync_* and some
2323         OpenMP builtins that act as threading barriers.
2324
2325 2010-11-17  Richard Guenther  <rguenther@suse.de>
2326
2327         PR tree-optimization/46498
2328         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
2329
2330 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2331
2332         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
2333         (xtensa_function_arg_boundary): ...this.
2334         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
2335         thinko in declaration.
2336         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
2337         number of parameters to picochip_function_arg_boundary.
2338         (picochip_arg_advance): Likewise.
2339
2340 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2341
2342         PR target/46512
2343         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
2344         under check for type.
2345
2346 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2347
2348         * ifcvt.c (dead_or_predicable): Fix typo.
2349
2350 2010-11-16  Richard Henderson  <rth@redhat.com>
2351
2352         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
2353         * config/s390/s390.opt (mfused-madd): Remove.
2354         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
2355         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
2356         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
2357         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
2358
2359 2010-11-16  Richard Henderson  <rth@redhat.com>
2360
2361         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
2362         * config/rs6000/rs6000.opt (mfused-madd): Remove.
2363         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
2364         (*altivec_vmaddfp_1): Remove.
2365         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
2366         (altivec_mulv4sf3): Expand to FMA directly.
2367         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
2368         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
2369         * config/rs6000/paired.md (paired_madds0): Use FMA.
2370         (paired_madds1): Likewise.
2371         (*paired_madd): Rename from paired_madd; use FMA.
2372         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
2373         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
2374         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
2375         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
2376         (rs6000_emit_madd): Use fma_optab.
2377         (rs6000_emit_msub): Use fms_optab.
2378         (rs6000_emit_nmsub): Expand the FMA pattern directly.
2379         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
2380         (*fmasf4_fpr): Rename from fmasf4_fpr.
2381         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
2382         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
2383         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
2384         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
2385         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
2386         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
2387         (*fmadf4_fpr): Rename from fmadf4_fpr.
2388         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
2389         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
2390         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
2391         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
2392         (fmasf4, fmadf4): Macroize into...
2393         (fma<FMA_F>4): ... here.
2394         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
2395         (nfma<FMA_F>4, nfms<FMA_F>4): New.
2396         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
2397         TARGET_FUSED_MADD.
2398         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
2399         (*vsx_fmadd<mode>4_1): Remove.
2400         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
2401         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
2402         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
2403         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
2404         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
2405         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
2406         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
2407
2408 2010-11-16  Richard Henderson  <rth@redhat.com>
2409
2410         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
2411         (fmasf4, fnmadf4, fnmasf4): Likewise.
2412         (unnamed plus+mult insns and splitters): Delete.
2413
2414 2010-11-16  Richard Henderson  <rth@redhat.com>
2415
2416         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
2417         (fnma<VSF>4): Rename from fnms_<VSF>.
2418         (fms<VSF>4): Rename from fms_<VSF>.
2419         (fma<VDF>4): Rename from fma_<VDF>.
2420         (fms<VDF>4): Rename from fms_<VDF>.
2421         (nfma<VDF>4): Rename from fnma_<VDF>.
2422         (nfms<VDF>4): Rename from fnms_<VDF>.
2423         (fnma<VDF>4, fnms<VDF>4): New expanders.
2424         (floatunsdisf2): Update for the renames.
2425         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
2426         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
2427
2428 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2429
2430         PR rtl-optimization/46490
2431         * combine.c (expand_compound_operation): Fix thinko.
2432
2433 2010-11-16  Richard Henderson  <rth@redhat.com>
2434
2435         PR target/46470
2436         * recog.c (peep2_attempt): Convert frame-related info when possible.
2437         (peep2_fill_buffer): Allow frame-related insns into the buffer.
2438         (peephole2_optimize): Allow peep2_attempt to fail.
2439
2440 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
2441
2442         PR rtl-optimization/46315
2443         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
2444         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
2445         extracted from...
2446         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
2447         (remove_reg_equal_equiv_notes_for_defs): ...this.
2448         (delete_unmarked_insns): Adjust to above renaming.
2449         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
2450         referring to registers set in the insns being moved, if any.
2451
2452         * df-core.c (df_ref_dump): New function extracted from...
2453         (df_refs_chain_dump): ...here.  Call it.
2454         (df_regs_chain_dump): Likewise.
2455         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
2456         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
2457
2458 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
2459
2460         PR rtl-optimization/46395
2461         * postreload.c (reload_combine): Invalidate register use
2462         information on all control flow insns.
2463
2464         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
2465         LABEL_REF in UNSPEC operand.
2466
2467 2010-11-16  Jan Hubicka  <jh@suse.cz>
2468
2469         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
2470         when !flag_toplevel_reorder do not remove unless variable is
2471         COMDAT or ARTIFICIAL.
2472         * ipa.c (varpool_can_remove_if_no_refs): ... here.
2473         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
2474         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
2475         * varpool.c (decide_is_variable_needed): Do not handle visibility
2476         issues.
2477         (varpool_finalize_decl): Likewise.
2478         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
2479         update outdated comment on DECL_RTL_SET_P check.
2480
2481 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2482
2483         * config/sol2.h (NM_FLAGS): Define.
2484         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
2485         * doc/tm.texi: Update.
2486
2487 2010-11-16  Nick Clifton  <nickc@redhat.com>
2488
2489         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
2490         (msubsf4): Rename to fmssf4, and use fma.
2491         (nmaddsf4): Rename to fnmasf4 and use fma.
2492         (nmsubsf4): Rename to fnmssf4 and use fma.
2493
2494 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
2495
2496         PR target/44762
2497         * config/score/score3.c (score3_return_in_memory): Constify arguments.
2498         (score3_in_small_data_p, score3_function_value): Likewise.
2499         (score3_trampoline_init): Use LCT_NORMAL.
2500         (score3_print_operand): Initialize code as UNKNOWN.
2501         * config/score/predicates.md (score_load_multiple_operation):
2502         Remove unused variable.
2503         (score_store_multiple_operation): Likewise.
2504         * config/score/score7.c (score7_return_in_memory): Constify arguments.
2505         (score7_in_small_data_p, score7_function_value): Likewise.
2506         (score7_trampoline_init): Use LCT_NORMAL.
2507         (score7_print_operand): Initialize code as UNKNOWN.
2508         * config/score/score3.h (score3_return_in_memory): Update prototype.
2509         (score3_in_small_data_p, score3_function_value): Likewise.
2510         * config/score/score-protos.h (score_function_value): Likewise.
2511         * config/score/score7.h (score7_return_in_memory): Update prototype.
2512         (score7_in_small_data_p, score7_function_value): Likewise.
2513         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
2514         (score_return_in_memory, score_pass_by_reference): Constify arguments.
2515         (score_output_mi_thunk, score_function_prologue): Don't return a value.
2516         (score_function_epilogue, score_in_small_data_p): Likewise.
2517         (score_option_override, score_asm_trampoline_template): Likewise.
2518         (score_trampoline_init, score_print_operand): Likewise.
2519         (score_print_operand_address, score_prologue): Likewise.
2520         (score_epilogue, score_call, score_call_value): Likewise.
2521         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
2522         (score_function_arg_advance): Likewise. Make static.
2523         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
2524         (score_function_arg, score_legitimate_address_p): Make static.
2525         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
2526         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
2527         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
2528         Allow (W) == HOST_BITS_PER_WIDE_INT.
2529
2530         PR java/46386
2531         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
2532         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
2533
2534 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2535
2536         * config/arc/arc.c: Delete pasto.
2537         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
2538
2539 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2540
2541         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
2542         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2543         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
2544         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2545         (mn10300_preferred_reload_class,
2546         mn10300_preferred_output_reload_class): New functions.
2547
2548 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2549
2550         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
2551         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
2552         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
2553         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
2554
2555 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2556
2557         * builtins.c (std_gimplify_va_arg_expr): Use
2558         targetm.calls.function_arg_boundary.
2559         * function.c (assign_parms, locate_and_pad_parm): Likewise.
2560         * calls.c (struct arg_data): Update comment.
2561         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
2562         * target.def (function_arg_boundary): Define.
2563         * targhooks.h (default_function_arg_boundary): Declare.
2564         * targhooks.c (default_function_arg_boundary): Define.
2565         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
2566         TARGET_FUNCTION_ARG_BOUNDARY.
2567         (FUNCTION_ARG_BOUNDARY): Delete.
2568         (TARGET_FUNCTION_ARG_BOUNDARY): New.
2569         * doc/tm.texi: Regenerate.
2570         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
2571         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
2572         * config/arc/arc.c (arc_function_arg_boundary): Define.
2573         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2574         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
2575         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
2576         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
2577         (arm_function_arg_boundary): Define.
2578         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2579         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
2580         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
2581         * config/frv/frv.c (frv_function_arg_boundary): Make static.
2582         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2583         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
2584         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
2585         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
2586         (ix86_compat_function_arg_boundary): Take and return unsigned int.
2587         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2588         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
2589         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
2590         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
2591         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2592         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
2593         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
2594         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2595         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
2596         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
2597         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
2598         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2599         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
2600         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
2601         * config/mips/mips.c (mips_function_arg_boundary): Make static.
2602         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2603         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
2604         * config/pa/pa.c (pa_function_arg_boundary): Define.
2605         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2606         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
2607         * config/picochip/picochip-protos.h
2608         (picochip_get_function_arg_boundary): Delete.
2609         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
2610         Rename to...
2611         (picochip_function_arg_boundary): ...this.  Make static.
2612         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
2613         (picochip_arg_advance): Adjust.
2614         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2615         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
2616         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
2617         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
2618         (rs6000_function_arg_boundary): ...this.  Make static.
2619         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
2620         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2621         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
2622         * config/rx/rx.c (rx_function_arg_boundary): Define.
2623         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2624         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
2625         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
2626         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2627         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
2628         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
2629         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
2630         (xtensa_function_arg_boundary): ...this.  Make static.
2631         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
2632
2633 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2634
2635         * expr.c (alignment_for_piecewise_move): New function.
2636         (widest_int_mode_for_size): New function.
2637         (move_by_pieces, move_by_pieces_ninsns): Call them.
2638         (can_store_by_pieces, store_by_pieces_1): Likewise.
2639
2640 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2641
2642         * gcc.c (char_p): Define.  Define a VEC of it.
2643         (n_linker_options, n_assembler_options, n_preprocessor_options):
2644         Delete.
2645         (linker_options, assembler_options, preprocessor_options): Convert
2646         to a VEC.
2647         (add_preprocessor_option): Adjust.
2648         (add_assembler_option): Adjust.
2649         (add_linker_option): Adjust.
2650         (do_specs_vec): New function.
2651         (do_spec_1): Call it.  Adjust for new types.
2652
2653 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2654
2655         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
2656         (sreal.o, statistics.o, stringpool.o): Likewise.
2657
2658 2010-11-16  Richard Guenther  <rguenther@suse.de>
2659
2660         PR tree-optimization/44545
2661         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
2662         statements are not reassociatable.
2663         (reassociate_bb): Likewise.
2664
2665 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
2666
2667         * bitmap.c: Delete unnecessary includes.
2668         * ebitmap.c: Likewise.
2669         * et-forest.c: Likewise.
2670         * sreal.c: Likewise.
2671         * statistics.c: Likewise.
2672         * stringpool.c: Likewise.
2673         * double-int.c: Add comment for inclusion of tm.h.
2674
2675 2010-11-16  Richard Guenther  <rguenther@suse.de>
2676
2677         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
2678         (visit_nary_op): ... this.
2679         (visit_binary_op): Remove.
2680         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
2681
2682 2010-11-16  Richard Guenther  <rguenther@suse.de>
2683
2684         PR middle-end/45172
2685         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
2686
2687 2010-11-16  Nick Clifton  <nickc@redhat.com>
2688
2689         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
2690         record is packed.
2691
2692 2010-11-15  Richard Henderson  <rth@redhat.com>
2693
2694         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
2695         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
2696         DOT_PROD_EXPR.
2697
2698 2010-11-15  Richard Henderson  <rth@redhat.com>
2699
2700         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
2701         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
2702         fma rtx_code.
2703
2704 2010-11-15  Richard Henderson  <rth@redhat.com>
2705
2706         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
2707         and *mulsubsf4 respectively.  Use fma rtx_code.
2708
2709 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
2710
2711         * gcc.c: Include "vec.h".
2712         (argbuf): Make into a VEC.
2713         (argbuf_length, argbuf_index): Remove.
2714         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
2715         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
2716         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
2717         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
2718         (gcc.o): Depend on $(VEC_H).
2719
2720 2010-11-15  Richard Henderson  <rth@redhat.com>
2721
2722         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
2723         via FMA if unsafe math.
2724         (insert_var_expansion_initialization): Handle FMA.
2725         (combine_var_copies_in_loop_exit): Likewise.
2726
2727 2010-11-15  Richard Henderson  <rth@redhat.com>
2728
2729         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
2730         * config/ia64/ia64.opt: Remove mfused-madd.
2731         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
2732         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
2733         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
2734         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
2735         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
2736         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
2737         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
2738         (fmav2sf4): Rename from fpma; use FMA code.
2739         (fmsv2sf4): Rename from fpms; use FMA code.
2740         (fnmav2sf4): Rename from *fpnma; use FMA code.
2741         * config/ia64/ia64.md (MODE_SDF): New iterator.
2742         (suffix): New mode attribute.
2743         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
2744         (fmssf4): Rename from *fmssf4.
2745         (fnmasf4): Rename from *nfmasf4.
2746         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
2747         (*nmadddf4, *nmadddf4_truncsf): Remove.
2748         (fmsdf4): Rename from *fmsdf4.
2749         (fnmadf4): Rename from *nfmadf4.
2750         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
2751         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
2752         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
2753         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
2754         (fmsxf4): Rename from *fmsxf4.
2755         (fnmaxf4): Rename from *nfmaxf4.
2756         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
2757         (*fnmaxf_trunc_<MODE_SDF>): New.
2758
2759 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2760
2761         PR tree-optimization/46461
2762         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
2763         a gimple val.
2764
2765 2010-11-15  Ian Lance Taylor  <iant@google.com>
2766
2767         * godump.c: New file.
2768         * common.opt (fdump-go-spec=): New option.
2769         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
2770         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
2771         (TYPE_SYMTAB_IS_DIE): Define.
2772         (struct tree_type): Change GTY for symtab field to use
2773         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
2774         to pick the union field.
2775         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
2776         (dump_go_spec_init): Declare.
2777         * toplev.c (process_options): Handle flag_dump_go_spec.
2778         * debug.c: Include "tree.h".
2779         (do_nothing_debug_hooks): Set tree_type_symtab_field.
2780         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
2781         * dbxout.c (dbx_debug_hooks): Likewise.
2782         (xcoff_debug_hooks): Likewise.
2783         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2784         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
2785         SDB_DEBUGGING_INFO is not defined.
2786         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
2787         (Overall Options): Document -fdump-go-spec.
2788         * Makefile.in (OBJS-common): Add godump.o.
2789         (debug.o): Add dependency on $(TREE_H).
2790         (godump.o): New target.
2791         (GTFILES): Add $(srcdir)/godump.c.
2792
2793 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
2794
2795         PR debug/46095
2796         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
2797         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
2798         style < 0, add REG_FRAME_RELATED_EXPR.
2799
2800         PR debug/46387
2801         * rtl.h (vt_equate_reg_base_value): New prototype.
2802         * alias.c (vt_equate_reg_base_value): New function.
2803         * var-tracking.c (vt_init_cfa_base): Use it.
2804
2805 2010-11-15  Jan Hubicka  <jh@suse.cz>
2806             Diego Novillo  <dnovillo@google.com>
2807
2808         PR lto/41528
2809         * doc/lto.texi: Add.
2810         * doc/gccint.texi: Add reference to lto.texi.
2811         * doc/invoke.texi: Update user documentation for LTO.
2812         Move internal flags to lto.texi
2813
2814 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
2815
2816         * c-typeck.c (build_unary_op): Use
2817         objc_build_incr_expr_for_property_ref to build the pre/post
2818         increment/decrement of an Objective-C property ref, and skip the
2819         lvalue_or_else check in that case.
2820
2821 2010-11-15  Martin Jambor  <mjambor@suse.cz>
2822
2823         PR tree-optimization/46349
2824         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
2825         (contains_vce_or_bfcref_p): Likewise.
2826         (sra_modify_assign): Use them.
2827
2828 2010-11-15  Richard Guenther  <rguenther@suse.de>
2829
2830         PR tree-optimization/46467
2831         * tree-ssa-structalias.c (do_structure_copy): Properly treat
2832         variables without subvars.
2833
2834 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
2835
2836         * config/picochip/picochip.c (file header): Picochip name change.
2837         * config/picochip/picochip.md (file header): Likewise.
2838         * config/picochip/predicates.md (file header): Likewise.
2839         * config/picochip/dfa_space.md (file header): Likewise.
2840         * config/picochip/dfa_speed.md (file header): Likewise.
2841         * config/picochip/picochip.h(file header): Likewise.
2842         * config/picochip/constraints.md (file header): Likewise.
2843         * config/picochip/picochip-protos.h (file header): Likewise.
2844         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
2845         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
2846         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
2847         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
2848         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
2849         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
2850         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
2851         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
2852         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
2853         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
2854         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
2855         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
2856         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
2857         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
2858
2859 2010-11-15  Richard Guenther  <rguenther@suse.de>
2860
2861         PR bootstrap/46474
2862         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
2863
2864 2010-11-15  Nick Clifton  <nickc@redhat.com>
2865
2866         * config/stormy16/stormy16.c (direct_return): Do not generate a
2867         direct return for interrupt handlers.
2868
2869 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
2870
2871         * Makefile.in (tm.texi): Replace with rule for:
2872         ($(srcdir)/doc/tm.texi).
2873         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
2874         $(srcdir)/doc/tm.texi .
2875         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
2876         tm.texi .
2877
2878         PR target/46427
2879         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
2880
2881         PR bootstrap/45444
2882         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
2883         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
2884
2885         PR target/46432
2886         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2887
2888 2010-11-15  Richard Guenther  <rguenther@suse.de>
2889
2890         PR lto/44150
2891         * lto-opts.c (lto_write_options): Write -fexceptions even if
2892         not set by the user.
2893
2894 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
2895
2896         PR c/46462
2897         * c-decl.c (declspecs_add_type): Make variables with error types
2898         integers.
2899         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
2900         do not start a declaration before an Objective-C foreach.
2901         (c_parser_declaration_or_fndef): Improve recovery after unknown
2902         type name.
2903         (c_parser_for_statement): Hoist entrance of "foreach context"
2904         before ifs, add corresponding reset where it was missing.  Do
2905         not set objc_could_be_foreach_context for C.
2906
2907 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2908
2909         PR tree-optimization/45722
2910         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
2911         this is a reference to a component.
2912         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
2913         (ipa_note_param_call): Adjust comment.
2914
2915 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
2916
2917         * config/mips/mips.c (machine_function): Remove
2918         initialized_mips16_gp_pseudo_p.
2919         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
2920         detect whether a pseudo has already been created.  Unconditionally
2921         create a new one if not.
2922         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
2923         expanding to rtl.  Create a new pseudo otherwise, if allowed.
2924
2925 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
2926
2927         PR target/43440
2928         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
2929         * tm.texi: Regenerated.
2930         * output.h (decode_reg_name_and_count): Declare.
2931         * varasm.c (decode_reg_name_and_count): New function.
2932         (decode_reg_name): Reimplement using decode_reg_name_and_count.
2933         * reginfo.c (fix_register): Use decode_reg_name_and_count and
2934         iterate over all regs used.
2935         * stmt.c (expand_asm_operands): Likewise.
2936         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
2937         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
2938         multiple machine registers.
2939
2940 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2941
2942         * stor-layout.c (place_union_field): Do not put location information
2943         on offset expressions.
2944         (place_field): Likewise.
2945         (finalize_record_size): Likewise on size expressions.
2946         (finalize_type_size): Likewise.
2947         (layout_type): Likewise.
2948
2949 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
2950
2951         PR debug/42889
2952         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
2953         * df-core.c (df_set_bb_dirty_nonrl): Remove.
2954         * df.h (df_set_bb_dirty_nonlr): Likewise.
2955
2956 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
2957
2958         * config/mips/mips.md (call_internal): Pass curr_insn to
2959         mips_split_call.
2960         (call_internal_direct): Ditto.
2961         (call_value_internal): Ditto.
2962         (call_value_internal_direct): Ditto.
2963         (call_value_multiple_internal): Ditto.
2964         * config/mips/mips.c (mips_split_call): Do not copy
2965         CALL_INSN_FUNCTION_USAGE here.
2966
2967 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
2968
2969         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
2970         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
2971         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
2972         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
2973         (TUNE_LOONGSON_3A): Define.
2974         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
2975         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
2976         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
2977         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
2978         (mips_rtx_cost_data): Add Loongson-3A.
2979
2980 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2981
2982         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
2983         switches.
2984
2985 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
2986
2987         * dwarf2out.c (macinfo_entry): New struct.
2988         (output_comp_unit): Emit the section start label here and flag that we
2989         will emit an info section.
2990         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
2991         emitting directly.
2992         (dwarf2out_end_source_file): Likewise.
2993         (dwarf2out_define): Likewise.
2994         (dwarf2out_undef): Likewise.
2995         (output_macinfo): New.
2996         (dwarf2out_init): Do not emit debug section switches here, allocate a
2997         vec for macinfo, when required.
2998         (dwarf2out_finish): First switch to debug_abbrev_section here.
2999         debug_line_section,  debug_macinfo_section, Likewise.
3000         Check that the pubtypes table has at least one unpruned entry before
3001         trying to emit it.
3002
3003 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3004
3005         PR c/20385
3006         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
3007         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
3008         token lookahead.
3009         (c_parser_compound_statement_nostart, c_parser_label,
3010         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
3011         (c_parser_declaration_or_fndef): Detect the case now matched by
3012         c_parser_next_tokens_start_declaration, give error and correct it.
3013
3014 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3015
3016         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
3017         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
3018         with typespec_kind.
3019         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
3020         (shadow_tag_warned, check_compound_literal_type): Adjust
3021         uses of tag_defined_p.
3022         (declspecs_add_type): Set typespec_kind.
3023         * c-parser.c (c_parser_declaration_or_fndef,
3024         c_parser_declspecs, c_parser_struct_declaration,
3025         c_parser_parameter_declaration, c_parser_type_name,
3026         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
3027         of type_seen_p.
3028         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
3029         tag_defined_p, pass ctsk_firstref through.
3030
3031 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
3032
3033         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
3034         (struct format_wanted_type): Replace field "name" with "kind", add
3035         "format_start" and "format_length".
3036         (check_format_info_main): Fill in new fields.  Fill in
3037         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
3038         after the final NUL outside the while loop.  Do not include
3039         width and precision modifiers in the format_start/format_length
3040         of the main format.
3041         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
3042         arguments.  Compute WANTED_TYPE first so that format_type_warning
3043         can be called for missing arguments.  Adjust calls to
3044         format_type_warning.
3045         (format_type_warning): Fetch as much information as possible
3046         from format_wanted_type.  Adjust printing now that every
3047         warning has a "descr", as well as for missing argument warnings
3048         and to include % sign for format specifiers.
3049
3050 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
3051
3052         PR rtl-optimization/46204
3053         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
3054         Update all callers.  Do not recompute topological order.  Adjust
3055         fallthrough edges following a degenerate conditional jump.
3056
3057 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3058
3059         * opts-common.c (control_warning_option): New.
3060         * opts.c (set_default_handlers): New.
3061         (decode_options): Use set_default_handlers and
3062         control_warning_option.
3063         (common_handle_option): Update call to enable_warning_as_error.
3064         (enable_warning_as_error): Take gcc_options parameters.  Use
3065         control_warning_option.
3066         * opts.h (set_default_handlers, control_warning_option): Declare.
3067
3068 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
3069
3070         * Makefile.in (OPTS_H): Define.
3071         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
3072         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
3073         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
3074         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
3075         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
3076         * gcc.c (driver_handle_option): Take location_t parameter.
3077         (process_command, do_self_spec): Update calls to
3078         read_cmdline_option.
3079         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
3080         * langhooks.c (lhd_handle_option): Take location_t parameter.
3081         * langhooks.h (handle_option): Take location_t parameter.
3082         * lto-opts.c (lto_reissue_options): Update call to set_option.
3083         * opts-common.c (handle_option): Make static.  Take location_t
3084         parameter and pass it to other functions.
3085         (handle_generated_option): Take location_t parameter and pass it
3086         to other functions.
3087         (read_cmdline_option): Take location_t parameter and pass it to
3088         other functions.  Use warning_at and error_at.
3089         (set_option): Take location_t parameter and pass it to other
3090         functions.
3091         * opts.c (common_handle_option): Take location_t parameter and
3092         pass it to other functions.
3093         (enable_warning_as_error): Make static.  Take location_t parameter
3094         and pass it to other functions.
3095         (lang_handle_option): Take location_t parameter and pass it to
3096         other functions.
3097         (target_handle_option): Take location_t parameter.
3098         (read_cmdline_options, maybe_default_option,
3099         maybe_default_options, default_options_optimization,
3100         decode_options): Take location_t parameter and pass it to other
3101         functions.
3102         * opts.h: Include input.h.
3103         (struct cl_option_handler_func, decode_options, set_option,
3104         handle_generated_option, read_cmdline_option): Take location_t
3105         parameters.
3106         (handle_option, enable_warning_as_error): Remove.
3107         * toplev.c (toplev_main): Update call to decode_options.
3108
3109 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
3110
3111         * graphite-cloog-util.c (oppose_constraint,
3112         cloog_matrix_to_ppl_constraint,
3113         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
3114         CLooG isl uses unsigned integers.  This triggered a warning.
3115
3116 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3117
3118         PR target/46438
3119         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
3120         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
3121         (xtensa_function_arg_1): De-constify cum.
3122         (xtensa_expand_prologue): Use add_reg_note.
3123
3124         PR target/46435
3125         * config/cris/cris.c (saved_regs_mentioned): Delete.
3126         (cris_reload_address_legitimized): Cast itype to enum reload_type.
3127         Remove unused variable op0p.
3128         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
3129         (cris_emit_movem_store): Use add_reg_note.
3130
3131         PR bootstrap/46456
3132         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
3133
3134 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3135
3136         * function.c (expand_function_end): Set the locator of the prologue on
3137         the stack checking insns.
3138
3139 2010-11-12  Richard Henderson  <rth@redhat.com>
3140
3141         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
3142         * config/xtensa/xtensa.opt (mfused-madd): Remove.
3143         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
3144         MASK_FUSED_MADD.
3145         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
3146         (fnmasf4): Rename from mulsubsf3; use fma.
3147
3148 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3149             Richard Henderson  <rth@redhat.com>
3150
3151         PR target/46428
3152         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
3153         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
3154         comparison.
3155
3156 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
3157
3158         * opts-common.c (decode_cmdline_option): Initialize separate_args.
3159
3160 2010-11-12  Jan Hubicka  <jh@suse.cz>
3161
3162         * doc/invoke.texi (early-inlining-insns): Update default.
3163         * params.def (early-inlining-insns): Default to 10.
3164
3165 2010-11-12  Olivier Hainque  <hainque@adacore.com>
3166
3167         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
3168
3169 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3170
3171         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
3172         (SUPPORTS_INIT_PRIORITY): Define.
3173
3174 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
3175
3176         PR target/46430
3177         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
3178         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
3179         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3180         (avr_device_to_devicelib): Likewise.
3181         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
3182         into block.
3183         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
3184         (zero_extendhidi2, zero_extendsidi2): Likewise.
3185         * config/avr/avr.c (avr_num_arg_regs): Constify type.
3186         (avr_return_addr_rtx): De-constify tem.
3187         (avr_rotate_bytes): Move declarations to start of block.
3188         Don't use variable length array.  Put nested if/else into block.
3189
3190         PR rtl-optimization/46433
3191         * var-tracking.c: Include tm_p.h .
3192
3193         PR bootstrap/44756
3194         PR build/44767
3195         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
3196         should be unsigned.
3197         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
3198         * doc/tm.texi: Regenerate.
3199
3200         PR target/46412
3201         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
3202         * config/bfin/bfin.c: Include sel-sched.h .
3203         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
3204         (expand_interrupt_handler_prologue): Remove unused variable insn.
3205         (bfin_load_pic_reg): Likewise.
3206         (bfin_rtx_costs): Make code / outer_code variables of type
3207         enum rtx_code, copied from re-named parameters.
3208         (bfin_local_alignment): Change align argument and return type
3209         to unsigned.
3210         (bfin_adjust_cost): Remove unused variable insn_type.
3211         Declare variables at start of block.
3212         (struct loop_info): Rename to...
3213         (struct loop_info_d).
3214         (workaround_rts_anomaly): Change type of icode to int.
3215         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
3216         with int-typed variable.
3217         (note_np_check_stores): Likewise.
3218         (trapping_loads_p): Remove unused variable pat.
3219         (bfin_expand_binop_builtin): Use expand_normal.
3220         (bfin_expand_unop_builtin): Likewise.
3221         (bfin_expand_builtin): Likewise.  Set tmode before use.
3222
3223         PR middle-end/44769
3224         * final.c (split_double): Don't use BITS_PER_WORD directly in
3225         shift count.
3226
3227         PR target/46431
3228         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
3229         assignment.
3230
3231         PR target/46450
3232         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3233         Use add_reg_note.
3234         (xstormy16_function_arg): Dereference cum.
3235         (xstormy16_expand_builtin): Use expand_normal.
3236         Change type of omode to enum machine_mode.
3237         (combine_bnp): Rename and to and_insn.
3238
3239         PR target/46437
3240         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
3241         localreg.
3242
3243 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
3244
3245         PR debug/46375
3246         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
3247
3248 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3249
3250         PR lto/46376
3251         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
3252
3253 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
3254
3255         PR c/44782
3256         * common.opt (fmax-errors=): New option.
3257         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
3258         * diagnostic.h (struct diagnostic_context): Add max_errors field.
3259         * diagnostic.c (diagnostic_initialize): Initialize it.
3260         (diagnostic_action_after_output): Exit if more than max_errors
3261         have been output.
3262         * doc/invoke.texi (Warning Options): Add -fmax-errors.
3263         (-fmax-errors): Document.
3264
3265 2010-11-11  Richard Henderson  <rth@redhat.com>
3266
3267         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
3268
3269 2010-11-11  Richard Henderson  <rth@redhat.com>
3270
3271         * config/fused-madd.opt: New file.
3272         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
3273         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
3274         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
3275         * config/i386/i386.opt (mfused-madd): Remove.
3276         * config/i386/sse.md (split_fma): Remove.
3277         (split_fms, split_fnma, split_fnms): Remove.
3278
3279 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
3280
3281         PR target/46088
3282         * config/i386/i386.md (*ashl<mode>3_cconly,
3283         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
3284         change nonimmediate_operand predicate to register_operand.
3285
3286 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
3287
3288         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
3289
3290 2010-11-11  Jan Hubicka  <jh@suse.cz>
3291
3292         * opts.c (finish_options): Do not error on -flto-partition alone.
3293
3294         * doc/invoke.texi (-fwhopr): Merge into -flto section.
3295         (-flto-partition): Document none.
3296         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
3297         * lto-wrapper.c: Update comment.
3298         (run_gcc): Update LTO option parsing.
3299         * opts.c (finish_options): add support -flto-partition=none
3300         (common_handle_option): Remove fwhopr.
3301         * common.opt: Turn fwhopr into flto.
3302         * collect2.c (main): Update option handling.
3303         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
3304         * ipa-split.c (execute_split_functions): Remove flag_whopr.
3305         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
3306         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
3307         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
3308
3309 2010-11-11  Jan Hubicka  <jh@suse.cz>
3310
3311         PR tree-optimize/40436
3312         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
3313         (eliminated_by_inlining_prob): ... this one; return 50% probability
3314         for SRA.
3315         (estimate_function_body_sizes): Update use of
3316         eliminated_by_inlining_prob; estimate static function size
3317         for 2 instructions.
3318
3319 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
3320
3321         PR target/44749
3322         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
3323         declare.  Change type of argument four to type int.
3324         (mep_secondary_input_reload_class): Returns enum reg_class.
3325         (mep_secondary_output_reload_class): Likewise.
3326         (mep_function_value): Change types of arguments to cont_tree.
3327         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
3328         argument four to type int.
3329         (mep_secondary_input_reload_class): Returns enum reg_class.
3330         (mep_secondary_output_reload_class): Likewise.
3331         (mep_function_value): Change types of arguments to cont_tree.
3332         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
3333         mep_regno_reg_class to enum reg_class.
3334
3335 2010-11-11  Richard Henderson  <rth@redhat.com>
3336
3337         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
3338         that the target has the exact fma operation that we matched.
3339
3340 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3341
3342         * reginfo.c (fix_register): Avoid inserting English word in
3343         diagnostic sentence.  Use %qs for quoting and %'.
3344
3345 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
3346
3347         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3348         Intel processor family 6, model 0x2c.
3349
3350 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
3351
3352         * opts.c (warning_as_error_callback,
3353         register_warning_as_error_callback): Remove.
3354         (enable_warning_as_error): Don't use warning_as_error_callback.
3355         * opts.h (register_warning_as_error_callback): Remove.
3356
3357 2010-11-11  Richard Henderson  <rth@redhat.com>
3358
3359         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
3360         in between the MULT and the PLUS/MINUS.
3361
3362 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3363
3364         PR middle-end/46388
3365         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
3366         BLKmode mode for it.
3367         (expand_expr_real_1): Similarly for op0.
3368
3369 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3370
3371         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
3372         Document optional target selector.
3373
3374 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3375
3376         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
3377         assembling high and low parts of size if not using 32-bit HWINT; else
3378         use DECL_SIZE_UNITS, not DECL_SIZE.
3379
3380 2010-11-11  Martin Jambor  <mjambor@suse.cz>
3381
3382         PR tree-optimization/46383
3383         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
3384         offsets.
3385         (compute_complex_ancestor_jump_func): Likewise.
3386         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
3387
3388 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
3389
3390         PR debug/46150
3391         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
3392         true if expr1->hash != expr2->hash.
3393
3394 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3395
3396         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
3397         diagnostics with lowercase letters.
3398         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
3399         lowercase letters.
3400         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
3401         diagnostic.
3402         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3403         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
3404         lowercase letters.
3405         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3406         Remove trailing ' ' from diagnostic.
3407         * config/avr/avr.c (print_operand_address): Start diagnostic with
3408         a lowercase letter and remove trailing '.'.
3409         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
3410         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
3411         with lowercase letters.  Use %' in diagnostics.  Remove trailing
3412         '.' from diagnostics.
3413         (bfin_handle_longcall_attribute): Use %' in diagnostic.
3414         * config/cris/cris.c (cris_split_movdx,
3415         cris_expand_pic_call_address): Start diagnostics with lowercase
3416         letters.
3417         (cris_asm_output_label_ref): Use %' in diagnostic.
3418         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
3419         letter.
3420         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
3421         lowercase letter.
3422         * config/darwin-c.c (version_as_macro): Start diagnostic with a
3423         lowercase letter.
3424         * config/darwin-driver.c (darwin_default_min_version): Use %' in
3425         diagnostic.
3426         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
3427         diagnostic.
3428         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3429         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
3430         diagnostics.
3431         * config/i386/i386.c (ix86_option_override_internal): Write
3432         diagnostic as a single sentence without trailing '.'.  Use %' in
3433         diagnostics.
3434         (ix86_function_sseregparm, classify_argument): Start diagnostics
3435         with lowercase letters.
3436         (ix86_expand_prologue): Use %' in diagnostic.
3437         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
3438         diagnostic.
3439         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
3440         lowercase letter.
3441         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
3442         diagnostic.
3443         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3444         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
3445         '`' in help text.
3446         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
3447         lowercase letter.
3448         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
3449         lowercase letters.
3450         * config/microblaze/microblaze.c (microblaze_handle_option):
3451         Remove trailing '.' from diagnostic.
3452         (print_operand): Start diagnostic with a lowercase letter.
3453         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
3454         lowercase letters.  Avoid '`' in diagnostics.
3455         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
3456         lowercase letters.  Avoid '`' in diagnostics.
3457         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
3458         lowercase letters.  Avoid '`' in diagnostics.
3459         * config/picochip/picochip.c (picochip_option_override,
3460         picochip_emit_save_register, picochip_function_arg,
3461         picochip_output_label, picochip_output_internal_label,
3462         picochip_asm_output_opcode, picochip_output_cbranch,
3463         picochip_output_compare, picochip_output_branch,
3464         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
3465         diagnostics. Start diagnostics with lowercase letters.  Use %' in
3466         diagnostics.
3467         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
3468         "SPE" capitalization.  Start diagnostic with a lowercase letter.
3469         (rs6000_handle_option): Start diagnostics with lowercase letters.
3470         (def_builtin): Remove trailing '.' from diagnostic.
3471         (rs6000_savres_routine_name): Start diagnostic with a lowercase
3472         letter.
3473         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
3474         diagnostic.
3475         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
3476         lowercase letter.
3477         * config/s390/s390.c (s390_option_override) Start diagnostics with
3478         lowercase letters.  Use %' in diagnostic.
3479         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
3480         lowercase letters.
3481         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
3482         diagnostic.
3483         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
3484         diagnostic.
3485         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
3486         diagnostic.
3487         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
3488         * config/spu/spu.c (spu_option_override): Start diagnostics with
3489         lowercase letters.  Use %qs for quoting in diagnostics.
3490         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
3491         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
3492         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
3493         from diagnostic.
3494         * convert.c (convert_to_integer, convert_to_vector): Use %' in
3495         diagnostics.
3496         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
3497         letter and use "cannot" spelling.
3498         * expmed.c (extract_fixed_bit_field): Start diagnostic with
3499         lowercase letter and format as a single sentence without '.'.
3500         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
3501         Use %' in diagnostics.
3502         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3503         Use %' in diagnostics.
3504         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
3505         Use %' in diagnostics.
3506         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
3507         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
3508         with lowercase letters and remove tailing '.' and '\n'.
3509         * lto-cgraph.c (input_profile_summary): Start diagnostic with
3510         lowercase letter and remove trailing '.'.
3511         (input_cgraph): Start diagnostics with lowercase letters and
3512         remove trailing '\n'.
3513         * opts.c (finish_options, common_handle_option): Start diagnostics
3514         with lowercase letters and remove trailing '.'.  Fix typo in
3515         diagnostic.
3516         * passes.c (position_pass): Start diagnostic with lowercase letter.
3517         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
3518         register_callback, try_init_one_plugin): Start diagnostics with
3519         lowercase letters.
3520         * reload1.c (spill_failure): Use %' in diagnostic.
3521         (gen_reload): Start diagnostic with a lowercase letter.
3522         * stor-layout.c (place_field): Start diagnostic with a lowercase
3523         letter.
3524         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
3525         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
3526         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
3527         Start diagnostics with lowercase letters, remove trailing '.' and
3528         use %' in diagnostics.
3529         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
3530         (verify_ssa): Don't split diagnostic across two error calls.
3531         Spell out "number" and use %' in diagnostic.
3532         * value-prof.c (visit_hist, check_counter): Start diagnostics with
3533         lowercase letters.
3534
3535 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
3536
3537         PR middle-end/46419
3538         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
3539         (_mm_cvtpu16_ps): Ditto.
3540
3541 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3542
3543         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
3544         warn_larger_than, larger_than_size, warn_frame_larger_than,
3545         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
3546         default_visibility, flag_tls_default): New Variable declarations.
3547         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
3548         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
3549         (v): Declare as Common and document here.
3550         * flags.h (default_visibility, flag_generate_lto,
3551         warn_larger_than, larger_than_size, warn_frame_larger_than,
3552         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
3553         flag_shlib, flag_excess_precision_cmdline): Remove.
3554         (set_Wstrict_aliasing): Update prototype.
3555         * gcc.c (verbose_flag): Remove.
3556         (driver_handle_option): Add diagnostic_context parameter.  Don't
3557         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
3558         incrementing it.
3559         * opts-common.c (handle_option): Pass dc to handler.
3560         * opts.c (warn_larger_than, larger_than_size,
3561         warn_frame_larger_than, frame_larger_than_size,
3562         default_visibility): Remove.
3563         (common_handle_option): Add diagnostic_context parameter.
3564         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
3565         gcc_options parameters.
3566         (lang_handle_option, target_handle_option, read_cmdline_options,
3567         decode_options): Add diagnostic_context parameters.
3568         (finish_options): Access option state through opts pointer where
3569         possible.
3570         (common_handle_option): Access option state through opts pointer
3571         where possible.  Do not set local static variable verbose.  Do not
3572         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
3573         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
3574         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
3575         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
3576         OPT_fwhopr_.  Do not explicitly set .opt file variables for
3577         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
3578         (set_Wstrict_aliasing): Add gcc_options parameter.
3579         * opts.h (struct cl_option_handler_func): Add diagnostic_context
3580         parameter to handler.
3581         (decode_options): Add diagnostic_context parameter.
3582         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
3583         asm_file_name, flag_generate_lto, flag_gen_aux_info,
3584         aux_info_file_name, flag_shlib, flag_tls_default,
3585         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
3586         (toplev_main): Pass global_dc to decode_options.
3587         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
3588         aux_info_file_name, asm_file_name): Remove.
3589         * tree.h (flag_tls_default): Remove.
3590
3591 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
3592
3593         PR target/45986
3594         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
3595         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
3596
3597 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3598
3599         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
3600         (x86_64-*-*): Likewise.
3601         * config/i386/cpuid.h: Define TBM bit.
3602         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3603         and set has_tbm.
3604         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3605         isa_flag for TBM.
3606         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
3607         (OPTION_MASK_ISA_TBM_UNSET): New.
3608         (ix86_handle_option): Handle -mtbm.
3609         (isa_opts): Add -mtbm.
3610         (enum pta_flags): Add PTA_TBM.
3611         (ix86_option_override_internal): Add TBM support.
3612         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
3613         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
3614         (IX86_BUILTIN_BEXTRI64): Likewise.
3615         (bdesc_args): Add TBM intrinsics.
3616         (ix86_expand_builtin): Add TBM specific case.
3617         * config/i386/i386.h (TARGET_TBM): New for TBM.
3618         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
3619         (tbm_bextri_<mode>): Likewise.
3620         (*tbm_blcfill_<mode>): Likewise.
3621         (*tbm_blci_<mode>): Likewise.
3622         (*tbm_blcic_<mode>): Likewise.
3623         (*tbm_blcmsk_<mode>): Likewise.
3624         (*tbm_blcs_<mode>): Likewise.
3625         (*tbm_blsfill_<mode>): Likewise.
3626         (*tbm_blsic_<mode>): Likewise.
3627         (*tbm_t1mskc_<mode>): Likewise.
3628         (*tbm_tzmsk_<mode>): Likewise.
3629         * config/i386/i386.opt: Add -mtbm.
3630         * config/i386/tbmintrin.h (__bextri_u32): New.
3631         (__blcfill_u32): Likewise.
3632         (__blci_u32): Likewise.
3633         (__blcic_u32): Likewise.
3634         (__blcmsk_u32): Likewise.
3635         (__blcs_u32): Likewise.
3636         (__blsfill_u32): Likewise.
3637         (__blsic_u32): Likewise.
3638         (__t1mskc_u32): Likewise.
3639         (__tzmsk_u32): Likewise.
3640         (__bextri_u64): Likewise.
3641         (__blcfill_u64): Likewise.
3642         (__blci_u64): Likewise.
3643         (__blcic_u64): Likewise.
3644         (__blcmsk_u64): Likewise.
3645         (__blcs_u64): Likewise.
3646         (__blsfill_u64): Likewise.
3647         (__blsic_u64): Likewise.
3648         (__t1mskc_u64): Likewise.
3649         (__tzmsk_u64): Likewise.
3650         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
3651         * doc/invoke.texi: Document -mtbm.
3652         * doc/extend.texi: Document TBM built-in functions.
3653
3654 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
3655
3656         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
3657         (x86_64-*-*): Likewise.
3658         * config/i386/cpuid.h: Define BMI bit.
3659         * config/i386/driver-i386.c (host_detect_local_cpu): Define
3660         and set has_bmi.
3661         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3662         isa_flag for BMI.
3663         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
3664         (OPTION_MASK_ISA_BMI_UNSET): New.
3665         (ix86_handle_option): Handle -mbmi.
3666         (isa_opts): Add -mbmi.
3667         (enum pta_flags): Add PTA_BMI.
3668         (ix86_option_override_internal): Add BMI support.
3669         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
3670         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
3671         (IX86_BUILTIN_BEXTR64): Likewise.
3672         (IX86_BUILTIN_CTZS): Likewise.
3673         (bdesc_args): Add BMI intrinsics.
3674         (ix86_expand_args_builtin): Add BMI specific cases.
3675         * config/i386/i386.h (TARGET_BMI): New for BMI.
3676         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
3677         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
3678         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
3679         (UNSPEC_TZCNT): Likewise.
3680         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
3681         (bmi_andn_<mode>): New for BMI.
3682         (bmi_bextr_<mode>): Likewise.
3683         (bmi_blsi_<mode>): Likewise.
3684         (bmi_blsmsk_<mode>): Likewise.
3685         (bmi_blsr_<mode>): Likewise.
3686         * config/i386/i386.opt: Add -mbmi.
3687         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
3688         * config/i386/bmiintrin.h (__lzcnt_u16): New.
3689         (__tzcnt_u16): Likewise.
3690         (__andn_u32): Likewise.
3691         (__bextr_u32): Likewise.
3692         (__blsi_u32): Likewise.
3693         (__blsmsk_u32): Likewise.
3694         (__blsr_u32): Likewise.
3695         (__lzcnt_u32): Likewise.
3696         (__tzcnt_u32): Likewise.
3697         (__andn_u64): Likewise.
3698         (__bextr_u64): Likewise.
3699         (__blsi_u64): Likewise.
3700         (__blsmsk_u64): Likewise.
3701         (__blsr_u64): Likewise.
3702         (__lzcnt_u64): Likewise.
3703         (__tzcnt_u64): Likewise.
3704         * doc/invoke.texi: Document -mbmi and -mno-bmi.
3705         * doc/extend.texi: Document BMI built-in functions.
3706
3707 2010-11-10  Jan Hubicka  <jh@suse.cz>
3708
3709         PR tree-optimize/46228
3710         * doc/invoke.texi (comdat-sharing-probability): Document.
3711         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
3712         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
3713
3714 2010-11-10  Jan Hubicka  <jh@suse.cz>
3715
3716         PR tree-optimize/46228
3717         * cgraph.c (cgraph_propagate_frequency): Fix typo.
3718
3719 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
3720
3721         PR tree-optimization/46414
3722         * tree-inline.c (estimate_move_cost): Check preferred vector
3723         mode for vector type.
3724
3725 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3726
3727         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
3728
3729 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
3730
3731         PR tree-optimization/45971
3732         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
3733         for phi nodes analyzable by scev.
3734
3735 2010-11-10  Richard Guenther  <rguenther@suse.de>
3736
3737         PR tree-optimization/44964
3738         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
3739
3740 2010-11-10  Martin Jambor  <mjambor@suse.cz>
3741
3742         PR tree-optimization/46351
3743         PR tree-optimization/46377
3744         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
3745         aggregate bit-fields.
3746
3747 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
3748
3749         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3750         * doc/tm.texi: Regenerate.
3751         * opts-common.c (tm.h): Don't include.
3752         (target_option_translations): Remove.
3753         (decode_cmdline_options_to_array): Don't handle translating options.
3754         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
3755         * config/darwin-driver.c: Don't condition includes on
3756         CROSS_DIRECTORY_STRUCTURE.
3757         (darwin_default_min_version): Make static.
3758         (darwin_driver_init): New.  Call darwin_default_min_version if not
3759         CROSS_DIRECTORY_STRUCTURE.
3760         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3761         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
3762         (ASM_SPEC): Add %{static}.
3763         (darwin_default_min_version): Don't declare.
3764         (darwin_driver_init): Declare.
3765         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
3766         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
3767         * config/darwin.opt (all_load, allowable_client,
3768         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
3769         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
3770         exported_symbols_list, filelist, findirect-virtual-calls,
3771         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
3772         framework, fterminated-vtables, gfull, gused, image_base, init,
3773         install_name, multi_module, multiply_defined,
3774         multiply_defined_unused, no_dead_strip_inits_and_terms,
3775         seg_addr_table, seg_addr_table_filename, segaddr,
3776         segs_read_only_addr, segs_read_write_addr, single_module,
3777         umbrella, unexported_symbols_list, weak_reference_mismatches,
3778         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
3779         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
3780         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
3781         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
3782         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
3783         (ASM_SPEC): Add %{static}.
3784         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3785         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3786         (DRIVER_SELF_SPECS): Handle options formerly in
3787         TARGET_OPTION_TRANSLATE_TABLE.
3788         * config/mep/mep.opt (mfar): New.
3789         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3790         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
3791         TARGET_OPTION_TRANSLATE_TABLE.
3792         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
3793         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
3794         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
3795         ffix-and-continue, findirect-data): New.
3796         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
3797         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
3798         (mnofpu): Define mask and use Report here.
3799
3800 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3801
3802         * config/s390/s390.c (s390_emit_prologue): Report the stack
3803         size if -fstack-usage is used.
3804
3805 2010-11-10  Richard Guenther  <rguenther@suse.de>
3806
3807         PR tree-optimization/46398
3808         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
3809
3810 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
3811
3812         PR target/44760
3813         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
3814         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
3815         GP_REG_OR_PSEUDO_STRICT_P.
3816         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
3817         unexpected alternative.
3818         (*movsf_internal): Likewise.
3819         (indirect_jump): Replace call to non-existant function with call to
3820         internal_error.
3821         (tablejump): Likewise.
3822         * config/iq2000/iq2000.c: Include df.h .
3823         (iq2000_function_arg_advance): Use CONST_CAST2.
3824         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
3825         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
3826         a non-zero function address.
3827         (iq2000_initial_elimination_offset): Add gcc_unreachable for
3828         unexpected value of FROM.
3829         (symbolic_expression_p): Delete.
3830         (iq2000_function_value): Constify func.
3831         (expand_one_builtin): Use expand_normal.
3832         (iq2000_print_operand): Don't print VALUE if calculating it failed.
3833
3834         PR rtl-optimization/44764
3835         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
3836
3837         PR target/46407
3838         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
3839         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
3840         with ATTRIBUTE_UNUSED.
3841         (valid_psw_flag): Constify parameter which.
3842         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
3843
3844         PR target/46415
3845         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
3846         (mmix_dbx_register_number): Likewise.
3847         * config/mmix/mmix.c: Include df.h .
3848         (mmix_local_alignment): Change argument basic_align and return type
3849         to unsigned.
3850         (mmix_dbx_register_number): Change argument and return type to
3851         unsigned.
3852         (mmix_expand_prologue): Use add_reg_note.
3853
3854         PR target/46417
3855         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
3856         (spu_split_store): Use aform.
3857         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
3858
3859 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3860
3861         PR/46268
3862         * doc/gty.texi (GTY Options): Clarify that variable_size produces
3863         allocators taking size in bytes, compare with length option.  Add
3864         size calculation example.
3865         (Invoking the garbage collector): Ensure that sentences are
3866         followed by two spaces.  Describe that pointer fields must be
3867         initialized at ggc_collect call.
3868         (Troubleshooting): New section.
3869
3870 2010-11-09  Jan Hubicka  <jh@suse.cz>
3871
3872         PR tree-optimization/40436
3873         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
3874         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
3875         normal instructions; be sure bultin is not implemented in this file;
3876         compute non-zero return cost.
3877         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
3878         * tree-inline.h (eni_weights_d): Add return cost.
3879
3880 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
3881
3882         * c-parser.c (c_parser_struct_declaration): Handle declaration
3883         specifiers followed by CPP_CLOSE_BRACE.
3884
3885 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3886
3887         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
3888         split occurs before reload, and we allocate memory at the time of
3889         the split, not during expansion.  Add attributes.
3890         (floatsi<mode>2_lfiwax_mem): Ditto.
3891         (floatunssi<mode>2_lfiwzx): Ditto.
3892         (floatunssi<mode>2_lfiwzx_mem): Ditto.
3893         (floatsidf2): Ditto.
3894         (floatunssisf2): Ditto.
3895         (floatunssidf2): Ditto.
3896         (fix_trunc<mode>si2): Ditto.
3897         (fix_trunc<mode>si2_stfiwx): Ditto.
3898         (fix_trunc<mode>si2_internal): Ditto.
3899         (fix_trunc<mode>si2): Ditto.
3900         (fix_trunc<mode>di2): Ditto.
3901         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3902         (floatsisf2): Ditto.
3903         (floatdidf2_mem): Ditto.
3904         (floatunsdidf2_mem): Ditto.
3905         (floatunsdidf2): Ditto.
3906         (floatdisf2_internal1): Ditto.
3907         (floatdisf2_mem): Ditto.
3908         (floatunsdisf2_mem): Ditto.
3909         (floatsi<mode>2_lfiwax_mem2): Delete.
3910         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
3911         (fix_trunc<mode>si2_mem): Ditto.
3912         (fixuns_trunc<mode>si2_mem): Ditto.
3913         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
3914         type operations to reduce copying the values to multiple memory slots.
3915         (roundu32<mode>2_fprs): Ditto.
3916
3917         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
3918         PRE_INC, PRE_DEC, PRE_MODIFY.
3919         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
3920
3921         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
3922         Delete prototype.
3923
3924 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3925
3926         PR target/43808
3927         * cfgexpand.c (partition_stack_vars): Call
3928         update_alias_info_with_stack_vars unconditionally.
3929         (update_alias_info_with_stack_vars): Allow unused
3930         unreferenced vars when not optimizing.
3931
3932 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
3933
3934         PR tree-optimization/46036
3935         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
3936         add_to_dst_predicate_list.
3937
3938 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
3939
3940         PR debug/46171
3941         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
3942         earlier.
3943         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
3944         argument, call dead_debug_reset when adding REG_UNUSED note.
3945         (dead_debug_reset): New function.
3946         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
3947         df_create_unused_note callers.
3948
3949 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
3950
3951         * config/fr30/fr30.c: Include "df.h".
3952
3953 2010-11-09  Richard Guenther  <rguenther@suse.de>
3954
3955         PR tree-optimization/46355
3956         * tree-loop-distribution.c (tree_loop_distribution): Do not
3957         distribute loops without a single exit.
3958
3959 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3960
3961         PR rtl-optimization/46237
3962         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
3963         saved hard regs if they might get partially clobbered.
3964
3965 2010-11-09  Paul Koning  <ni1d@arrl.net>
3966
3967         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
3968
3969 2010-11-09  Richard Guenther  <rguenther@suse.de>
3970
3971         PR tree-optimization/46177
3972         * tree-loop-distribution.c (prop_phis): Remove.
3973         (generate_builtin): Re-use the old loop exit edge to avoid
3974         needing to update PHI nodes.
3975
3976 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
3977
3978         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
3979         type of args_size to unsigned HOST_WIDE_INT.
3980
3981         PR target/44755
3982         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
3983         * config/t-pnt16-warn: New file.
3984         * config/picochip/picochip.c (picochip_emit_stack_allocate):
3985         Use add_reg_note.
3986         (picochip_emit_save_register): Likewise.
3987         (picochip_emit_restore_register): Remove variable insn.
3988         (picochip_legitimize_address): Don't use C++ style comments.
3989         (picochip_legitimize_reload_address): Likewise.
3990         (reorder_var_tracking_notes): Remove variable vliw_start.
3991         (picochip_reorg): Cast first arguemnt to emit_note_after to
3992         enum insn_note.
3993         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
3994         (picochip_expand_builtin_3op): Likewise.
3995         (picochip_expand_builtin_2opvoid): Likewise.
3996         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
3997         (picochip_expand_array_testport): Likewise.
3998         (picochip_init_builtins): Remove unused variables.
3999         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
4000         to unsigned long, and output it as such.
4001         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
4002         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
4003         (schedType): Cast result of picochip_schedule_type to
4004         enum attr_schedType.
4005
4006         PR target/44759
4007         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
4008         conditional to type of S.
4009         (mn10300_function_arg): Remove unused variable align.
4010         (mn10300_arg_partial_bytes): Likewise.
4011         * config/mn10300/mn10300.md (attribute cpu): Cast value to
4012         enum attr_cpu.
4013
4014 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
4015
4016         PR bootstrap/46392
4017         * gengtype-parse.c (type): Call get_input_file_name to get file name.
4018
4019 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
4020
4021         * tree.h (contains_placeholder_p): Fix comment.
4022         (type_contains_placeholder_p): Adjust comment.
4023         * tree.c (contains_placeholder_p): Fix comment.
4024         (type_contains_placeholder_1): Do not recurse on pointed-to types and
4025         adjust comment.
4026         (type_contains_placeholder_p): Add comment.
4027
4028 2010-11-09  Paul Koning  <ni1d@arrl.net>
4029
4030         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
4031         output of byte values.
4032
4033 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
4034
4035         PR middle-end/46360
4036         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
4037         not in SSA mode.
4038
4039 2010-11-09  Richard Guenther  <rguenther@suse.de>
4040
4041         PR middle-end/46221
4042         * varasm.c (compute_visible_aliases): New function.
4043         (remove_unreachable_alias_pairs): Aliases make a target available
4044         even though we reclaimed the cgraph node.
4045         (finish_aliases_1): Likewise.
4046         * Makefile.in (varasm.o): Add pointer-set.h dependency.
4047
4048 2010-11-09  Nick Clifton  <nickc@redhat.com>
4049
4050         * config/mn10300/mn10300-modes.def: New file.
4051
4052 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
4053             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4054
4055         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
4056         (plugin_files, get_file_basename, get_file_realbasename)
4057         (get_file_langdir, error_at_line, gt_files, this_file)
4058         (system_h_file, read_input_list, create_field_all)
4059         (get_file_srcdir_relative_path, get_file_basename)
4060         (get_file_langdir, get_file_gtfilename)
4061         (get_output_file_with_visibility, get_output_file_name)
4062         (struct flist, put_mangled_filename, walk_type)
4063         (put_mangled_filename, finish_root_table, write_roots): Use
4064         input_file-s.
4065         (lang_dir_names, num_lang_dirs): Remove static.
4066         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
4067         (main): Use input_file-s.
4068
4069         * gengtype.h: (struct input_file_st, input_file): New type.
4070         (struct fileloc): Use it.
4071         (gt_files, num_gt_files, this_file, system_h_file)
4072         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
4073         (get_input_file_name): New function.
4074         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
4075         use input_file.
4076         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
4077         (get_output_file_name): Ditto.
4078
4079         * gengtype-lex.l (yybegin): Use input_file.
4080
4081         * gengtype-parse.c (parse_error): Use input_file.
4082
4083 2010-11-08  Xinliang David Li  <davidxl@google.com>
4084
4085         PR tree-optimization/46316
4086         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
4087         * double-int.h (double_int_mul_with_sign): New function.
4088         * double-int.c (double_int_mul_with_sign): New function.
4089
4090 2010-11-08  Paul Koning  <ni1d@arrl.net>
4091
4092         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
4093
4094 2010-11-08  Paul Koning  <ni1d@arrl.net>
4095
4096         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
4097
4098 2010-11-08  Paul Koning  <ni1d@arrl.net>
4099
4100         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
4101         to 8 bits.
4102
4103 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
4104
4105         PR target/46378
4106         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4107         turn on ISA 2.04 rounding instructions for power5.
4108
4109         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
4110         not ISA 2.02.
4111
4112         PR target/45585
4113         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
4114         in FPR registers.
4115         (movdi_low_st): Ditto.
4116
4117 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4118             Richard Henderson  <rth@redhat.com>
4119
4120         PR target/44758
4121         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
4122         (attribute acc_group): Cast value to enum attr_acc_group.
4123         (*movdi_nodouble+6): Use gen_int_mode.
4124         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
4125         if RTX_CODE is defined or not.
4126         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
4127         struct frv_io.
4128         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
4129         (frv_frame_access, frv_expand_prologue): Remove unused variables.
4130         (frv_expand_block_clear): Likewise.
4131         (frv_trampoline_init): Use LCT_NORMAL.
4132         (struct frv_packet_group): New struct, broken out of type of
4133         frv_packet.
4134         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
4135         use cast in loop counter increment.
4136         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
4137         assigning to io->type.
4138         (bdesc_set): Use rtx_code UNKNOWN in initializer.
4139         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
4140         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
4141         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
4142         (frv_read_argument): Use expand_normal.
4143
4144         PR target/44757
4145         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
4146         lm32_legitimate_constant_p.
4147         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4148         * config/lm32/lm32.c (gen_int_relational): Make new block for
4149         LE / LT / LEU / LTU case.  Declare variables at start of block.
4150         (lm32_block_move_inline): Use XALLOCAVEC.
4151
4152 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4153
4154         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
4155
4156 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4157
4158         * gengtype (get_output_file_for_structure): Ensure type is union
4159         or struct.
4160         (write_splay_tree_allocator_def): Use
4161         get_output_file_with_visibility.
4162
4163 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4164
4165         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
4166         to defined values in case of an error.
4167         (s390_option_override): Skip further processing if the -march
4168         parameter wasn't recognized.
4169
4170 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
4171
4172         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
4173         assert that REG is a hard register number before using it as an index.
4174
4175         PR bootstrap/46358
4176         * config/i386/i386.c (ix86_expand_split_stack_prologue):
4177         Avoid warnings when HOST_WIDE_INT is 32 bit.
4178
4179 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
4180
4181         PR target/46208
4182         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
4183         (sparc_promote_prototypes): Likewise.
4184         (sparc_promote_function_mode): Promote in 32-bit mode as well.
4185         (sparc_return_in_memory): Remove superfluous parentheses.
4186         (sparc_struct_value_rtx): Fix long lines.
4187         (sparc_function_value_1): Promote in 32-bit mode as well.
4188
4189 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
4190
4191         PR rtl-optimization/45352
4192         * sel-sched.c (find_best_expr): Do not set pneed_stall when
4193         the variable_issue hook is not implemented.
4194         (fill_insns): Remove dead variable stall_iterations.
4195         (init_seqno_1): Force EBB start for resetting sched cycles on any
4196         successor blocks of the rescheduled region.
4197         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
4198         (reset_sched_cycles_in_current_ebb): Add debug printing.
4199         New variable issued_insns.  Advance state when we have issued
4200         issue_rate insns.
4201
4202 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
4203
4204         * gengtype (main): Get here's position using POS_HERE macro for
4205         do*typedef calls.
4206
4207 2010-11-07  Ian Lance Taylor  <iant@google.com>
4208
4209         PR target/46089
4210         * config/i386/i386.c (split_stack_fn_large): New static variable.
4211         (ix86_expand_split_stack_prologue): Handle large model.
4212
4213 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
4214
4215         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
4216         all possible addressing modes.
4217
4218 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
4219
4220         PR tree-optimization/46346
4221         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
4222
4223 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4224
4225         * config/mips/mips.c: Revert previous patch.
4226         * config/mips/mips.md: Likewise.
4227
4228 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
4229
4230         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
4231         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
4232         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
4233         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
4234         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
4235         to use FMA.
4236         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
4237         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
4238         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
4239         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
4240
4241 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
4242
4243         PR c/43384
4244         * c-decl.c (lookup_label): Labels can only be referenced in a
4245         function's scope.
4246         (store_parm_decls_oldstyle): Skip erroneous parameters.
4247
4248 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
4249
4250         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4251         LIBCALL_VALUE): Remove macros.
4252         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4253         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4254         (fr30_function_value_regno_p, fr30_function_value,
4255         fr30_libcall_value): New functions.
4256
4257 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
4258
4259         PR middle-end/46314
4260         * target.def (generate_internal_label): New asm_out hook.
4261         * output.h (default_generate_internal_label): Declare.
4262         * varasm.c (default_generate_internal_label): Define.
4263
4264 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
4265
4266         PR target/44981
4267         * doc/extend.tex (format): Document NSString extension.
4268         (format_arg): Likewise.
4269         (Darwin Format Checks): New section.
4270         * doc/tm.texi: Document string object hooks (generated).
4271         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
4272         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4273         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4274         * target.def (objc_construct_string_object): Rename, amend
4275         documentation.
4276         (string_object_ref_type_p): New hook.
4277         (check_string_object_format_arg): New hook.
4278         * c-parser.c (c_parser_attributes): Allow objective-c class names as
4279         attribute identifiers.
4280         * config/darwin-c.c (darwin_cfstring_ref_p): New.
4281         (darwin_check_cfstring_format_arg): New.
4282         (darwin_additional_format_types): New.
4283         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
4284         (darwin_check_cfstring_format_arg): New.
4285         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
4286         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
4287         (TARGET_N_FORMAT_TYPES): New.
4288         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
4289
4290 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
4291             Pascal Obry  <obry@adacore.com>
4292
4293         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
4294         in 64-bit mode and 17 otherwise.
4295
4296 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4297
4298         PR debug/45939
4299         * var-tracking.c (emit_note_insn_var_location): Make sure that
4300         call related var location notes come before the normal ones.
4301
4302 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4303
4304         PR target/46326
4305         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
4306         in the last change.
4307
4308 2010-11-05  Ian Lance Taylor  <iant@google.com>
4309
4310         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
4311
4312 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4313
4314         PR c/44772
4315         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
4316         pointer_set_contains if DECL_NAME is NULL.
4317
4318 2010-11-05  Ian Lance Taylor  <iant@google.com>
4319
4320         PR target/46084
4321         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
4322         request enough additional space for alignment, and force alignment.
4323
4324 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
4325
4326         * config/i386/i386.c (legitimate_pic_address_disp_p):
4327         Handle UNSPEC_PCREL.
4328         (ix86_legitimate_address_p): Likewise.
4329         (legitimize_pic_address): Likewise.
4330         (output_pic_addr_const): Likewise.
4331         (ix86_delegitimize_address): Likewise.
4332         (ix86_find_base_term): Likewise.
4333         (memory_address_length): Likewise.
4334         (x86_output_mi_thunk): Handle special case x64
4335         for non local binding.
4336         * config/i386/i386.md (UNSPEC_PCREL): New.
4337         * config/i386/winnt.c (i386_pe_binds_local_p):
4338         Allow weak symbol for x64 windows with non-local binding.
4339
4340 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4341
4342         PR target/45670
4343         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
4344         instead of EXPAND_NORMAL for base expansion.
4345
4346 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
4347
4348         * config.gcc: Support --with-fpmath=avx for x86.
4349         * config/i386/avxmath.h: New.
4350         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
4351
4352 2010-11-05  Ian Lance Taylor  <iant@google.com>
4353
4354         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
4355         * gengtype.c (walk_type): Don't recognize descbits option.
4356
4357 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
4358
4359         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
4360         WORD_SWITCH_TAKES_ARG): Remove.
4361         * doc/options.texi (Args): Document.
4362         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
4363         * doc/tm.texi: Regenerate.
4364         * opt-functions.awk (switch_flags): Handle Args.
4365         * opts-common.c: Update comment on tm.h include.
4366         (decode_cmdline_option): Handle options with multiple arguments.
4367         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
4368         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
4369         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4370         CL_COMMON): Update values.
4371         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
4372         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
4373         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
4374         sectobjectsymbols, sectorder, segcreate, segprot): New.
4375
4376 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
4377             Uros Bizjak  <ubizjak@gmail.com>
4378
4379         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
4380         256bit AVX register is used.
4381         (ix86_expand_vector_move_misalign): Likewise.
4382         (ix86_expand_vector_move): Replace use_avx256_p with
4383         VALID_AVX256_REG_MODE.
4384
4385 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
4386
4387          PR target/44750
4388         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
4389         change.  Set $@-warn.o to -Wno-error.
4390
4391         PR bootstrap/44756
4392         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
4393         comparing it to a signed value.
4394
4395         PR middle-end/44766
4396         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
4397         PR bootstrap/44770
4398         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
4399         to i.
4400
4401         PR target/44754
4402         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
4403         (m32c_function_arg).  Add comma between arguments two and three.
4404         (m32c_promote_prototypes): Remove declaration.
4405         (current_function_special_page_vector): Likewise.
4406         (m32c_regno_reg_class): Change return type to enum reg_class.
4407         (m32c_pushm_popm): Use add_reg_note.
4408         (m32c_push_rounding): Change return type to unsigned int.
4409         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
4410         enum reload_type.
4411         (m32c_insert_attributes): Constify variable name.
4412         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
4413         (m32c_prepare_shift): Remove variable lref.
4414         (m32c_expand_movcc): Remove variable cmp.
4415         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
4416         (m32c_compare_redundant): Remove variable op2.
4417         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
4418         (m32c_pragma_memregs): Assign the number to target_memregs.
4419         (m32c_pragma_address): Remove variable var_str.
4420         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
4421         enum reg_class.
4422         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
4423         * config/m32c/bitops.md (andsi3): Add default case to switch.
4424         (iorsi3, xorsi3): Likewise.
4425         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
4426         * config/m32c/jump.md (call, call_value): Likewise.
4427         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
4428         (m32c_regno_reg_class): Likewise.
4429         (current_function_special_page_vector): Declare.
4430
4431 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
4432
4433         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
4434
4435         PR tree-optimization/46099
4436         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
4437         if it is NULL and uid wasn't found in the hash table.  Just fold the
4438         result if it is NULL otherwise.  Insert other potentially needed
4439         stmts right before current stmt instead of on the entry edge.
4440         (struct elv_data): Add gsi and reset fields.
4441         (eliminate_local_variables_1): Adjust caller.  If take_address_of
4442         failed for debug stmt, set dta->reset and return.
4443         (eliminate_local_variables_stmt): Change STMT argument for GSI,
4444         pass GSI through to the callback, handle resetting of debug stmts.
4445         (eliminate_local_variables): Adjust caller.  Process debug stmts
4446         in second phase.
4447
4448         PR middle-end/43690
4449         * gimplify.c (gimplify_asm_expr): If a "m" input is a
4450         {pre,post}{in,de}crement, fail.
4451
4452         PR debug/46307
4453         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
4454         * tree-pretty-print.c (dump_generic_node): Likewise.
4455         (op_code_prio): Likewise.
4456         * cfgexpand.c (expand_debug_expr): Likewise.
4457
4458 2010-11-04  Paul Koning  <ni1d@arrl.net>
4459
4460         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
4461         constraints.
4462
4463 2010-11-04  Chao-ying Fu  <fu@mips.com>
4464
4465         * configure.ac: Test assembler support for DSP Rev1 mult.
4466         * configure: Regenerate.
4467         * config.in: Regenerate.
4468         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
4469         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
4470         (CODE_FOR_mips_multu): New define.
4471         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
4472         dspr2_32 to dsp_32.
4473         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
4474         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
4475         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
4476         New define_expand patterns.
4477         * config/mips/constraints.md (ka): Update the constraint to test
4478         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
4479         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
4480         mips_multu): Delete.
4481         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
4482         Change target constraint to "ka".
4483         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
4484         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
4485         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4486         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
4487         Emit the accumulator destination when ISA_HAS_DSP_MULT.
4488         (<u>maddsidi4): Likewise.
4489         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
4490         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
4491
4492 2010-11-04  Paul Koning  <ni1d@arrl.net>
4493
4494         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
4495
4496 2010-11-04  Paul Koning  <ni1d@arrl.net>
4497
4498         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
4499
4500 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
4501
4502         Fixed using the Objective-C 2.0 dot-syntax with class names.
4503         * c-parser.c (c_parser_next_token_starts_declspecs): In
4504         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
4505         (c_parser_next_token_starts_declaration): Same.
4506         (c_parser_postfix_expression): Parse the Objective-C 2.0
4507         dot-syntax with a class name.
4508
4509 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
4510
4511         * final.c (compute_alignments): Compute/free loop info all the time.
4512         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
4513         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
4514         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
4515         * config/rs6000/rs6000.c (cfgloop.h): Include.
4516         (can_override_loop_align): New.
4517         (rs6000_option_override_internal): Set it.
4518         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
4519         (rs6000_loop_align): New function.
4520         (rs6000_loop_align_max_skip): Likewise.
4521
4522 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4523
4524         PR driver/45703
4525         * collect2.c (main): Print --help output to stdout.  Do not
4526         exit right away, so ld --help is appended.  Add empty lines
4527         to separate output suitably.
4528
4529 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
4530
4531         PR tree-optimization/46233
4532         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
4533         after calling analyze_function, not before.
4534
4535         PR target/46234
4536         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
4537         instead of build_va_arg_indirect_ref.
4538         * config/spu/spu.c (spu_va_start): Likewise.
4539         * config/s390/s390.c (s390_va_start): Likewise.
4540
4541 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
4542
4543         PR middle-end/46292
4544         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
4545         if the innermode is not vector mode, determine the mode of a subreg
4546         by using mode_for_size of inner_size.
4547
4548 2010-11-04  Richard Guenther  <rguenther@suse.de>
4549
4550         PR rtl-optimization/46183
4551         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
4552         (execute_rtl_pre): Likewise.
4553         (execute_rtl_hoist): Likewise.
4554
4555 2010-11-04  Richard Guenther  <rguenther@suse.de>
4556
4557         PR tree-optimization/46068
4558         * ipa-split.c (consider_split): Remove gcc_unreachable.
4559
4560 2010-11-04  Richard Guenther  <rguenther@suse.de>
4561
4562         * tree-nested.c (build_addr): Use build_fold_addr_expr.
4563
4564 2010-11-04  Richard Guenther  <rguenther@suse.de>
4565
4566         PR tree-optimization/45991
4567         * gimplify.c (force_gimple_operand_1): Use the provded test
4568         function in the initial test.
4569
4570 2010-11-04  Jeff Law  <law@redhat.com>
4571
4572         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
4573         of readonly memory equivalances for const/pure calls.
4574
4575 2010-11-04  Richard Guenther  <rguenther@suse.de>
4576
4577         PR tree-optimization/45733
4578         * tree-vect-stmts.c (reverse_vec_elements): Honor the
4579         permute builtins function return type.
4580
4581 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
4582
4583         PR middle-end/44765
4584         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
4585         as an index, check it is not INVALID_REGNUM.
4586
4587         PR bootstrap/44756
4588         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
4589         unsignedp.
4590         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
4591
4592         PR bootstrap/44756
4593         * function.c (thread_prologue_and_epilogue_insns): Add
4594         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
4595
4596         PR bootstrap/44756
4597         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
4598
4599         PR target/44750
4600         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
4601         (pdp11_preferred_reload_class): Rename class to rclass.
4602         (pdp11_preferred_output_reload_class): Likewise.
4603         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
4604         ALL_COMPILERFLAGS .
4605         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
4606
4607         PR bootstrap/44756
4608         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
4609         iteration variables to enum machine_mode.
4610
4611         PR target/44751
4612         * config/h8300/h8300.c: Include df.h.
4613         (push, pop): Use add_reg_note.
4614         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
4615         (compute_a_shift_cc): Likewise.
4616         (expand_a_shift): Argument code has type enum rtx_code.
4617         (struct shift_insn): Member cc_valid has type enum attr_cc.
4618         (struct shift_info) <cc_inline, cc_special>: Likewise.
4619         enum attr_cc.
4620         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
4621         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
4622
4623 2010-11-04  Ira Rosen  <irar@il.ibm.com>
4624
4625         PR tree-optimization/46213
4626         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
4627         MINUS_EXPR only if the first operand is reduction operand.
4628
4629 2010-11-04  Richard Guenther  <rguenther@suse.de>
4630             Richard Henderson  <rth@redhat.com>
4631
4632         * tree.def (FMA_EXPR): New tree code.
4633         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
4634         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
4635         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
4636         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
4637         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
4638         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
4639         (execute_optimize_widening_mul): Call it.  Reorganize to allow
4640         dead stmt removal.  Move TODO flags ...
4641         (pass_optimize_widening_mul): ... here.
4642         * flag-types.h (enum fp_contract_mode): New enum.
4643         * common.opt (flag_fp_contract_mode): New variable.
4644         (-ffp-contract): New option.
4645         * opts.c (common_handle_option): Handle it.
4646         * doc/invoke.texi (-ffp-contract): Document.
4647         * tree.h (fold_fma): Declare.
4648         * builtins.c (fold_fma): New function.
4649         (fold_builtin_fma): Likewise.
4650         (fold_builtin_3): Call it for fma.
4651         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
4652         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
4653         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
4654         New expanders.
4655         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
4656         named patterns.
4657         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
4658         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
4659         (fms_optab, fnma_optab, fnms_optab): New defines.
4660         * gimplify.c (gimplify_expr): Handle binary truth expressions
4661         explicitly.  Handle FMA_EXPR.
4662         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
4663         operations.
4664
4665 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4666             Richard Guenther  <rguenther@suse.de>
4667
4668         * passes.c (init_optimization_passes): Move veclower after SSA.
4669         * tree-vect-generic.c (uniform_vector_p): New function.
4670         (expand_vector_operations_1): Handle conversion.
4671         (pass_lower_vector): Update SSA form.
4672
4673 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
4674
4675         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
4676         plugin capabilities.
4677         * configure: Regenerate.
4678
4679 2010-11-03  Xinliang David Li  <davidxl@google.com>
4680
4681         PR target/46200
4682         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
4683         Adjust cbase if the use stmt is after iv update.
4684
4685 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4686
4687         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
4688
4689 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4690
4691         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
4692         comment.  Pass true to the last argument of output_stack_adjust.
4693
4694 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4695
4696         PR target/46295
4697         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
4698         if 256bit AVX register is used.
4699
4700 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
4701
4702         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
4703         xsmindp/xsmaxdp on VSX for single precision min/max.
4704         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
4705         (vsx_sminsf3): Ditto.
4706
4707 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4708
4709         * combine.c (try_combine): Fix formatting issues, improve comments and
4710         fix a pasto.
4711
4712 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4713
4714         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
4715         of the result before building binary expressions.
4716
4717 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4718
4719         PR rtl-optimization/45865
4720         * Makefile.in (df-problems.o): Revert revision 164552.
4721         * basic-block.h (enum bb_flags): Likewise.
4722         * cfgcleanup.c (block_was_dirty): Likewise.
4723         (try_forward_edges): Likewise.
4724         (try_crossjump_bb): Likewise.
4725         (try_head_merge_bb): Likewise.
4726         (try_optimize_cfg): Likewise.
4727         (cleanup_cfg): Likewise.
4728         * df-core.c (df_set_bb_dirty): Likewise.
4729         * df-problems.c: Likewise.
4730         (df_simulate_find_uses): Likewise.
4731         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
4732         (find_memory, find_memory_store): Likewise.
4733         (can_move_insns_across): Likewise.
4734         * df.h (can_move_insns_across): Likewise.
4735         * ifcvt.c (find_memory): Likewise.
4736         (dead_or_predicable): Likewise.
4737
4738 2010-11-03  Richard Guenther  <rguenther@suse.de>
4739
4740         PR middle-end/46288
4741         * predict.c (strip_predict_hints): Simply DCE builtin expect if
4742         the result is unused.
4743
4744 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4745
4746         PR tree-optimization/46009
4747         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
4748         cond_if_else_store_replacement if bb1 and bb2 have the same
4749         single successor.
4750         (cond_store_replacement): Use gimple_assign_single_p, don't
4751         check if rhs is SSA_NAME or invariant.  Call release_defs for
4752         assign.
4753         (cond_if_else_store_replacement): New function.
4754
4755 2010-11-03  Richard Guenther  <rguenther@suse.de>
4756
4757         * opts.c (finish_options): Properly check for all WHOPR
4758         flags before complaining about -flto-partition.
4759
4760 2010-11-04  Alan Modra  <amodra@gmail.com>
4761
4762         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
4763         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
4764         TARGET_SECURE_PLT.
4765         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
4766         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
4767         on input, "r" on output.
4768
4769 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
4770
4771         Implemented -fobjc-std=objc1 flag.
4772         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
4773         option.
4774         * doc/standards.texi (Standards): Updated the section on
4775         Objective-C; mention support for Objective-C 2.0 features and the
4776         new -fstd-objc=objc1 flag to disable them.
4777
4778 2010-11-03  Richard Guenther  <rguenther@suse.de>
4779
4780         PR middle-end/46241
4781         * dwarf2out.c (scope_die_for): Properly detect global scope.
4782
4783 2010-11-03  Richard Guenther  <rguenther@suse.de>
4784
4785         PR tree-optimization/46190
4786         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4787         Properly compute peel iterations.
4788
4789 2010-11-03  Richard Guenther  <rguenther@suse.de>
4790
4791         PR tree-optimization/46286
4792         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
4793         re-allocated vector data.
4794
4795 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
4796
4797         PR target/46285
4798         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
4799         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
4800         is completed.
4801
4802 2010-11-03  Richard Guenther  <rguenther@suse.de>
4803
4804         PR tree-optimization/46217
4805         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
4806         flag matches.
4807         (execute_update_addresses_taken): Likewise.
4808
4809 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
4810
4811         PR bootstrap/44335
4812         * targhooks.c (targhook_words_big_endian): New function.
4813         (targhook_float_words_big_endian): Likewise.
4814         * targhooks.h (targhook_words_big_endian): Declare.
4815         (targhook_float_words_big_endian): Likewise.
4816         * target.def (words_big_endian, float_words_big_endian): New hooks.
4817
4818 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4819
4820         PR tree-optimization/46165
4821         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
4822         a normal call into noreturn call.
4823
4824 2010-11-03  Richard Guenther  <rguenther@suse.de>
4825
4826         PR middle-end/46251
4827         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
4828         not INDIRECT_REFs.
4829
4830 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4831
4832         PR tree-optimization/46107
4833         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
4834         if cfg_hook_duplicate_loop_to_header_edge failed.
4835
4836 2010-11-03  Ian Lance Taylor  <iant@google.com>
4837
4838         PR lto/46273
4839         * config.gcc: Don't set lto_binary_reader.
4840         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
4841         (Configuration): Mention --disable-lto.  Remove --with-libelf
4842         paragraph.
4843
4844 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
4845
4846         PR debug/46252
4847         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
4848         prev_real_insn.
4849         * gcse.c (insert_insn_end_basic_block): Likewise.
4850
4851         PR rtl-optimization/46034
4852         PR rtl-optimization/46212
4853         PR rtl-optimization/46248
4854         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
4855         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
4856         before i0dest -> i0src substitution and pass 1 instead of 0 as last
4857         argument to subst on i2pat.
4858
4859 2010-11-02  Ian Lance Taylor  <iant@google.com>
4860
4861         * configure.ac: Use AC_SYS_LARGEFILE.
4862         * configure: Rebuild.
4863         * config.in: Rebuild.
4864
4865 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
4866
4867         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
4868         fold_convert.
4869         * c-typeck.c (build_function_call_vec): Likewise.
4870         * cfgexpand.c (expand_debug_expr): Likewise.
4871         * cgraphunit.c (assemble_thunk): Likewise.
4872         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
4873         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
4874         (fold_binary_loc, fold_ternary_loc): Likewise.
4875         * gimple-fold.c (get_symbol_constant_value): Likewise.
4876         * gimple-low.c (lower_builtin_setjmp): Likewise.
4877         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
4878         * gimplify.c (gimplify_init_constructor): Likewise.
4879         * lambda.h (build_linear_expr): Likewise.
4880         * omp-low.c (omp_reduction_init): Likewise.
4881         * tree-inline.c (remap_ssa_name): Likewise.
4882         * tree-object-size.c (compute_object_sizes): Likewise.
4883         * tree-sra.c (init_subtree_with_zero): Likewise.
4884         (sra_ipa_modify_assign): Likewise.
4885         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
4886         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
4887         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
4888         (undistribute_ops_list): Likewise.
4889         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4890         * tree-vect-stmts.c (vectorizable_call): Likewise.
4891         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
4892         (build_zero_cst): Handle more cases directly.  Update comment.
4893
4894 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4895
4896         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
4897         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
4898
4899         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
4900         and call ix86_split_call_vzeroupper instead of
4901         ix86_split_call_pop_vzeroupper.
4902         (*call_pop_1_vzeroupper): Likewise.
4903         (*sibcall_pop_1_vzeroupper): Likewise.
4904         (*call_value_pop_0_vzeroupper): Likewise.
4905         (*call_value_pop_1_vzeroupper): Likewise.
4906         (*sibcall_value_pop_1_vzeroupper): Likewise.
4907
4908 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4909
4910         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
4911
4912 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
4913
4914         * basic-block.h (insert_insn_end_bb_new): Delete.
4915         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
4916
4917 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
4918             H.J. Lu  <hongjiu.lu@intel.com>
4919
4920         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
4921         (ix86_split_call_pop_vzeroupper): Likewise.
4922
4923         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
4924         (ix86_expand_call): Conditionally decorate calls with
4925         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
4926         (ix86_split_call_vzeroupper): New.
4927         (ix86_split_call_pop_vzeroupper): Likewise.
4928
4929         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
4930         (*call_pop_0_vzeroupper): New insn_and_split pattern.
4931         (*call_pop_1_vzeroupper): Likewise.
4932         (*sibcall_pop_1_vzeroupper): Likewise.
4933         (*call_0_vzeroupper): Likewise.
4934         (*call_1_vzeroupper): Likewise.
4935         (*sibcall_1_vzeroupper): Likewise.
4936         (*call_1_rex64_vzeroupper): Likewise.
4937         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
4938         (*call_1_rex64_large_vzeroupper): Likewise.
4939         (*sibcall_1_rex64_vzeroupper): Likewise.
4940         (*call_value_pop_0_vzeroupper): Likewise.
4941         (*call_value_pop_1_vzeroupper): Likewise.
4942         (*sibcall_value_pop_1_vzeroupper): Likewise.
4943         (*call_value_0_vzeroupper): Likewise.
4944         (*call_value_0_rex64_vzeroupper): Likewise.
4945         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
4946         (*call_value_1_vzeroupper): Likewise.
4947         (*sibcall_value_1_vzeroupper): Likewise.
4948         (*call_value_1_rex64_vzeroupper): Likewise.
4949         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
4950         (*call_value_1_rex64_large_vzeroupper): Likewise.
4951         (*sibcall_value_1_rex64_vzeroupper): Likewise.
4952
4953 2010-11-02  Ian Lance Taylor  <iant@google.com>
4954
4955         PR lto/46273
4956         * config.gcc: Revert last patch: set lto_binary_reader.
4957
4958 2010-11-02  Richard Guenther  <rguenther@suse.de>
4959
4960         PR tree-optimization/46149
4961         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
4962         non-indirect MEM_REF variants.
4963
4964 2010-11-02  Richard Guenther  <rguenther@suse.de>
4965
4966         PR tree-optimization/46216
4967         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4968         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
4969
4970 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4971
4972         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
4973         (*-*-osf*): Likewise.
4974         * configure: Regenerate.
4975
4976 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
4977
4978         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
4979         for Intel Core 2 and Core i7.
4980
4981 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
4982
4983         Model decoder of Core 2/i7 for multipass scheduling.
4984
4985         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
4986         New type to hold target-specific data for multipass scheduling.
4987         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
4988         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
4989         Core 2/i7.
4990         (core2i7_secondary_decoder_max_insn_size,)
4991         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
4992         New static variables.
4993         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
4994         ([_]ix86_first_cycle_multipass_data): New static variable.
4995         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
4996         Implement targetm.sched hooks.
4997         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
4998         of ...
4999         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
5000         Implement new targetm.sched hooks.
5001         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
5002         targetm.sched hook to install multipass scheduling hooks on demand.
5003
5004         * doc/tm.texi.in: Document new targetm.sched hooks.
5005         * doc/tm.texi: Regenerate.
5006
5007         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
5008         (first_cycle_multipass_data_t): New typedef.
5009         (struct choice_entry: target_data): New field.
5010         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
5011         to allow target model restrictions not represented in DFA.
5012         (choose_ready, schedule_block): Update.
5013         (sched_extend_ready_list, sched_finish_ready_list): Call new target
5014         hooks to initialize target-specific data for multipass scheduling.
5015         * sched-int.h (max_issue): Update declaration.
5016         * sel-sched.c (choose_best_insn): Update.
5017         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
5018         (first_cycle_multipass_{init, fini}): Define and document new
5019         targetm.sched hooks.
5020
5021 2010-11-02  Richard Guenther  <rguenther@suse.de>
5022
5023         PR tree-optimization/46184
5024         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
5025         input vector type from the reduction operand as well.
5026
5027 2010-11-02  Richard Guenther  <rguenther@suse.de>
5028
5029         PR tree-optimization/46177
5030         * tree-loop-distribution.c (prop_phis): Use
5031         mark_virtual_phi_result_for_renaming.
5032
5033 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5034
5035         PR middle-end/46120
5036         * tree.c (get_binfo_at_offset): Bail out on artificial
5037         fields.  Identify primary bases according to their offsets.
5038
5039 2010-11-02  Martin Jambor  <mjambor@suse.cz>
5040
5041         PR tree-optimization/45875
5042         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
5043         (gimple_get_relevant_ref_binfo): Detect primary bases according to
5044         their field offset.
5045
5046 2010-11-02  Ian Lance Taylor  <iant@google.com>
5047
5048         * doc/install.texi (Configuration): Note in two places that Java
5049         is not enabled by default.
5050
5051 2010-11-02  Ian Lance Taylor  <iant@google.com>
5052
5053         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
5054         (Configuration): Mention --disable-lto.  Remove --with-libelf
5055         paragraph.
5056
5057 2010-11-02  Ian Lance Taylor  <iant@google.com>
5058
5059         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
5060         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
5061         LIBELFINC.  Remove HAVE_libelf.
5062         * config.gcc: Don't set lto_binary_reader.
5063         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
5064         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
5065         (LIBS): Remove $(LIBELFLIBS).
5066         (INCLUDES): Remove $(LIBELFINC).
5067         * configure: Rebuild.
5068         * config.in: Rebuild.
5069
5070 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
5071
5072         * config/microblaze/microblaze-protos.h (function_arg): Delete.
5073         (function_arg_advance): Delete.
5074         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
5075         (FUNCTION_ARG): Delete.
5076         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
5077         (microblaze_function_arg_advance): ...this.  Make static.  Take a
5078         const_tree and a bool.
5079         (function-arg): Rename to...
5080         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
5081         and a bool.
5082         (microblaze_expand_prologue): Call targetm.calls.function_arg and
5083         targetm.calls.function_arg_advance.
5084         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5085
5086 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5087
5088         Merge from FSF "apple/trunk" branch.
5089
5090         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
5091         * config/darwin.opt: .. to here.
5092         (matt-stubs): New option.
5093         * config/i386/darwin.opt: Delete.
5094         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
5095         (MACHO_DYNAMIC_NO_PIC_P): New.
5096         (MACHOPIC_INDIRECT): New.
5097         (MACHOPIC_PURE): New.
5098         * config/i386/darwin.h (DARWIN_X86) Define to 1.
5099         (MACHOPIC_ATT_STUB): New.
5100         (CC1_SPEC): Do not remove mdynamic-no-pic.
5101         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5102         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5103         (FUNCTION_PROFILER): Correct over-length line.
5104         (SUBTARGET_OVERRIDE_OPTIONS): New.
5105         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5106         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
5107         (legitimate_constant_p): Handle mdynamic-no-pic.
5108         (ix86_legitimate_address_p): Likewise.
5109         (ix86_legitimize_address): Likewise.
5110         (ix86_expand_move): Likewise.
5111         (machopic_output_stub): Update for ATT-style stubs and
5112         mdynamic-no-pic.
5113         * config/darwin-protos.h (machopic_symbol_defined_p): New.
5114         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
5115         TARGET_DYNAMIC_NO_PIC: Remove.
5116         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
5117         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
5118         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
5119         Remove handling of mdynamic-no-pic.
5120         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
5121         Define if required.
5122         (machopic_symbol_defined_p): Do not try to use current_function_decl
5123         when generating _get_pc thunks within stubs.
5124         (machopic_indirect_data_reference): Rework for direct conditionals
5125         rather than #ifdefs, add x86 mdynamic-no-pic
5126         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
5127         defined value.
5128         (darwin_override_options): Handle mdynamic-no-pic here.
5129         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
5130         (machopic_lazy_symbol_ptr3_section): New.
5131         (machopic_picsymbol_stub2_section): New.
5132         (machopic_picsymbol_stub3_section): New.
5133         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
5134         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
5135         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
5136         Moved common definition from x86 and rs6000.
5137         (MACHO_DYNAMIC_NO_PIC_P): Override value.
5138         (MACHOPIC_INDIRECT): Likewise.
5139         (MACHOPIC_PURE): Likewise.
5140         * config.gcc (x86-darwin-*): Remove darwin.opt.
5141
5142 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
5143
5144         PR debug/46255
5145         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
5146         instead of gsi_last_bb.
5147
5148 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5149             Maxim Kuvyrkov  <maxim@codesourcery.com>
5150
5151         * config/i386/i386.c (cpu_names): Add "corei7".
5152         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
5153
5154 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5155             Maxim Kuvyrkov  <maxim@codesourcery.com>
5156
5157         Tune alignment for Intel Core i7
5158
5159         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
5160         (enum processor_type): Update comment.  Add entries for Core i7.
5161         * config/i386-c.c (ix86_target_macros_internal): Update.
5162         * config/i386.c (m_COREI7{_32,_64}): New macros.
5163         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
5164         (processor_target_table): Tune alignment for Core i7.
5165         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
5166
5167         * doc/invoke.texi: Document "corei7" option value.
5168
5169 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
5170             Maxim Kuvyrkov  <maxim@codesourcery.com>
5171             H.J. Lu  <hjl.tools@gmail.com>
5172
5173         Basic support for Intel Core i7
5174
5175         * i386.c (ix86_option_override_internal): Add entry for corei7, use
5176         generic tuning.  Use generic32 when compiling for 32-bit ABI.
5177
5178 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
5179
5180         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
5181         sections and call darwin_asm_dwarf_section() to handle them.
5182         (darwin_asm_dwarf_section): New.
5183         (darwin_file_start): Remove code emitting dwarf section symbols.
5184
5185 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
5186
5187         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
5188         explicitly disable stack protection when building libgcc.
5189         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
5190
5191 2010-11-01  Jason Merrill  <jason@redhat.com>
5192
5193         * fold-const.c (fold_indirect_ref_1): Handle folding
5194         POINTER_PLUS_EXPR to ARRAY_REF.
5195
5196 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
5197
5198         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5199         (sh_delegitimize_address): New function.
5200
5201 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5202
5203         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
5204         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
5205         (CC1_SPEC): Don't handle -target.
5206         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
5207         options.
5208         * config/darwin.opt (Zallowable_client, Zbundle_loader,
5209         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
5210         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
5211         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
5212         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
5213         Zweak_reference_mismatches, client_name, compatibility_version,
5214         current_version, dylinker_install_name, pagezero_size,
5215         read_only_relocs, seg1addr, segs_read_only_addr,
5216         segs_read_write_addr, sub_library, sub_umbrella): New.
5217         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
5218         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
5219         * config/freebsd.opt: New.
5220         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
5221         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
5222         * config/rpath.opt: New.
5223         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
5224         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
5225         Use rpath.opt.
5226
5227 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
5228
5229         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
5230         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
5231         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
5232         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
5233         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
5234         Document that options in .opt files do not need to be included.
5235         * doc/tm.texi: Regenerate.
5236         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
5237         * opts-common.c: Update comment on tm.h include.
5238         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
5239         * system.h (SWITCH_TAKES_ARG): Poison.
5240         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
5241         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
5242         in darwin.opt.
5243         (LINK_COMMAND_SPEC_A): Don't include %{x}.
5244         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5245         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
5246         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
5247         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5248         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
5249         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
5250         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
5251         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
5252         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5253         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
5254         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
5255         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
5256         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
5257         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
5258         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
5259         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
5260         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
5261         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
5262         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
5263         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
5264         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
5265         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
5266         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5267
5268 2010-11-01  Paul Koning  <ni1d@arrl.net>
5269
5270         * config/pdp11/pdp11.md: Use iterators.
5271         (addqi3, subqi3, iorsi3, xorsi3): Delete.
5272
5273 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
5274
5275         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
5276         GCC_INSN_FLAGS_H.
5277         * libgcov.c (__gcov_indirect_call_profiler): Set
5278         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
5279         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
5280
5281 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5282
5283         PR tree-optimization/46259
5284
5285         Revert:
5286         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5287         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
5288         build_vector_from_val.
5289
5290 2010-11-01  DJ Delorie  <dj@redhat.com>
5291
5292         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
5293         as well as an assertion.
5294
5295 2010-11-01  Paul Koning  <ni1d@arrl.net>
5296
5297         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
5298         complex modes in memory.
5299
5300 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
5301
5302         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
5303
5304 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
5305
5306         PR target/45250
5307         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
5308         (cfa_base_offset): New variable.
5309         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
5310         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
5311         is NULL.
5312         (vt_init_cfa_base): Initialize cfa_base_offset.
5313
5314 2010-11-01  Alan Modra  <amodra@gmail.com>
5315
5316         PR target/46030
5317         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
5318         and savres_strategy.
5319         (stack_info): New file scope var.
5320         (rs6000_init_machine_status): Init stack_info.
5321         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
5322         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
5323         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
5324         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
5325         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
5326         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
5327         (rs6000_savres_strategy): Rewrite.
5328         (rs6000_stack_info): Use "stack_info" in place of local "info".
5329         Return cached stack info when reload_completed unless ENABLE_CHECKING
5330         in which case confirm newly calculated stack info matches old info.
5331         Delay calculation of lr_save_p, set it for out of line gp save/restore
5332         as well as fp.  Call rs6000_savres_strategy from here..
5333         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
5334         (rs6000_output_function_prologue): Use info->savres_strategy to
5335         determine whether fp save/restore externs need to be emitted.
5336
5337 2010-10-31  Jason Merrill  <jason@redhat.com>
5338
5339         * tree.h (EXPR_LOC_OR_HERE): New macro.
5340         * builtins.c (c_strlen): Use it.
5341         * c-decl.c (build_enumerator): Likewise.
5342         * gimplify.c (internal_get_tmp_var): Likewise.
5343         (shortcut_cond_expr): Likewise.
5344         (gimplify_one_sizepos): Likewise.
5345
5346 2010-10-31  Richard Henderson  <rth@redhat.com>
5347
5348         * config/i386/cygming.h (TARGET_SEH): New.
5349         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
5350         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
5351         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
5352         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
5353         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
5354         (ASM_DECLARE_FUNCTION_SIZE): New.
5355         * config/i386/i386-protos.h: Update.
5356         * config/i386/i386.c (ix86_option_override_internal): Enable
5357         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
5358         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
5359         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
5360         (ix86_compute_frame_layout): For SEH, disable
5361         use_fast_prologue_epilogue, move frame pointer to the end of
5362         the frame.  Initialize hfp_save_offset.
5363         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
5364         at end of prologue for SEH.
5365         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
5366         emit blockage at beginning of epilogue.
5367         (ix86_expand_binary_operator): After reload, emit LEA if needed.
5368         (ix86_output_call_insn): New.
5369         * config/i386/i386.h (TARGET_SEH): New.
5370         (struct machine_function): Add member seh.
5371         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
5372         * config/i386/winnt.c (struct seh_frame_state): New.
5373         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
5374         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
5375         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
5376         i386_pe_start_function, i386_pe_end_function): New.
5377
5378         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
5379         as CFA_STORE in rules 12 and 13.
5380
5381 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
5382
5383         PR tree-optimization/46142
5384         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
5385         accommodate third function argument.
5386
5387 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5388
5389         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
5390
5391 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5392
5393         * fold-const.c (build_zero_vector): Use build_vector_from_val.
5394         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
5395         (get_initial_def_for_reduction): Likewise.
5396         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5397         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
5398         * tree.c (build_one_cst): Likewise.
5399         (build_vector_from_val): Use types_compatible_p for assert.
5400
5401 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
5402
5403         * emit-rtl.c (mark_used_flags): New function.
5404         (set_used_flags, reset_used_flags): Call it.
5405
5406 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
5407
5408         PR middle-end/44569
5409         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
5410         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
5411
5412 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
5413
5414         PR target/46195
5415         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
5416         (ix86_compat_aligned_value_p): This.
5417         (ix86_old_function_arg_boundary): Renamed to ...
5418         (ix86_compat_function_arg_boundary): This.  Updated.
5419         (ix86_contains_aligned_value_p): New.
5420         (ix86_function_arg_boundary): Align long double parameters on
5421         stack to 4byte in 32bit.
5422
5423 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
5424
5425         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
5426         * c-parser.c (c_parser_objc_at_property_declaration): Removed
5427         parsing of RID_COPIES and RID_IVAR.  Updated call to
5428         objc_add_property_declaration.
5429         * c-typecheck.c (build_component_ref): Call
5430         objc_maybe_build_component_ref instead of objc_build_setter_call.
5431         Use objc_is_property_ref to improve Objective-C checks.
5432         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
5433         of objc_build_getter_call.
5434
5435 2010-10-29  Paul Koning  <ni1d@arrl.net>
5436
5437         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5438         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
5439         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
5440         (REG_OK_STRICT): Move description.
5441
5442 2010-10-29  Paul Koning  <ni1d@arrl.net>
5443
5444         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
5445
5446 2010-10-29  Paul Koning  <ni1d@arrl.net>
5447
5448         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
5449
5450 2010-10-29  Paul Koning  <ni1d@arrl.net>
5451
5452         PR/41822
5453         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
5454
5455 2010-10-29  Richard Henderson  <rth@redhat.com>
5456
5457         PR rtl-opt/46226
5458         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
5459         for asm goto.
5460
5461 2010-10-29  Paul Koning  <ni1d@arrl.net>
5462
5463         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
5464         register to register move.
5465
5466 2010-10-29  Paul Koning  <ni1d@arrl.net>
5467
5468         * config/pdp11/pdp11.c (print_operand_address): Correct handling
5469         of integer constant addresses, delete vax-only logic.
5470
5471 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5472
5473         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
5474         a conditional expression.
5475
5476 2010-10-29  Paul Koning  <ni1d@arrl.net>
5477
5478         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
5479         instruction encoding.
5480
5481 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
5482             Andrew Pinski  <pinskia@gmail.com>
5483
5484         * tree.h (build_vector_from_val): Declare.
5485         * tree.c (build_vector_from_val): New function.
5486         * c-typeck.c (build_binary_op): Handle vector shifting.
5487         * doc/extend.texi: Description of the vector shifting operation.
5488
5489 2010-10-29  Paul Koning  <pkoning@equallogic.com>
5490
5491         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
5492         pdp11_secondary_memory_needed): Declare.
5493         * config/pdp11/predicates.md (float_operand): New predicate.
5494         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
5495         (cbranchdf4, movdf): Change predicate.
5496         (movsf): Handle FPU register case.
5497         (truncdfsf2, extendsfdf2): Add FPU register case.
5498         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
5499         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
5500         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5501         (pdp11_register_move_cost): Update cost matrix.
5502         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
5503         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
5504         pdp11_secondary_memory_needed): New function.
5505         (pdp11_return_in_memory): Add other float types.
5506         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
5507         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
5508         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
5509         REGISTER_MOVE_COST): Delete.
5510         (BASE_RETURN_VALUE_REG): Add other float types.
5511
5512 2010-10-29  Nick Clifton  <nickc@redhat.com>
5513
5514         * doc/invoke.texi: Document -mam34 and -mtune options.
5515         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
5516         (mn10300_tune_cpu): New variable.
5517         (mn10300_handle_option): Handle -mam34 and -mtune options.
5518         (mn10300_option_override): Convert tune string into tune cpu variable.
5519         (mn10300_legitimate_constant_p): Delete unused local variable.
5520         (is_load_insn): New function.
5521         (is_store_insn): New function.
5522         (mn10300_adjust_schedule_cost): New function.
5523         (TARGET_SCHED_ADJUST_COST): Define.
5524         * config/mn10300/mn10300.opt (mam34): New option.
5525         (mtune): New option.
5526         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
5527         (enum processor_type): Add AM34.
5528         (TARGET_AM34): Define.
5529         * config/mn10300/mn10300.md (attr cpu): Add am34.
5530         Add pipeline description.
5531         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
5532         Remove unneeded alternatives.  Add timing attribute.
5533         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
5534         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
5535         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
5536         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
5537         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
5538         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
5539         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
5540         float_conditional_branch, jump, indirect_jump, tablejump,
5541         call_internal, call_value_internal, zero_extendqisi2_am33,
5542         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
5543         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
5544         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
5545         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
5546         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
5547         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
5548         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
5549         return_internal_regs, store_movm, return, call_next_insn):
5550         Add timing attribute.
5551         (am33_subsi3): Add missing clobber of CC_REG.
5552         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
5553         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
5554         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
5555         extendqisi2): Fix predicates.
5556         (call_internal, call_internal_value): Separate alternatives.
5557         * config/mn10300/t-mn10300: Add AM34 multilib.
5558
5559 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
5560
5561         * config/sh/sh.c (sh_promote_function_mode): Use
5562         default_promote_function_mode if !sh_promote_prototypes.
5563
5564 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
5565
5566         * recog.c (split_all_insns): Remove dead code.
5567
5568 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5569
5570         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5571
5572 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5573
5574         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5575         (FUNCTION_ARG_ADVANCE): Delete.
5576         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
5577         functions.
5578         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
5579         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5580         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5581
5582 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5583
5584         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
5585         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5586         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5587         Take a const_tree and a bool.
5588         (mcore_function_arg_advance): New function.
5589         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5590
5591 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5592
5593         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
5594         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5595         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
5596         Take a const_tree and a bool.
5597         (mcore_function_arg_advance): New function.
5598         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5599
5600 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5601
5602         * config/h8300/h8300-protos.h (function_arg): Delete.
5603         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5604         * config/h8300/h8300.c (function_arg): Rename to...
5605         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
5606         a bool.
5607         (h8300_function_arg_advance): New function.
5608         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5609
5610 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5611
5612         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
5613         to...
5614         * config/arc/arc.c (arc_function_arg): ...here and...
5615         (arc_function_arg_advance): ...here.  New functions.
5616         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5617
5618 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5619
5620         * config/crx/crx-protos.h (crx_function_arg): Delete.
5621         (crx_function_arg_advance): Delete.
5622         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5623         * config/crx/crx.c (crx_function_arg): Make static.  Take a
5624         const_tree and a bool.
5625         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
5626         (enough_regs_for_param): Take a const_tree.
5627         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5628
5629 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5630
5631         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
5632         (m68hc11_function_arg_advance): Delete.
5633         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
5634         (FUNCTION_ARG_ADVANCE): Delete.
5635         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
5636         Take a const_tree and a bool.
5637         (m68hc11_function_arg_advance): Likewise.
5638         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5639
5640 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5641
5642         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
5643         (xstormy16_function_arg_advance): Delete.
5644         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
5645         (FUNCTION_ARG_ADVANCE): Delete.
5646         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
5647         Take a const_tree and a bool.
5648         (xstormy16_function_arg_advance): Likewise.  Return void, updating
5649         the CUM parameter instead.
5650         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5651
5652 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5653
5654         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
5655         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5656         (MOXIE_FUNCTION_ARG_SIZE): Move to...
5657         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
5658         (moxie_function_arg): Make static.  Take a const_tree and a bool.
5659         (moxie_function_arg_advance): New function.
5660         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5661
5662 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5663
5664         * config/mn10300/mn10300-protos.h (function_arg): Delete.
5665         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
5666         (FUNCTION_ARG_ADVANCE): Delete.
5667         * config/mn10300/mn10300.c (function_arg): Rename to...
5668         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
5669         and a bool.
5670         (mn10300_function_arg_advance): New function.
5671         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5672
5673 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5674
5675         * config/iq2000/iq2000-protos.h (function_arg): Delete.
5676         (function_arg_advance): Delete.
5677         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5678         * config/iq2000/iq2000.c (function_arg): Rename to...
5679         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
5680         a bool.
5681         (function_arg_advance): Rename to...
5682         (iq2000_function_arg_advance): ...this.  Make static.  Take a
5683         const_tree and a bool.
5684         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
5685         iq2000_function_arg.
5686         (iq2000_pass_by_reference): Call iq2000_function_arg).
5687         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5688
5689 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5690
5691         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
5692         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5693         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
5694         const_tree.
5695         (fr30_function_arg): New function.
5696         (fr30_function_arg_advance): New function.
5697         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5698
5699 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
5700
5701         * config/frv/frv-protos.h (frv_function_arg): Delete.
5702         (frv_function_arg_advance): Delete.
5703         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5704         * config/frv/frv.c (frv_function_arg): Rename to...
5705         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
5706         (frv_function_arg, frv_function_incoming_arg): New functions.
5707         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
5708         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5709         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5710
5711 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
5712
5713         PR target/46153
5714         * config/i386/sse.md (sse_movhlps_exp): Use destination
5715         returned from ix86_fixup_binary_operands to expand insn.
5716         (sse_movlhps_exp): Ditto.
5717         (sse_loadhps_exp): Ditto.
5718         (sse_loadlps_exp): Ditto.
5719         (sse2_loadhpd_exp): Ditto.
5720         (sse2_loadlpd_exp): Ditto.
5721
5722 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
5723
5724         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
5725         constants in thumb2.
5726
5727 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
5728
5729         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
5730         arithmetics in masking operations.
5731         (contains_muldiv): Likewise.
5732         (try_combine): Likewise.
5733         (find_split_point): Likewise.
5734         (combine_simplify_rtx): Likewise.
5735         (simplify_if_then_else): Likewise.
5736         (simplify_set): Likewise.
5737         (expand_compound_operation): Likewise.
5738         (expand_field_assignment): Likewise.
5739         (make_extraction): Likewise.
5740         (extract_left_shift): Likewise.
5741         (make_compound_operation): Likewise.
5742         (force_to_mode): Likewise.
5743         (make_field_assignment): Likewise.
5744         (reg_nonzero_bits_for_combine): Likewise.
5745         (simplify_shift_const_1): Likewise.
5746         (simplify_comparison): Likewise.
5747
5748 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
5749
5750         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
5751         (ia64_function_arg_advance): Delete.
5752         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
5753         (FUNCTION_ARG_ADVANCE): Delete.
5754         * config/ia64/ia64.c (ia64_function_arg): Rename to...
5755         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
5756         bool arguments.
5757         (ia64_function_arg, ia64_function_incoming_arg): New functions.
5758         (ia64_function_arg_advance): Make static.  Take a const_tree and
5759         a bool.
5760         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5761         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5762
5763 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
5764
5765         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
5766         (TARGET_GET_RAW_ARG_MODE): New.
5767         * doc/tm.texi: Regenerate.
5768         * target.def (get_raw_result_mode): New.
5769         (get_raw_arg_mode): New.
5770         * targhooks.c (default_get_reg_raw_mode): New.
5771         * targhooks.h (default_get_reg_raw_mode): New.
5772         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
5773         (apply_result_size): Ditto.
5774         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
5775         (TARGET_GET_RAW_RESULT_MODE): Define.
5776         (TARGET_GET_RAW_ARG_MODE): Ditto.
5777
5778 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5779
5780         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
5781         for newer Solaris 10 release.
5782         (sparc_fallback_frame_state): Likewise.
5783
5784 2010-10-27  Jason Merrill  <jason@redhat.com>
5785
5786         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
5787         variables sooner.
5788
5789 2010-10-27  Jie Zhang  <jie@codesourcery.com>
5790             Maxim Kuvyrkov  <maxim@codesourcery.com>
5791
5792         * haifa-sched.c (ISSUE_POINTS): Remove.
5793         (max_issue): Don't issue more than issue_rate instructions.
5794
5795 2010-10-27  Ian Lance Taylor  <iant@google.com>
5796
5797         PR target/46197
5798         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
5799         (split_stack_return): Replace UNSPEC_STACK_CHECK with
5800         UNSPECV_SPLIT_STACK_RETURN.
5801
5802 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
5803
5804         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
5805
5806         * config/i386/i386.c (block_info): New.
5807         (BLOCK_INFO): Likewise.
5808         (call_avx256_state): Likewise.
5809         (check_avx256_stores): Likewise.
5810         (move_or_delete_vzeroupper_2): Likewise.
5811         (move_or_delete_vzeroupper_1): Likewise.
5812         (move_or_delete_vzeroupper): Likewise.
5813         (use_avx256_p): Likewise.
5814         (function_pass_avx256_p): Likewise.
5815         (flag_opts): Add -mvzeroupper.
5816         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
5817         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
5818         is disabled.
5819         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
5820         generate vzeroupper.
5821         (init_cumulative_args): Add an int to indicate caller.  Set
5822         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
5823         based on return type.
5824         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
5825         caller_pass_avx256_p based on argument type.
5826         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
5827         is used, but not returned by caller.
5828         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
5829         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
5830         is used.
5831         (ix86_minimum_alignment): Likewise.
5832         (ix86_expand_special_args_builtin): Set target to
5833         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
5834         (ix86_reorg): Run the vzeroupper optimization if needed.
5835
5836         * config/i386/i386.h (ix86_args): Add caller.
5837         (INIT_CUMULATIVE_ARGS): Updated.
5838         (machine_function): Add use_vzeroupper_p, use_avx256_p,
5839         caller_pass_avx256_p, caller_return_avx256_p,
5840         callee_pass_avx256_p and callee_return_avx256_p.
5841
5842         * config/i386/i386.opt (-mvzeroupper): New.
5843
5844         * config/i386/predicates.md (vzeroupper_operation): Removed.
5845
5846         * config/i386/sse.md (avx_vzeroupper): Removed.
5847         (*avx_vzeroupper): Removed.
5848         (avx_vzeroupper): New.
5849
5850         * doc/invoke.texi: Document -mvzeroupper.
5851
5852 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5853
5854         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
5855         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
5856         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
5857
5858 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
5859             Olivier Hainque  <hainque@adacore.com>
5860
5861         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
5862         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
5863         fs->signal_frame instead.
5864
5865 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5866
5867         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
5868         parsing of RID_COPIES and RID_IVAR.
5869
5870 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5871
5872         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
5873         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
5874         Do not use objc_set_property_attr, but use local variables
5875         instead.  Detect repeated usage of setter, getter and ivar
5876         attributes.  Improved error processing when a setter name does not
5877         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
5878         that the token is a keyword.  Updated call to
5879         objc_add_property_declaration.
5880
5881 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
5882
5883         * c-parser.c (c_parser_objc_at_property): Renamed to
5884         c_parser_objc_at_property_declaration.  Updated calls to
5885         objc_add_property_variable, now objc_add_property_declaration.
5886         Code rewritten to be much more robust in recovering from syntax
5887         errors.  Added comments.
5888         (c_parser_objc_property_attrlist): Removed.
5889         (c_parser_external_declaration): Updated calls to
5890         c_parser_objc_at_property, now
5891         c_parser_objc_at_property_declaration.
5892         (c_parser_objc_methodprotolist): Same change.
5893
5894 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5895
5896         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
5897
5898 2010-10-26  Jan Hubicka  <jh@suse.cz>
5899
5900         * ipa.c (process_references): Enqueue all referenced nodes;
5901         mark as reachable only non-external nodes.
5902         (cgraph_remove_unreachable_nodes): All referenced nodes should
5903         be enqueued; remove bogues node->needed check.
5904
5905 2010-10-26  Jan Hubicka  <jh@suse.cz>
5906
5907         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
5908         to represent OMP.
5909
5910 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5911
5912         * config/i386/i386.md (split_stack_return): Replace
5913         unspec_volatile with unspec.
5914
5915 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
5916
5917         * doc/install.texi: Fix typo in --with-sysroot description.
5918
5919 2010-10-26  Jan Hubicka  <jh@suse.cz>
5920
5921         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
5922         Use info provided by linker plugin.
5923
5924 2010-10-26  Jason Merrill  <jason@redhat.com>
5925
5926         * varasm.c (constructor_static_from_elts_p): Don't require a
5927         CONSTRUCTOR to have elements to be suitable for static
5928         initialization.  Allow ARRAY_TYPE as well.
5929
5930 2010-10-26  Jan Hubicka  <jh@suse.cz>
5931
5932         PR middle-end/45736
5933         * cgraph.c (cgraph_set_readonly_flag): Rename to...
5934         (cgraph_set_const_flags) ... this one; get also looping argument;
5935         clear constructor/destructor flags.
5936         (cgraph_set_pure_flag): Likewise.
5937         (cgraph_set_looping_const_or_pure_flag): Remove.
5938         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
5939         to optimize away static ctors/dtors; it does not work on inline clones;
5940         external functions can always be rmeoved.
5941         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
5942         inline clones; in LTO external functions always can go.
5943         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
5944         (cgraph_mark_address_taken_node): Assert that we are not taking
5945         address of inline clone.
5946         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
5947         external functions.
5948         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
5949         address taken.
5950         (ipcp_initialize_node_lattices): Only local functions can be
5951         handled without cloning.
5952         * cgraph.h (cgraph_set_readonly_flag,
5953         cgraph_set_looping_const_or_pure_flag): Remove.
5954         (cgraph_set_const_flag): Declare.
5955         (cgraph_set_pure_flag): Update.
5956         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
5957         flags setting code.
5958         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
5959         look at inline clones; fix handling of external definitions.
5960         (cgraph_postorder): Do not look at inline clones in the first pass.
5961         (function_and_variable_visibility): Drop constructors/destructor
5962         flags at pure and const functions.
5963         * tree-profile.c (tree_profiling): Update.
5964         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
5965         address taken; external functions do not account to whole program size.
5966         (cgraph_decide_inlining): Likewise; do not try to inline
5967         functions already inlined.
5968
5969 2010-10-26  Jie Zhang  <jie@codesourcery.com>
5970
5971         * doc/invoke.texi: Improve documentation of
5972         -fstrict-volatile-bitfields.
5973
5974 2010-10-26  Ira Rosen  <irar@il.ibm.com>
5975
5976         PR tree-optimization/46167
5977         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
5978         is basic block for the statement.
5979
5980 2010-10-26  Paul Koning  <ni1d@arrl.net>
5981
5982         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
5983         current definition of struct_real_format.
5984
5985 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
5986
5987         PR target/44948
5988         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
5989         (ix86_function_arg_boundary): Always align parameters on stack
5990         in 64bit and align parameters with alignment >= 16byte on stack
5991         in 32bit.  Warn alignment change.
5992
5993 2010-10-26  Ian Lance Taylor  <iant@google.com>
5994
5995         PR middle-end/45687
5996         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
5997         offset.
5998
5999 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
6000
6001         Implement opaque-enum-specifiesr for C++0x
6002         * tree.h (ENUM_IS_OPAQUE): New.
6003         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
6004
6005 2010-10-26  Jie Zhang  <jie@codesourcery.com>
6006
6007         * stor-layout.c (layout_decl): Use the field's type to
6008         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
6009         * config/arm/arm.c (arm_override_options): Default to
6010         -fstrict-volatile-bitfields.
6011
6012 2010-10-25  Paul Koning  <ni1d@arrl.net>
6013
6014         * config/pdp11/pdp11.md: Add define_constants for register
6015         numbers, branch offset limits.
6016         * config/pdp11/pdp11.c: Use named constants instead of numbers.
6017         * config/pdp11.pdp11.h: Ditto.
6018
6019 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
6020
6021         * configure.ac: Use $cpu_type instead of $target to define the nop.
6022         * configure: Regenerate.
6023
6024 2010-10-25  Jie Zhang  <jie@codesourcery.com>
6025
6026         * combine.c (try_combine): If insns need to be kept around, check that
6027         they can be copied in the merged instruction.
6028
6029 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6030
6031         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
6032         has been modified.
6033         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
6034         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
6035         it has been modified.
6036
6037 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6038
6039         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
6040
6041 2010-10-24  Paul Koning  <ni1d@arrl.net>
6042
6043         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
6044         * config/pdp11/pdp11.c (output_jump): Ditto.
6045
6046 2010-10-24  Ian Lance Taylor  <iant@google.com>
6047
6048         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
6049
6050 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
6051
6052         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
6053         least one insn with a locus corresponding to an edge's goto_locus,
6054         disregard non-fallthru edges to the exit block and merge the blocks
6055         created for the same goto_locus.
6056
6057 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
6058
6059         * gcc.c (n_switches_alloc_debug_check): New.
6060         (set_option_handlers): New.
6061         (process_command): Use set_option_handlers.
6062         (do_self_spec): Pass spec-generated options through option handlers.
6063         (main): Also save and restore n_switches_alloc when swapping
6064         switch arrays.
6065
6066 2010-10-23  Richard Henderson  <rth@redhat.com>
6067
6068         PR target/46144
6069         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
6070         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
6071         Honor matching operands when splitting to XOR.
6072
6073 2010-10-23  Ian Lance Taylor  <iant@google.com>
6074
6075         * tree-vrp.c (extract_range_from_binary_expr): If
6076         flag_non_call_exceptions don't eliminate division by zero.
6077         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
6078
6079 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
6080
6081         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
6082         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
6083         __ORDER_PDP_ENDIAN__.
6084         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6085         (struct DWstruct): Define based on __BYTE_ORDER__.
6086         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6087         (struct INTstruct): Define based on __BYTE_ORDER__.
6088         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6089         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
6090         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
6091         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6092         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6093         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6094         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6095         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6096         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6097         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6098         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6099         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6100         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6101         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6102         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6103         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6104         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6105         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6106         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
6107         * doc/tm.texi: Regenerate.
6108         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
6109         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
6110
6111 2010-10-23  Jie Zhang  <jie@codesourcery.com>
6112
6113         PR rtl-optimization/37360
6114         * config/mips/mips.c (cached_can_issue_more): New local variable.
6115         (mips_sched_reorder_1): New.
6116         (mips_sched_reorder): Use mips_sched_reorder_1.
6117         (mips_sched_reorder2): New.
6118         (mips_variable_issue): Set cached_can_issue_more.
6119         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
6120         instead of mips_sched_reorder.
6121
6122         Revert:
6123         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
6124         PR rtl-optimization/37360
6125         * haifa-sched.c (max_issue): Do not assert that we never issue more
6126         insns than issue_rate.  Add comment.
6127
6128 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
6129
6130         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
6131         location info of the expression.
6132
6133 2010-10-22  DJ Delorie  <dj@redhat.com>
6134
6135         * doc/extend.texi (Named Address Spaces): Document the M32C named
6136         address space.
6137
6138         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
6139         __far address space.
6140         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
6141         "__far" address space for R8C and M16C processor variants.
6142         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
6143         (far_addr_space_p): New.
6144         (encode_pattern_1): Add sign and zero extend support.
6145         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
6146         (m32c_extra_constraint_p2): Add SF constraint.
6147         (m32c_legitimate_address_p): Support __far addresses.
6148         (m32c_addr_space_pointer_mode): New.
6149         (m32c_addr_space_address_mode): New.
6150         (m32c_addr_space_legitimate_address_p): New.
6151         (m32c_addr_space_legitimize_address): New.
6152         (m32c_addr_space_subset_p): New.
6153         (m32c_addr_space_convert): New.
6154         (conversions): Add __far operand patterns.
6155         (m32c_prepare_move): Force constants into registers for __far moves.
6156         (m32c_split_move): __far moves are always split.
6157         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
6158         * config/m32c/mov.md (mov<mode>_far_op1): New.
6159         (mov<mode>_far_op2): New.
6160         (movqi_op): Add __far (SF) support.
6161         (movhi_op): Likewise.
6162         (movsi_splittable): Split A1A0 also.
6163
6164 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6165             Andrew Pinski  <pinskia@gmail.com>
6166
6167         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
6168         * doc/extend.texi: New paragraph
6169
6170 2010-10-22  Paul Koning  <ni1d@arrl.net>
6171
6172         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
6173
6174 2010-10-22  DJ Delorie  <dj@redhat.com>
6175
6176         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
6177
6178 2010-10-22  Paul Koning  <ni1d@arrl.net>
6179
6180         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
6181
6182 2010-10-22  Richard Henderson  <rth@redhat.com>
6183
6184         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
6185         cases for __builtin_fma and __builtin_fmaf.
6186
6187 2010-10-22  Richard Henderson  <rth@redhat.com>
6188
6189         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
6190         NEG+USE for vectors as well.
6191         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
6192         and splitter.
6193
6194 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6195
6196         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
6197         SWITCH_CURTAILS_COMPILATION): Remove.
6198         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
6199         * doc/tm.texi: Regenerate.
6200         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
6201
6202 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6203
6204         * config/i386/bdver1.md: New file.
6205         * config/i386/i386.md (include "bdver1.md"): Invoke the
6206         pipeline description for bdver1.
6207         (x86_sahf_1): Add "bdver1_decode" attribute.
6208         (*cmpfp_i_mixed): Likewise.
6209         (*cmpfp_i_sse): Likewise.
6210         (*cmpfp_i_i387): Likewise.
6211         (*cmpfp_iu_mixed): Likewise.
6212         (*cmpfp_iu_sse): Likewise.
6213         (*cmpfp_iu_387): Likewise.
6214         (*swap<mode>,*swap<mode>_1): Likewise.
6215         (fixuns_trunc<mode>hi2): Likewise.
6216         (fix_trunc<mode>si_sse): Likewise.
6217         (x86_fnstcw_1): Likewise.
6218         (x86_fldcw_1): Likewise.
6219         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
6220         (*floatsi<mode>2_vector_mixed): Likewise.
6221         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
6222         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
6223         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
6224         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
6225         (*floatsi<mode>2_vector_sse): Likewise.
6226         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
6227         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
6228         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
6229         (*mul<mode>3_1): Likewise.
6230         (*mulsi3_1_zext): Likewise.
6231         (*mulhi3_1): Likewise.
6232         (*mulqi3_1): Likewise.
6233         (*<u>mul<mode><dwi>3_1): Likewise.
6234         (*<u>mulqihi3_1): Likewise.
6235         (*<s>muldi3_highpart_1): Likewise.
6236         (*<s>mulsi3_highpart_1): Likewise.
6237         (*<s>mulsi3_highpart_zext): Likewise.
6238         (x86_64_shld): Likewise.
6239         (x86_shld): Likewise.
6240         (x86_64_shrd): Likewise.
6241         (x86_shrd): Likewise.
6242         (sqrtxf2): Likewise.
6243         (sqrt_extend<mode>xf2_i387): Likewise.
6244         (*sqrt<mode>2_sse): Likewise.
6245         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
6246         (sse_cvtsi2ssq): Likewise.
6247         (sse_cvtss2si): Likewise.
6248         (sse_cvtss2si_2): Likewise.
6249         (sse_cvtss2siq): Likewise.
6250         (sse_cvtss2siq_2): Likewise.
6251         (sse_cvttss2si): Likewise.
6252         (sse_cvttss2siq): Likewise.
6253         (sse2_cvtpi2pd): Likewise.
6254         (sse2_cvttpd2pi): Likewise.
6255         (sse2_cvtsi2sd): Likewise.
6256         (sse2_cvtsi2sdq): Likewise.
6257         (sse2_cvtsd2si): Likewise.
6258         (sse2_cvtsd2si_2): Likewise.
6259         (sse2_cvtsd2siq): Likewise.
6260         (sse2_cvtsd2siq_2): Likewise.
6261         (sse2_cvttsd2si): Likewise.
6262         (sse2_cvttsd2siq): Likewise.
6263         (*sse2_cvtpd2dq): Likewise.
6264         (*sse2_cvttpd2dq): Likewise.
6265         (sse2_cvtsd2ss): Likewise.
6266         (sse2_cvtss2sd): Likewise.
6267         (*sse2_cvtpd2ps): Likewise.
6268         (sse2_cvtps2pd): Likewise.
6269
6270 2010-10-22  Richard Guenther  <rguenther@suse.de>
6271
6272         PR middle-end/46137
6273         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
6274         remove the virtual operands if they are not needed.
6275
6276 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
6277
6278         * config/i386/i386.c (processor_costs bdver1_cost): Update
6279         insn costs and architectural parameters for bdver1.
6280
6281 2010-10-22  Richard Guenther  <rguenther@suse.de>
6282
6283         * gimple.h (gimple_register_canonical_type): Declare.
6284         * gimple.c (gimple_canonical_types): New global hashtable.
6285         (struct gimple_type_leader_entry_s): New type.
6286         (gimple_type_leader): New global cache.
6287         (gimple_lookup_type_leader): New function.
6288         (gtc_visit): Query the proper cache.
6289         (gimple_types_compatible_p): Likewise.
6290         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
6291         (gimple_canonical_type_eq): New function.
6292         (gimple_register_canonical_type): Likewise.
6293         (print_gimple_types_stats): Adjust for gimple_canonical_types.
6294         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
6295         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
6296         gimple_types_compatible_p for LTO.
6297
6298 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
6299
6300         PR target/46098
6301         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6302         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6303         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6304         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6305         (<sse>_movu<ssemodesuffix>): New expander.
6306         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6307         (avx_movdqu<avxmodesuffix>): New expander.
6308         (*sse2_movdqu): Rename from sse2_movdqu.
6309         (sse2_movdqu): New expander.
6310
6311 2010-10-22  Richard Guenther  <rguenther@suse.de>
6312
6313         PR tree-optimization/45720
6314         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
6315         Handle negative step.
6316         (vect_enhance_data_refs_alignment): Likewise.
6317         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
6318         (vect_create_cond_for_align_checks): Likewise.
6319         (vect_create_cond_for_alias_checks): Likewise.
6320
6321 2010-10-22  Ira Rosen  <irar@il.ibm.com>
6322
6323         PR tree-optimization/46126
6324         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
6325         vectorizable_shift in case of basic block vectorization.
6326
6327 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
6328
6329         * target.h (enum opt_levels, struct default_options): New.
6330         * target.def (handle_ofast): Remove hook.
6331         (target_option.optimization): Change to
6332         target_option.optimization_table.
6333         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
6334         TARGET_OPTION_OPTIMIZATION_TABLE.
6335         (CAN_DEBUG_WITHOUT_FP): Remove.
6336         * doc/tm.texi: Regenerate.
6337         * opts.c (maybe_default_option, maybe_default_options,
6338         default_options_table): New.
6339         (default_options_optimization): Take extra parameters.  Don't
6340         assert that global_options and global_options_set are in use.  Use
6341         maybe_default_options.
6342         (decode_options): Pass extra parameters to
6343         default_options_optimization.
6344         * common.opt (falign-loops): Use value 0 with Var.
6345         (frerun-cse-after-loop, ftree-ter): Remove Init.
6346         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
6347         TARGET_OPTION_OPTIMIZATION): Remove.
6348         * targhooks.c (empty_optimization_table): New.
6349         * targhooks.h (empty_optimization_table): Declare.
6350         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
6351         * config/alpha/alpha.c (alpha_option_optimization_table,
6352         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6353         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
6354         * config/arm/arm.c (arm_option_optimization: Change to
6355         arm_option_optimization_table.
6356         (TARGET_OPTION_OPTIMIZATION): Change to
6357         TARGET_OPTION_OPTIMIZATION_TABLE.
6358         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
6359         * config/avr/avr.c (avr_option_optimization_table,
6360         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6361         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
6362         * config/cris/cris.c (cris_option_optimization): Change to
6363         cris_option_optimization_table.
6364         (TARGET_OPTION_OPTIMIZATION): Change to
6365         TARGET_OPTION_OPTIMIZATION_TABLE.
6366         * config/crx/crx.c (crx_option_optimization): Change to
6367         crx_option_optimization_table.
6368         (TARGET_OPTION_OPTIMIZATION): Change to
6369         TARGET_OPTION_OPTIMIZATION_TABLE.
6370         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6371         * config/fr30/fr30.c (fr30_option_optimization_table,
6372         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6373         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
6374         * config/frv/frv.c (frv_option_optimization_table,
6375         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6376         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
6377         * config/h8300/h8300.c (h8300_option_optimization): Change to
6378         h8300_option_optimization_table.
6379         (TARGET_OPTION_OPTIMIZATION): Change to
6380         TARGET_OPTION_OPTIMIZATION_TABLE.
6381         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6382         * config/i386/i386.c (ix86_option_optimization): Change to
6383         ix86_option_optimization_table.
6384         (TARGET_OPTION_OPTIMIZATION): Change to
6385         TARGET_OPTION_OPTIMIZATION_TABLE.
6386         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
6387         as initializer.
6388         * config/ia64/ia64.c (ia64_option_optimization): Change to
6389         ia64_option_optimization_table.
6390         (TARGET_OPTION_OPTIMIZATION): Change to
6391         TARGET_OPTION_OPTIMIZATION_TABLE.
6392         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
6393         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
6394         initializer.
6395         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
6396         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6397         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6398         * config/lm32/lm32.c (lm32_option_optimization_table,
6399         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6400         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
6401         * config/m32r/m32r.c (m32r_option_optimization): Change to
6402         m32r_option_optimization_table.
6403         (TARGET_OPTION_OPTIMIZATION): Change to
6404         TARGET_OPTION_OPTIMIZATION_TABLE.
6405         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
6406         CAN_DEBUG_WITHOUT_FP): Remove.
6407         * config/mcore/mcore.c (mcore_option_optimization): Change to
6408         mcore_option_optimization_table.
6409         (TARGET_OPTION_OPTIMIZATION): Change to
6410         TARGET_OPTION_OPTIMIZATION_TABLE.
6411         * config/mep/mep.c (mep_option_optimization): Change to
6412         mep_option_optimization_table.
6413         (TARGET_OPTION_OPTIMIZATION): Change to
6414         TARGET_OPTION_OPTIMIZATION_TABLE.
6415         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
6416         * config/microblaze/microblaze.c
6417         (microblaze_option_optimization_table,
6418         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6419         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
6420         * config/mips/mips.c (mips_option_optimization_table,
6421         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6422         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
6423         * config/mmix/mmix.c (mmix_option_optimization): Change to
6424         mmix_option_optimization_table.
6425         (TARGET_OPTION_OPTIMIZATION): Change to
6426         TARGET_OPTION_OPTIMIZATION_TABLE.
6427         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
6428         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
6429         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6430         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
6431         * config/pa/pa.c (pa_option_optimization_table,
6432         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6433         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6434         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
6435         pdp11_option_optimization_table.
6436         (TARGET_OPTION_OPTIMIZATION): Change to
6437         TARGET_OPTION_OPTIMIZATION_TABLE.
6438         * config/picochip/picochip.c (picochip_option_optimization_table,
6439         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6440         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
6441         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
6442         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6443         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
6444         * config/rx/rx.c (rx_option_optimization_table,
6445         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6446         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
6447         * config/s390/s390.c (s390_option_optimization): Change to
6448         s390_option_optimization_table.
6449         (s390_option_override): Update comment.
6450         (TARGET_OPTION_OPTIMIZATION): Change to
6451         TARGET_OPTION_OPTIMIZATION_TABLE.
6452         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
6453         * config/score/score.c (score_option_optimization_table,
6454         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6455         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
6456         * config/sh/sh.c (sh_option_optimization): Change to
6457         sh_option_optimization_table.
6458         (TARGET_OPTION_OPTIMIZATION): Change to
6459         TARGET_OPTION_OPTIMIZATION_TABLE.
6460         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
6461         (sh_option_override, expand_block_move, multcosts, find_barrier,
6462         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
6463         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
6464         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
6465         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
6466         instead of TARGET_SMALLCODE.
6467         * config/sh/sh.opt (mspace): Make into an alias for -Os.
6468         * config/sparc/sparc.c (sparc_option_optimization_table,
6469         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6470         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
6471         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
6472         TARGET_OPTION_OPTIMIZATION_TABLE): New.
6473         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
6474         * config/v850/v850.c (v850_option_optimization): Change to
6475         v850_option_optimization_table.
6476         (TARGET_OPTION_OPTIMIZATION): Change to
6477         TARGET_OPTION_OPTIMIZATION_TABLE.
6478         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
6479         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
6480         xtensa_option_optimization_table.
6481         (TARGET_OPTION_OPTIMIZATION): Change to
6482         TARGET_OPTION_OPTIMIZATION_TABLE.
6483         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
6484
6485 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
6486
6487         Based on the CFString implementation in FSF apple/trunk branch.
6488
6489         * target.def (objc_construct_string): New Hook.
6490         * doc/tm.texi (objc_construct_string): Document.
6491         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
6492         * config/t-darwin: Amend build rules for darwin.o.
6493         * config/darwin.opt: Add cfstrings flags.
6494         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
6495         (darwin_objc_construct_string): New.
6496         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
6497         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
6498         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
6499         (darwin_fold_builtin): Likewise.
6500         (darwin_build_constant_cfstring): Likewise.
6501         (darwin_objc_construct_string): Likewise.
6502         (darwin_cfstring_p): Likewise.
6503         (darwin_enter_string_into_cfstring_table): Likewise.
6504         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
6505         * config/darwin.c (darwin_running_cxx): New var.
6506         (machopic_select_section): Return cfstring_constant_object_section.
6507         (darwin_override_options): Set darwin_running_cxx.
6508         (add_builtin_field_decl): New.
6509         (darwin_init_cfstring_builtins): New.
6510         (darwin_build_constant_cfstring): New.
6511         (darwin_fold_builtin): New.
6512         (cfstring_hash): New.
6513         (cfstring_eq): New.
6514         (darwin_enter_string_into_cfstring_table): New.
6515         * config/darwin-sections.def (cfstring_constant_object_section): New.
6516         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
6517         (TARGET_OBJC_CONSTRUCT_STRING): Define.
6518
6519 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6520
6521         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
6522         TYPE_STUB_DECL instead of TREE_CHAIN.
6523         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
6524         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
6525         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
6526         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
6527         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
6528         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
6529         Likewise.
6530         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
6531
6532 2010-10-22  Jie Zhang  <jie@codesourcery.com>
6533
6534         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
6535         (copy_blkmode_from_reg): Likewise.
6536         (read_complex_part): Likewise.
6537         (expand_expr_real_1): Calculate packedp and pass it to
6538         extract_bit_field.
6539         * expr.h (extract_bit_field): Update declaration.
6540         * calls.c (store_unaligned_arguments_into_pseudos): Update call
6541         to extract_bit_field.
6542         * expmed.c (extract_fixed_bit_field): Update calls to
6543         extract_fixed_bit_field.
6544         (store_split_bit_field): Likewise.
6545         (extract_bit_field_1): Add new argument packedp.
6546         (extract_bit_field): Add new argument packedp.
6547         (extract_fixed_bit_field): Add new argument packedp and let
6548         packed attribute override volatile.
6549         * stmt.c (expand_return): Update call to extract_bit_field.
6550
6551 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6552
6553         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
6554
6555 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6556
6557         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
6558         of gcc_checking_assert.
6559         * sel-sched.c (code_motion_process_successors): Likewise.
6560
6561 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6562
6563         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
6564         when stopping because of a different locus on edge or insn.
6565         (try_optimize_cfg): Add comment.
6566         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
6567         block is a forwarder block, propagate locus on the edge.
6568         (cfg_layout_merge_blocks): Likewise.
6569
6570 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
6571
6572         PR target/45946
6573         * config/i386/i386.md (*pushti2): New insn pattern.
6574         (pushti2 splitter): New insn splitter.
6575         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
6576         DWI mode iterator.
6577
6578 2010-10-21  Paul Koning  <ni1d@arrl.net>
6579
6580         * config/pdp11/pdp11-protos.md (arith_operand,
6581         const_immediate_operand, expand_shift_operand,
6582         immediate15_operand): Delete
6583         * config/pdp11/pdp11.c: Ditto.
6584         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
6585         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6586         EXTRA_CONSTRAINT): Delete.
6587         * config/pdp11/pdp11.md (various): Use standard constraints
6588         instead of removed ones.
6589         * config/pdp11/constraints.md: New file.
6590         * config/pdp11/predicates.md: New file.
6591
6592 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
6593
6594         PR c/45834
6595         * alias.c (true_dependence_1): Remove obsolete check for QImode.
6596         (may_alias_p): Ditto.
6597
6598 2010-10-21  Martin Jambor  <mjambor@suse.cz>
6599
6600         PR tree-optimization/45875
6601         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
6602
6603 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6604
6605         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
6606         variables.
6607         (create_new_def_for): Likewise.
6608
6609 2010-10-21  Nick Clifton  <nickc@redhat.com>
6610
6611         * config/mn10300/mn10300.c: Fold code to 80-character width.
6612         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6613         MEM, CONST_INT and CONST_DOUBLE.
6614         (targetm): Move initialization to end of file.
6615         (print_operand): Rename to mn10300_print_operand.
6616         (print_operand_address): Rename to mn10300_print_operand_address.
6617         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
6618         (expand_prologue): Rename to mn10300_expand_prologue.
6619         (expand_epilogue): Rename to mn10300_expand_epilogue.
6620         (initial_offset): Rename to mn10300_initial_offset.
6621         (function_arg): Rename to mn10300_function_arg.
6622         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
6623         (symbolic_operand): Rename to mn10300_symbolic_operand.
6624         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
6625         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
6626         * config/mn10300/mn10300-protos.h: Update prototypes.
6627         * config/mn10300/mn10300.h: Fold code to 80-character width.
6628         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6629         MEM, CONST_INT and CONST_DOUBLE.
6630         (CPP_SPEC): Move to...
6631         (TARGET_CPU_CPP_BUILTINS): ... here.
6632         * config/mn10300/mn10300.md: Fold code to 80-character width.
6633         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
6634         MEM, CONST_INT and CONST_DOUBLE.
6635
6636 2010-10-21  Ira Rosen  <irar@il.ibm.com>
6637
6638         PR tree-optimization/46049
6639         PR tree-optimization/46052
6640         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
6641         (vect_get_slp_defs): Add arguments.
6642         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
6643         operands to vect_get_slp_defs.
6644         (vectorizable_reduction): Fix comment, pass scalar operands to
6645         vect_get_slp_defs.
6646         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
6647         type to determine number of units in the created vector.
6648         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
6649         (vectorizable_conversion): Fix comment.
6650         (vectorizable_shift): New function.
6651         (vectorizable_operation): Move code that handles shifts to
6652         vectorizable_shift.
6653         (vectorizable_type_demotion): Fix comment, pass scalar operands to
6654         vect_get_slp_defs.
6655         (vectorizable_type_promotion, vectorizable_store): Likewise.
6656         (vectorizable_condition): Fix comment.
6657         (vect_analyze_stmt): Call vectorizable_shift.
6658         (vect_transform_stmt): Likewise.
6659         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
6660         Use it as the operand to create vectors for, except reduction
6661         initial definition and store.  Use operands type.
6662         (vect_get_slp_defs): Add new arguments.  Pass them to
6663          vect_get_constant_vectors.
6664
6665 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6666
6667         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
6668         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
6669         * cfghooks.c (fixup_reorder_chain): Likewise.
6670         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
6671         * cgraph.c (cgraph_add_thunk): Likewise.
6672         (cgraph_create_edge_1): Likewise.
6673         (cgraph_create_virtual_clone): Likewise.
6674         * ddg.c (add_cross_iteration_register_deps): Likewise.
6675         * dwarf2out.c (modified_type_die): Likewise.
6676         * emit-rtl.c (set_mem_alias_set): Likewise.
6677         * ggc-zone.c (zone_allocate_marks): Likewise.
6678         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
6679         * gimple.c (iterative_hash_gimple_type): Likewise.
6680         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
6681         (create_single_exit_edge): Likewise.
6682         * haifa-sched.c (choose_ready): Likewise.
6683         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6684         * passes.c (execute_todo): Likewise.
6685         * sched-ebb.c (begin_schedule_ready): Likewise.
6686         * sel-sched.c (code_motion_process_successors): Likewise.
6687         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
6688         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
6689         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
6690         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
6691         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
6692         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
6693         (ssa_conflicts_add): Likewise.
6694         * tree-ssa-copy.c (replace_exp): Likewise.
6695         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
6696         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
6697         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
6698         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
6699         (compute_antic): Likewise.
6700         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
6701         (add_dependence): Likewise.
6702         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
6703         * tree-vrp.c (supports_overflow_infinity): Likewise.
6704         (make_overflow_infinity, negative_overflow_infinity): Likewise.
6705         (avoid_overflow_infinity, register_new_assert_for): Likewise.
6706         (process_assert_insertions_for): Likewise.
6707         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
6708         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
6709         (intersect_loc_chains, variable_merge_over_cur): Likewise.
6710
6711 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
6712
6713         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
6714         * reload1.c (has_nonexceptional_receiver): Likewise.
6715         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
6716         (create_new_def_for): Likewise.
6717         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
6718         (merge_phi_nodes): Likewise.
6719         (has_abnormal_incoming_edge_p): Delete.
6720
6721 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
6722
6723         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
6724
6725 2010-10-21  Richard Guenther  <rguenther@suse.de>
6726             Michael Matz  <matz@suse.de>
6727
6728         PR tree-optimization/45764
6729         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6730         Adjust initial misalignment for negative DR_STEP.
6731         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
6732         do not have the same alignment over the whole iteration domain.
6733
6734 2010-10-21  Richard Guenther  <rguenther@suse.de>
6735
6736         PR tree-optimization/46111
6737         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
6738
6739 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6740
6741         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
6742
6743 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6744
6745         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
6746         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
6747
6748 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6749
6750         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
6751         signal_frame.
6752         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
6753
6754 2010-10-21  Tristan Gingold  <gingold@adacore.com>
6755
6756         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
6757         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
6758
6759 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6760
6761         * basic-block.h (find_fallthru_edge): Define.
6762         * cfgcleanup.c (merge_blocks_move): Use it.
6763         (try_crossjump_bb): Likewise.
6764         * cfglayout.c (fixup_reorder_chains): Likewise.
6765         (fixup_fallthru_exit_predecessor): Likewise.
6766         * cfgrtl.c (rtl_split_edge): Likewise.
6767         (rtl_verify_flow_info): Likewise.
6768         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6769         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
6770         * ifcvt.c (block_fallthru): Likewise.
6771         * reload1.c (fixup_abnormal_edges): Likewise.
6772         * sched-ebb.c (being_schedule_ready): Likewise.
6773         (schedule_ebb): Likwise.
6774         * sched-rgn.c (find_single_block_region): Likewise.
6775         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
6776         * tree-complex.c (expand_complex_move): Likewise.
6777         * sched-int.h (find_fallthru_edge): Rename to...
6778         (find_fallthru_edge_from): ...this.
6779         * haifa-sched.c (find_fallthru_edge): Rename to...
6780         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
6781         (init_before_recovery): Call find_fallthru_edge_from.
6782         * sel-sched-ir.c (merge_fences): Likewise.
6783         * sel-sched.c (in_fallthru_bb_p): Likewise.
6784         (move_cond_jump): Likewise.
6785
6786 2010-10-20  Paul Koning  <ni1d@arrl.net>
6787
6788         * config/pdp11/pdp11.md (various): Fix conditions on a number of
6789         insn to check for target 11/40 or higher.
6790
6791 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6792
6793         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
6794         bool instead of a tree.
6795         (c_parser_objc_method_decl): Added bool argument.  Updated call to
6796         objc_build_method_signature.
6797         (c_parser_objc_method_definition): Do not call
6798         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
6799         c_parser_objc_method_decl and objc_start_method_definition.
6800         (c_parser_objc_methodproto): Do not call objc_set_method_type.
6801         Updated calls to c_parser_objc_method_type,
6802         c_parser_objc_method_decl and objc_add_method_declaration.
6803
6804 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
6805
6806         PR tree-optimization/45919
6807         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
6808         array members.
6809
6810         PR tree-optimization/46066
6811         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
6812         instead of gsi_last_bb.
6813
6814 2010-10-20  DJ Delorie  <dj@redhat.com>
6815
6816         * config/m32c/m32c.c (m32c_option_override): Always disable
6817         function-cse in 16-bit mode.  Indirect calls are always worse than
6818         direct calls as there is no 16-bit indirect call opcode.
6819         (m32c_override_options_after_change): New, likewise.
6820
6821 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
6822
6823         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
6824         emitting the conditional move in the inner mode of the SUBREG.
6825
6826 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
6827
6828         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
6829         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
6830         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
6831         (ia64_preferred_reload_class): Make static.  Change rclass argument
6832         and result types from enum reg_class to reg_class_t.
6833
6834 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
6835
6836         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
6837         call for single operand expression.
6838
6839 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6840
6841         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
6842         if there is a call statement to pure or const function in the block.
6843
6844 2010-10-20  Paul Koning  <pkoning@equallogic.com>
6845
6846         Fix several build errors for pdp11 target.
6847         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
6848         (cbranchdf4): Conditional on TARGET_FPU.
6849         (movdf): Ditto; correct alternatives check.
6850         (movmemhi): Fix predicate and constraint.
6851         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
6852
6853 2010-10-20  Richard Guenther  <rguenther@suse.de>
6854
6855         PR lto/45667
6856         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
6857         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
6858         (verify_gimple_assign_single): Disable ADDR_EXPR type check
6859         when in LTO.
6860
6861 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
6862
6863         PR fortran/42169
6864         * ira-emit.c (store_can_be_removed_p): Return false instead of
6865         gcc_unreachable.
6866
6867 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
6868
6869         * fold-const.c (fold_binary_loc): New transformation.
6870
6871 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
6872
6873         PR target/46085
6874         * config/i386/sse.md (reduc_splus_v8sf): Updated.
6875         (reduc_splus_v4df): Likewise.
6876
6877 2010-10-20  Richard Guenther  <rguenther@suse.de>
6878
6879         PR tree-optimization/45860
6880         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
6881         conditional store replacement for non-register type stores.
6882
6883 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
6884
6885         * stor-layout.c (skip_simple_constant_arithmetic): New function.
6886         (self_referential_size): Use it instead of skip_simple_arithmetic.
6887
6888 2010-10-20  Olivier Hainque  <hainque@adacore.com>
6889
6890         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
6891         If the current function calls eh_return, claim live all registers
6892         that we need to check for liveness otherwise.
6893
6894 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
6895
6896         * c-decl.c (c_write_global_declarations): Call
6897         objc_write_global_declarations when compiling Objective-C.
6898         * c-lang.c (finish_file): Removed.
6899
6900 2010-10-19  DJ Delorie  <dj@redhat.com>
6901
6902         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
6903         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
6904         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
6905         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
6906         * doc/tm.texi: Regenerate.
6907         * targhooks.h (default_label_align_after_barrier_max_skip,
6908         default_loop_align_max_skip, default_label_align_max_skip,
6909         default_jump_align_max_skip): Declare.
6910         * target.def (label_align_after_barrier_max_skip): New.
6911         (loop_align_max_skip): New.
6912         (label_align_max_skip): New.
6913         (jump_align_max_skip): New.
6914         * system.h (poison): Add those macros to the list.
6915         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
6916         (LOOP_ALIGN_MAX_SKIP): Remove.
6917         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
6918         (JUMP_ALIGN_MAX_SKIP): Remove.
6919         (default_label_align_after_barrier_max_skip): New.
6920         (default_loop_align_max_skip): New.
6921         (default_label_align_max_skip): New.
6922         (default_jump_align_max_skip): New.
6923         (compute_alignments): Use the new hooks.
6924         (shorten_branches): Likewise.
6925
6926 2010-10-19  Richard Henderson  <rth@redhat.com>
6927
6928         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
6929         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
6930         (fma4i_fmadd_<mode>): New.
6931         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
6932         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
6933         standard fma patterns.
6934         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
6935         enable for FMA.
6936         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6937         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
6938         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
6939
6940 2010-10-19  Paul Koning  <pkoning@equallogic.com>
6941
6942         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
6943         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
6944
6945 2010-10-19  Richard Henderson  <rth@redhat.com>
6946
6947         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
6948         (fmadf4, *fmsdf4, *nfmadf4): New.
6949         (fmaxf4, *fmsxf4, *nfmaxf4): New.
6950
6951 2010-10-19  Michael Eager  <eager@eagercon.com>
6952
6953         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
6954         Use sjlj unwind info for exceptions.
6955
6956 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
6957
6958         PR fortran/43414
6959         * dwarf2out.c (add_calling_convention_attribute): Flag main
6960         Fortran subroutine with DW_AT_main_subprogram.
6961
6962 2010-10-19  Nick Clifton  <nickc@redhat.com>
6963
6964         * config/rx/rx.c (rx_function_value): Small integer types are
6965         promoted to SImode.
6966         (rx_promote_function_mode): New function.
6967         (TARGET_PROMOTE_FUNCTION_MODE): Define.
6968
6969 2010-10-19  Nick Clifton  <nickc@redhat.com>
6970
6971         * config/mep/mep.c (mep_print_operand): Use
6972         targetm.strip_name_encoding.
6973         (mep_output_aligned_common): Likewise.
6974
6975 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
6976
6977         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
6978
6979 2010-10-18  Richard Henderson  <rth@redhat.com>
6980
6981         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
6982         (fma (neg a) (neg b) c) and (fma a (neg b) c).
6983
6984 2010-10-18  Richard Henderson  <rth@redhat.com>
6985
6986         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
6987         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
6988         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
6989         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
6990         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
6991         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
6992         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
6993         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
6994         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
6995         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
6996         (bdesc_multi_arg): Remove the corresponding builtins.
6997         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
6998         (UNSPEC_FMA4_FMSUBADD): Remove.
6999         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
7000         * config/i386/sse.md (FMA4MODEF4): Remove.
7001         (FMAMODE): Add.
7002         (fma<mode>4): New expander.
7003         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
7004         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
7005         (*fma4i_fmsub_<mode>): Similarly.
7006         (*fma4i_fnmadd_<mode>): Similarly.
7007         (*fma4i_fnmsub_<mode>): Similarly.
7008         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
7009         with the first operand.
7010         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
7011         of explicit arithmetic.  Macroize with AVXMODEF2P.
7012         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
7013         (xop_frcz<mode>2): Macroize with FMAMODE.
7014         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
7015         the first operand.
7016         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
7017         extra negations.
7018         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
7019         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
7020         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
7021         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
7022         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
7023         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
7024         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
7025         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
7026
7027 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
7028
7029         PR rtl-optimization/45966
7030         * combine.c (try_combine): If added_sets_2, deal with the case
7031         where i0 feeds i1 and i1 feeds i2.
7032
7033 2010-10-18  Jan Hubicka  <jh@suse.cz>
7034
7035         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
7036         preserve flags before trying to guess on visibility.
7037         (varpool_externally_visible_p): New function.
7038         (function_and_variable_visibility): Use it.
7039
7040 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7041
7042         Implemented parsing @synthesize and @dynamic for Objective-C.
7043         * c-parser.c (c_parser_external_declaration): Recognize
7044         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
7045         (c_parser_objc_at_synthesize_declaration): New.
7046         (c_parser_objc_at_dynamic_declaration): New.
7047
7048 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7049
7050         * c-parser.c (c_parser_objc_class_declaration): After finding an
7051         error, parse the whole declaration then reset parser->error.
7052
7053 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7054
7055         PR target/46041
7056         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
7057         * builtins.c (mode_has_fma): Ditto.
7058
7059 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
7060
7061         PR target/36898
7062         PR middle-end/43760
7063         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
7064
7065 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
7066
7067         * config/i386/i386.c (ix86_option_override_internal): Define and
7068         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
7069         default.
7070         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7071         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
7072
7073 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7074
7075         Merge from 'apple/trunk' branch on FSF servers.
7076         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
7077         following Objective-C change:
7078
7079         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
7080
7081         Radar 4301047
7082         * c-parse.in (objc_quals): Build objc qualifier list same way
7083         as gcc-3.3
7084
7085 2010-10-18  Jan Hubicka  <jh@suse.cz>
7086
7087         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
7088         function_and_variable_visibility): Revert accidental commit.
7089
7090 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
7091
7092         Merge from 'apple/trunk' branch on FSF servers.
7093         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
7094         the following Objective-C change:
7095
7096         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
7097
7098         Radar 4204796
7099         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
7100         'volatilized' type used in a typeof operator.
7101
7102 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
7103
7104         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
7105         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
7106         rewrite modelled on gimple_purge_dead_eh_edges.
7107         (gimple_purge_all_dead_abnormal_call_edges): New function.
7108         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
7109         directly instead of through gimple_purge_dead_abnormal_call_edges.
7110         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
7111         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
7112         removed AB side-effects from one of its statements.
7113         (init_pre): Initialize need_ab_cleanup.
7114         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
7115         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
7116
7117 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7118
7119         PR c/46015
7120         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
7121         on computed goto argument.
7122
7123 2010-10-18  Richard Guenther  <rguenther@suse.de>
7124
7125         PR tree-optimization/45967
7126         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
7127         (could_have_pointers): Likewise.
7128         (handle_rhs_call, handle_const_call, handle_pure_call,
7129         find_func_aliases, intra_create_variable_infos): Remove calls to them.
7130         (struct fieldoff): Add must_have_pointers field.
7131         (type_must_have_pointers): New function.
7132         (field_must_have_pointers): Likewise.
7133         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
7134         Adjust field merging.
7135         (create_function_info_for): May-have-pointers of varinfo is
7136         almost always true.
7137         (create_variable_info_for_1): Likewise.
7138
7139 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
7140
7141         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
7142         of operands to vec_concat.
7143
7144 2010-10-18  Richard Guenther  <rguenther@suse.de>
7145
7146         PR lto/44950
7147         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
7148         also clear references to entries of it.
7149
7150 2010-10-18  Andi Kleen  <ak@linux.intel.com>
7151
7152         PR other/43448
7153         * gccbug.in: Remove.
7154         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
7155         (doc, distclean, install-common): Remove reference to gccbug.
7156         * configure: Regenerate.
7157         * configure.ac (all_outputs): Remove gccbug.
7158         * doc/configfiles.texi: Remove references to gccbug.
7159         * doc/sourcebuild.texi: Dito.
7160
7161 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
7162
7163         PR middle-end/46019
7164         * fold-const.c (fold_binary_loc): If integer_pow2p has
7165         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
7166
7167 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7168             Jeremie Salvucci  <jeremie.salvucci@free.fr>
7169
7170         * gengtype.c (verbosity_level): Add variable.
7171         (set_gc_used): Count variables for verbosity.
7172         (close_output_files): Backing up files, counting written ones
7173         verbosily.
7174         (write_types): Count emitted functions for verbosity. Added
7175         debug messages.
7176         (write_enum_defn): Count structures for verbosity. Added debug
7177         messages.
7178         (gengtype_long_options): Add "verbose" & "backupdir".
7179         (print_usage): Ditto.
7180         (main): Verbose display of parsed files.
7181
7182         * gengtype.h (verbosity_level): Add declaration.
7183
7184 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
7185
7186         * gengtype.c (parse_program_options): Add allocation of
7187         plugin_files, and correct test on nb_plugin_files.
7188
7189 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7190
7191         Merge from 'apple/trunk' branch on FSF servers.
7192
7193         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
7194
7195         Radar 4133425
7196         * c-decl.c (undeclared_variable): Issue diagnostic on
7197         private 'ivar' access.
7198
7199 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7200
7201         PR target/46051
7202         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
7203         generated sequence to match *avx_vperm2f128<mode>_nozero.
7204         (vec_interleave_lowv4df): Ditto.
7205         (vec_interleave_highv8sf): Ditto.
7206         (vec_interleave_lowv8sf): Ditto.
7207
7208 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
7209
7210         * libgcov.c (create_file_directory): Enable it for win32 case.
7211         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
7212         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
7213         (GCOV_PREFIX_SKIP): Likewise.
7214
7215 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7216
7217         * doc/objc.texi (GNU Objective-C runtime API): New section.
7218         (Modern GNU Objective-C runtime API): New section.
7219         (Traditional GNU Objective-C runtime API): New section.
7220         (Executing code before main): Mention that this section is
7221         specific to the GNU Objective-C runtime.
7222         (Garbage Collection): Same.
7223
7224 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
7225
7226         * c-parser.c (c_parser_for_statement): Move initialization of
7227         cond and incr before if.
7228
7229 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
7230
7231         * target.def (preferred_output_reload_class): New hook.
7232         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
7233         * doc/tm.texi: Regenerate.
7234         * targhooks.c (default_preferred_output_reload_class): New function.
7235         * targhooks.h (default_preferred_output_reload_class): Declare.
7236         * reload.c (find_dummy_reload): Change rclass argument type from
7237         enum reg_class to reg_class_t. Change this_alternative array type
7238         from enum reg_class to reg_class_t.
7239         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7240         (push_reload): Change preferred_class variable type to reg_class_t.
7241         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
7242         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
7243         argument type from enum reg_class to reg_class_t. Use
7244         HARD_REGISTER_NUM_P predicate.
7245         * recog.h (reg_fits_class_p): Update prototype.
7246
7247         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7248         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
7249         Remove.
7250         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
7251         static. Change regclass argument and result types from enum reg_class
7252         to reg_class_t.
7253         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7254
7255 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
7256
7257         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
7258         visibility enum, and handle @package.
7259
7260 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7261
7262         * doc/objc.texi (What you can and what you cannot do in +load):
7263         Document that sending messages to constant string objects in +load
7264         is not guaranteed to work.
7265
7266 2010-10-16  Jan Hubicka  <jh@suse.cz>
7267
7268         PR middle-end/44206
7269         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
7270         existence of refrences before removing the function.
7271
7272 2010-10-16  Jan Hubicka  <jh@suse.cz>
7273
7274         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
7275         only_called_at_startup and only_called_at_exit.
7276         (cgraph_propagate_frequency): Compute only_called_at_startup and
7277         only_called_at_exit.
7278         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
7279         only_called_at_exit.
7280         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
7281         flags.
7282         * predict.c (compute_function_frequency): Initialize the new flags.
7283
7284 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7285
7286         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
7287         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
7288         on the bounds of its domain.
7289         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
7290
7291 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
7292
7293         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
7294         * config/avr/avr-protos.h (preferred_reload_class): Remove.
7295         * config/avr/avr.c (preferred_reload_class): Remove.
7296         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
7297         * config/pa/pa.c (emit_move_sequence): Update comment
7298         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
7299         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
7300         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
7301         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
7302         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
7303         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
7304         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
7305         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
7306         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
7307         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
7308         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
7309         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
7310         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
7311
7312 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7313
7314         * opts.c (set_fast_math_flags,
7315         set_unsafe_math_optimizations_flags): Make static.
7316         * toplev.h (set_fast_math_flags,
7317         set_unsafe_math_optimizations_flags): Remove prototypes.
7318
7319 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
7320
7321         * config/arm/arm.c (arm_option_optimization): Set
7322         flag_section_anchors to 1 not 2.
7323         * config/i386/i386.c (ix86_option_override_internal): Check
7324         global_options_set.x_flag_zee and
7325         global_options_set.x_flag_omit_frame_pointer.
7326         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
7327         flag_zee to 2.
7328         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7329         global_options_set.x_flag_omit_frame_pointer.
7330         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
7331         opts->x_flag_section_anchors to 1 not 2.
7332         * config/sh/sh.c (sh_option_optimization): Don't set
7333         flag_schedule_insns to 2.
7334         (sh_option_override): Check
7335         global_options_set.x_flag_schedule_insns.
7336         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
7337
7338 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
7339
7340         * configure.ac: Make sure inhibit_libc remains false for mingw targets
7341         as cross.
7342         * configure: Regenerated.
7343
7344 2010-10-15  Xinliang David Li  <davidxl@google.com>
7345
7346         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
7347         function.
7348         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
7349         into a recursive function.
7350
7351 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
7352
7353         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
7354         (*movdfcc_1): ditto.
7355
7356 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7357
7358         * target.def (target_option.init_struct): New hook.
7359         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
7360         * doc/tm.texi: Regenerate.
7361         * hooks.c (hook_void_gcc_optionsp): New.
7362         * hooks.h (hook_void_gcc_optionsp): Declare.
7363         * langhooks-def.h (lhd_init_options_struct): Remove.
7364         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7365         * langhooks.c (lhd_init_options_struct): Remove.
7366         * opts.c (init_options_struct): Also call
7367         targetm.target_option.init_struct.
7368         * config/i386/i386.c (ix86_option_init_struct,
7369         TARGET_OPTION_INIT_STRUCT): New.
7370         (ix86_option_optimization): Move some settings to
7371         ix86_option_init_struct.
7372         * config/pdp11/pdp11.c (pdp11_option_init_struct,
7373         TARGET_OPTION_INIT_STRUCT): New.
7374         (pdp11_option_optimization): Move some settings to
7375         pdp11_option_init_struct.
7376         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
7377         rs6000_option_init_struct.  Use options structure pointer.
7378         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7379         * config/s390/s390.c (s390_option_init_struct,
7380         TARGET_OPTION_INIT_STRUCT): New.
7381         (s390_option_optimization): Don't set
7382         flag_asynchronous_unwind_tables here.
7383         * config/sh/sh.c (sh_option_init_struct,
7384         TARGET_OPTION_INIT_STRUCT): New.
7385         (sh_option_optimization): Don't set flag_finite_math_only here.
7386         * config/spu/spu.c (spu_option_optimization): Replace by
7387         spu_option_optimization.  Use options structure pointer.
7388         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7389
7390 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7391
7392         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
7393
7394         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
7395         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
7396         (Standard names): Document fma.
7397
7398         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
7399         __FP_FAST_FMAF, __FP_FAST_FMAL.
7400
7401         * builitns.c (expand_builtin_mathfn_ternary): New function for
7402         expanding ternary math functions, like fma.
7403         (expand_builtin): Call it for the fma builtins.
7404
7405         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
7406         ops at present.
7407
7408         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
7409         vectorizable functions to support vectorizing fma.
7410
7411         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7412         Handle fma builtins.
7413
7414         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
7415         (UNSPEC_VSX_MSUB): Ditto.
7416         (UNSPEC_VSX_NMADD): Ditto.
7417         (UNSPEC_VSX_NMSUB): Ditto.
7418         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
7419         of UNSPEC. Renumber combiner patterns.
7420         (vsx_fmsub<mode>4*): Ditto.
7421         (vsx_fnmadd<mode>4*): Ditto.
7422         (vsx_fnmsub<mode>4*): Ditto.
7423
7424         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
7425         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
7426         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
7427         (altivec_vmaddfp_1): Ditto.
7428         (altivec_vmaddfp_2): Ditto.
7429         (atlivec_mulv4sf3): Ditto.
7430         (altivec_vnmsubfp): Ditto.
7431         (altivec_vnmsubfp_1): Ditto.
7432         (altivec_vnmsubfp_2): Ditto.
7433         (altivec_vnmsubfp_3): Delete.
7434
7435         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
7436         (fmasf4_fpr): Ditto.
7437         (fmssf4_fpr): Ditto.
7438         (fnmasf4_fpr): Ditto.
7439         (fnmssf4_fpr): Ditto.
7440         (fmadf4): Ditto.
7441         (fmadf4_fpr): Ditto.
7442         (fmsdf4_fpr): Ditto.
7443         (fnmadf4_fpr): Ditto.
7444         (fnmsdf4_fpr): Ditto.
7445
7446         * optabs.h (OTI_fma): Add fma optab.
7447         (fma_optab): Ditto.
7448
7449         * genopinit.c (optabs): Set fma optab.
7450
7451         * rtl.def (FMA): Add FMA rtl.
7452
7453         * tree.h (mode_has_fma): New function to return if MODE supports a
7454         fast multiply and add instruction.
7455         * builtins.c (mode_has_fma): Ditto.
7456
7457 2010-10-15  Jan Hubicka  <jh@suse.cz>
7458
7459         * lto-streamer-out.c (write_symbol): Use pointer set of seen
7460         objects instead of bitmap.
7461         (produce_symtab): Likewise; output defined symbols first.
7462
7463 2010-10-15  Jie Zhang  <jie@codesourcery.com>
7464
7465         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
7466         Option Summary and Index.
7467
7468 2010-10-15  Richard Guenther  <rguenther@suse.de>
7469
7470         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
7471         for automatic variables again.
7472
7473 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7474
7475         * doc/extend.texi (Variable Length): Don't refer to VLAs not
7476         conforming to C99.
7477
7478 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7479
7480         * config/rx/rx.c (rx_option_optimization): Change to
7481         rx_override_options_after_change.  Don't change
7482         flag_lto_compression_level.  Don't check for changes to whether
7483         FPU instructions can be used.  Check and set only
7484         flag_finite_math_only, not other fast-math flags.
7485         (rx_option_override): Call rx_override_options_after_change.
7486         (TARGET_OPTION_OPTIMIZATION): Remove.
7487         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
7488
7489 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7490
7491         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
7492         disable section anchors for lang_hooks.name[4] != 'O'.
7493
7494 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
7495
7496         * config/frv/frv.c (frv_option_optimization,
7497         TARGET_OPTION_OPTIMIZATION): Remove.
7498         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
7499
7500 2010-10-15  Michael Matz  <matz@suse.de>
7501
7502         * cgraphunit.c (clone_of_p): Define unconditionally.
7503
7504 2010-10-15  Richard Guenther  <rguenther@suse.de>
7505
7506         PR lto/45957
7507         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7508
7509 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
7510
7511         * ifcvt.c (find_active_insn_before): New function.
7512         (find_active_insn_after): New function.
7513         (cond_exec_process_if_block): Use new functions to replace
7514         prev_active_insn() and next_active_insn().
7515
7516 2010-10-14  Yao Qi  <yao@codesourcery.com>
7517
7518         PR target/45447
7519         * config/arm/arm.c (arm_build_builtin_va_list): Assign
7520         va_list_name to TYPE_STUB_DECL (va_list_type).
7521
7522 2010-10-14  Jan Hubicka  <jh@suse.cz>
7523
7524         PR middle-end/45621
7525         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
7526         redirected to clone, be happy.
7527         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
7528         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
7529         former_clone_of unconditionally.
7530
7531 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7532
7533         Merge from FSF apple 'trunk' branch.
7534         2006 Fariborz Jahanian  <fjahanian@apple.com>
7535
7536         Radars 4436866, 4505126, 4506903, 4517826
7537         * c-parser.c (c_parser, objc_property_attr_context) New flag.
7538         (c_lex_one_token): Handle property attributes.
7539         (c_parser_external_declaration): Handle @property.
7540         (c_parser_declaration_or_fndef): Warn on invalid attributes before
7541         @alias, @class, @end and @property objc keywords.
7542         (c_parser_objc_methodprotolist): Handle @property.
7543         (c_parser_objc_property_attrlist): New.
7544         (c_parser_objc_at_property): New.
7545         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
7546         (build_modify_expr): Likewise.
7547
7548 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7549
7550         PR tree-optimization/46008
7551         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
7552
7553 2010-10-14  Richard Guenther  <rguenther@suse.de>
7554
7555         PR tree-optimization/44913
7556         * tree-data-ref.c (disjoint_objects_p): Remove.
7557         (dr_may_alias_p): Simplify.  Only hand the base object to
7558         the alias-oracle.
7559         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
7560         some more trees, bail out instead of asserting.
7561         (ptr_derefs_may_alias_p): Likewise.  Export.
7562         (refs_may_alias_p_1): Handle STRING_CSTs.
7563         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
7564
7565 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7566
7567         PR c/45969
7568         * c-typeck.c (build_binary_op): Don't try to compute a semantic
7569         type with excess precision for boolean operations.
7570
7571 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
7572             Basile Starynkevitch  <basile@starynkevitch.net>
7573
7574         * gengtype.c:  Include getopt.h and version.h.
7575
7576         (lang_bitmap, struct outf, outf_p)
7577         (get_output_file_with_visibility, oprintf): Definitions moved to
7578         gengtype.h
7579         (output_files, header_file, srcdir, srcdir_len, this_file)
7580         (do_dump): No more static variables.
7581         (do_debug): New.
7582         (dbgprint_count_type_at): Added new function.
7583         (gengtype_long_options): New.
7584         (print_usage, print_version, parse_program_options): New.
7585         (main): Call parse_program_options, and removed old option
7586         handling code.  Added some debug output.
7587
7588         * gengtype.h:  Updated copyright year.
7589         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
7590         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
7591         Moved from gengtype.c to here.
7592         (do_debug, read_state_filename, write_state_filename): New variables.
7593         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
7594
7595         * Makefile.in:
7596         (REVISION): Always defined.
7597         (version.o): Removed ifdef REVISION_c.
7598         (s-gtype): Pass arguments to build/gengtype program.
7599         (build/version.o): Added building rule.
7600         (build/gengtype$(build_exeext)): Added build/version.o.
7601
7602 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
7603
7604         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
7605         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
7606         __strong macros.
7607
7608 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7609
7610         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
7611         may_trap_or_fault_p instead of may_trap_p predicate.
7612         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
7613         (substitute_placeholder_in_expr): Likewise.
7614         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
7615         flag on MEM_REF nodes.
7616         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
7617         flags on INDIRECT_REF nodes.
7618
7619 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
7620
7621         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
7622         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
7623         (arm*-*-eabi*) <tm_file>: Likewise.
7624         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
7625         (frv-*-*linux*) <tm_file>: Likewise.
7626         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
7627         and associated helper macros.
7628         * config/frv/frv-abi.h: Delete.
7629
7630 2010-10-14  Richard Guenther  <rguenther@suse.de>
7631
7632         PR lto/44561
7633         * tree.def (NULLPTR_TYPE): New tree code.
7634         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
7635         * dwarf2out.c (is_base_type): Likewise.
7636         (gen_type_die_with_usage): Likewise.
7637         * sdbout.c (plain_type_1): Likewise.
7638         * tree.c (build_int_cst_wide): Likewise.
7639         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
7640
7641 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
7642
7643         * params.c (params_finished): New.
7644         (add_params): Assert !params_finished.
7645         (finish_params): New.
7646         (set_param_value_internal): Take params and params_set
7647         parameters.  Assert params_finished.
7648         (set_param_value, maybe_set_param_value): Take params and
7649         params_set parameters.  Update calls to set_param_value_internal.
7650         (set_default_param_value): Assert !params_finished.  Don't use
7651         set_param_value_internal.
7652         (default_param_value, init_param_values): New.
7653         * params.h (struct param_info): Change value to default_value.
7654         Remove set.
7655         (set_param_value, maybe_set_param_value): Add params and
7656         params_set parameters.
7657         (PARAM_VALUE): Get parameters from global_options.
7658         (PARAM_SET_P): Remove.
7659         (finish_params, default_param_value, init_param_values): New.
7660         * common.opt (param_values): New Variable.
7661         * config/arm/arm.c (arm_option_override): Pass extra arguments to
7662         maybe_set_param_value.
7663         * config/i386/i386.c (ix86_option_override_internal): Pass extra
7664         arguments to maybe_set_param_value.
7665         * config/picochip/picochip.c (picochip_option_override): Pass
7666         extra arguments to maybe_set_param_value.
7667         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
7668         extra arguments to maybe_set_param_value.
7669         * config/s390/s390.c (s390_option_override): Use
7670         maybe_set_param_value instead of set_param_value.  Pass extra
7671         arguments to maybe_set_param_value.
7672         * config/sparc/sparc.c (sparc_option_override): Pass extra
7673         arguments to maybe_set_param_value.
7674         * config/spu/spu.c (spu_option_override): Pass extra arguments to
7675         maybe_set_param_value.
7676         * opts.c (handle_param): Take opts and opts_set parameters.
7677         Update call to set_param_value.
7678         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
7679         initial_loop_invariant_max_bbs_in_loop): Remove.
7680         (init_options_once): Don't set them.
7681         (init_options_struct): Initialize parameters structures.
7682         (default_options_optimization): Use default_param_value when
7683         restoring defaults.  Update calls to maybe_set_param_value.
7684         (finish_options): Update calls to maybe_set_param_value.
7685         (common_handle_option): Update calls to handle_param and
7686         set_param_value.
7687         * toplev.c (DEFPARAM): Update definition for changes to param_info.
7688         (general_init): Call finish_params.
7689
7690 2010-10-14  Nick Clifton  <nickc@redhat.com>
7691
7692         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
7693         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
7694         (FIRST_PSEUDO_REGISTER): Increase by one.
7695         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
7696         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
7697         (MODES_TIEABLE): Call mn10300_modes_tieable.
7698         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
7699         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
7700         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
7701         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
7702         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
7703         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
7704         (mn10300_cc_status_mdep): Delete.
7705         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
7706         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
7707         the combine-stack-adjust pass.
7708         (print_operand): Use the mode of the comparison operation to
7709         select the comparison suffix.
7710         (notice_update_cc): Delete.
7711         (mn10300_secondary_reload_class): Remove test for stack pointer
7712         based arithmetic.
7713         (output_tst): Rename to mn10300_output_cmp.
7714         (impossible_plus_operand): Move into predicates.md.
7715         (mn10300_legitimize_address): Make static.
7716         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
7717         constant pic operands.
7718         (mn10300_legitimate_constant_p): New function.
7719         (mn10300_case_values_threshold): Make static.
7720         (mn10300_hard_regno_mode_ok): New function.
7721         (mn10300_modes_tieable): New function.
7722         (mn10300_select_cc_mode): New function.
7723         * config/mn10300/predicates.md (impossible_plus_operand): Define.
7724         * config/mn10300/mn10300-protos.h: Tidy.
7725         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
7726         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
7727         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
7728         with clobbers or sets of CC_REG.
7729         (CC_REG): Define.
7730         (mov*): Remove use of CLR instruction.
7731         (cbranch_si4_<code>): New pattern/split.
7732         (integer_conditional_branch): New pattern.
7733         (cbranch_sf4_<code>): New pattern/split.
7734         (float_conditional_branch): New pattern.
7735         (casesi): Use addsi3 pattern instead of movsi pattern to add and
7736         move a value at the same time.
7737         (cc0 peepholes): Remove.
7738
7739 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7740
7741         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
7742         on RTX_FRAME_RELATED_P insns and the insn to which
7743         NOTE_INSN_EPILOGUE_BEG is attached.
7744         * sched-vis.c (print_value): Allow NULL value.
7745
7746 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7747
7748         PR rtl-optimization/45570
7749         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
7750         assert that we are pipelining outer loops.  Allow returning
7751         zero predecessors.
7752
7753 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
7754
7755         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
7756         (tidy_control_flow): Tidy vertical space.
7757         (sel_remove_bb): New variable idx.  Use it to remember the basic
7758         block index before deleting the block.
7759         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
7760         (sel_merge_blocks): ... here.
7761         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
7762
7763 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
7764
7765         * cse.c (is_dead_reg): Change into inline function that is not
7766         called through for_each_rtx.
7767         (set_live_p): Adjust caller.
7768         (insn_live_p): Don't reset DEBUG_INSNs here.
7769         (struct dead_debug_insn_data): New data.
7770         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
7771         (delete_trivially_dead_insns): If there is just one setter for the
7772         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
7773         and add DEBUG_INSN for it right before the removed setter and
7774         use the DEBUG_EXPR instead of the dead pseudo.
7775
7776 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
7777
7778         * et-forest.c (et_nca): Return NULL immediately when
7779         the dominance forest has disjoint components.
7780
7781 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
7782
7783         * ira.c (setup_class_hard_regs): Fix typo in indexing
7784         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
7785
7786 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
7787
7788         * graph.c (inbb): New variable.
7789         (start_bb): Set inbb to 1 if output is inside of a building block.
7790         (end_bb): Check if output is inside of a building block.
7791
7792 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7793
7794         PR rtl-optimization/45912
7795         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
7796         regno of registers instead of their index to compute the alignment.
7797
7798 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
7799
7800         * config/i386/i386.c (ix86_build_const_vector): Check vector
7801         mode instead of scalar mode.
7802         (ix86_build_signbit_mask): Likewise.
7803         (ix86_expand_fp_absneg_operator): Updated.
7804         (ix86_expand_copysign): Likewise.
7805         (ix86_expand_int_vcond): Likewise.
7806         (ix86_emit_swdivsf): Likewise.
7807         (ix86_sse_copysign_to_positive): Likewise.
7808         (ix86_expand_sse_fabs): Likewise.
7809         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
7810         * config/i386/sse.md (copysign<mode>3): Likewise.
7811         (sse2_cvtudq2ps): Likewise.
7812         (vec_unpacku_float_hi_v4si): Likewise.
7813         (vec_unpacku_float_lo_v4si): Likewise.
7814
7815         * config/i386/i386.c (ix86_builtins): Add
7816         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
7817         (bdesc_args): Likewise.
7818         (ix86_builtin_vectorized_function): Support
7819         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
7820         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
7821         and IX86_BUILTIN_CVTPS2DQ256.
7822         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
7823
7824         * config/i386/sse.md (STORENT_MODE): New.
7825         (VEC_FLOAT_MODE): Likewise.
7826         (VEC_EXTRACT_MODE): Likewise.
7827         (*avx_cvtdq2pd256_2): Likewise.
7828         (vec_pack_trunc_v4df): Likewise.
7829         (vec_interleave_highv8sf): Likewise.
7830         (vec_interleave_lowv8sf): Likewise.
7831         (storent<mode>): Macroized.
7832         (<code><mode>2: absneg): Likewise.
7833         (copysign<mode>3): Likewise.
7834         (vec_extract<mode>): Likewise.
7835
7836         PR target/44180
7837         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
7838         for V8SFmode.
7839
7840 2010-10-13  Richard Guenther  <rguenther@suse.de>
7841             H.J. Lu  <hongjiu.lu@intel.com>
7842
7843         * config/i386/sse.md (reduc_splus_v8sf): Add.
7844         (reduc_splus_v4df): Likewise.
7845         (vec_unpacks_hi_v8sf): Likewise.
7846         (vec_unpacks_lo_v8sf): Likewise.
7847         (*avx_cvtps2pd256_2): Likewise.
7848         (vec_unpacks_float_hi_v8si): Likewise.
7849         (vec_unpacks_float_lo_v8si): Likewise.
7850         (vec_interleave_highv4df): Likewise.
7851         (vec_interleave_lowv4df): Likewise.
7852
7853 2010-10-13  Richard Guenther  <rguenther@suse.de>
7854
7855         PR objc/45878
7856         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
7857         alone if there are no virtual methods.
7858
7859 2010-10-13  Richard Henderson  <rth@redhat.com>
7860
7861         * expr.c (build_personality_function): Take parameter LANG instead
7862         of parameter NAME.  Build the name based on the lang prefix and the
7863         unwind method in use.
7864         * tree.c (lhd_gcc_personality): Update call to
7865         build_personality_function.
7866
7867 2010-10-13  Richard Guenther  <rguenther@suse.de>
7868
7869         PR objc/45878
7870         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
7871
7872 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
7873
7874         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
7875         Canonicalize input operands of ASM_OPERANDS insns.
7876
7877 2010-10-13  Richard Guenther  <rguenther@suse.de>
7878
7879         PR tree-optimization/45788
7880         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
7881         EH update until fixup-cfg.
7882
7883 2010-10-13  Julian Brown  <julian@codesourcery.com>
7884
7885         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
7886         from CORE_REGS and GENERAL_REGS classes.
7887         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
7888         final constraint for register preferencing.
7889
7890 2010-10-13  Richard Guenther  <rguenther@suse.de>
7891
7892         PR tree-optimization/45970
7893         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
7894         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
7895         (stmt_kills_ref_p): Likewise.
7896         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
7897
7898 2010-10-13  Richard Guenther  <rguenther@suse.de>
7899
7900         PR tree-optimization/45982
7901         * tree-ssa-structalias.c (make_constraints_to): New function.
7902         (make_constraint_to): Implement in terms of make_constraints_to.
7903         (find_func_aliases): Properly make return values of pure/const
7904         functions escape if they assign to sth that is not a pointer.
7905
7906 2010-10-13  Richard Guenther  <rguenther@suse.de>
7907
7908         PR middle-end/45874
7909         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7910         Fixup the CFG when EH was fixed up.
7911
7912 2010-10-13  Ira Rosen  <irar@il.ibm.com>
7913
7914         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
7915         Use operand's type for POINTER_PLUS_EXPR.
7916
7917 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
7918
7919         * c-parser.c (c_parser_for_statement): Initialize incr.
7920
7921 2010-10-12  Xinliang David Li  <davidxl@google.com>
7922
7923         PR tree-optimization/45972
7924         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
7925         with too many arguments.
7926
7927 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
7928
7929         PR fortran/45636
7930         * tree-ssa-forwprop.c: Include expr.h.
7931         (constant_pointer_difference, simplify_builtin_call): New functions.
7932         (tree_ssa_forward_propagate_single_use_vars): Call
7933         simplify_builtin_call on builtin calls.
7934
7935 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
7936
7937         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
7938         (*adddi3_extend_sp32): Likewise.
7939         (*subdi3_insn_sp32): Likewise.
7940         (*subdi3_extend_sp32): Likewise.
7941         (*negdi2_sp32): Use negative test for consistency.
7942
7943 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7944
7945         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
7946         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7947         * config/fixed-bit.h: Likewise.
7948         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7949         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
7950         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
7951         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
7952         (DF_SIZE): Likewise.
7953         * doc/tm.texi: Regenerate.
7954
7955 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
7956
7957         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
7958         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
7959         (*isel_reversed_unsigned_<mode>): New.
7960         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
7961         as valid comparisons and adjust operands and output appropriately.
7962         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
7963
7964 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
7965
7966         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
7967         DATA_ALIGNMENT and add COND parameter. Update comments above.
7968         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
7969         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
7970
7971 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
7972
7973         PR bootstrap/45958
7974         * exec-tool.in: Support '-plugin' as the second option to the linker.
7975
7976 2010-10-12  Richard Henderson  <rth@redhat.com>
7977
7978         PR middle-end/45962
7979         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
7980         (expand_stack_vars): Assert large base allocated when used.
7981
7982 2010-10-12  Richard Guenther  <rguenther@suse.de>
7983
7984         * tree-ssa-structalias.c (get_constraint_for_1): Constants
7985         only point to nonlocal, not anything.
7986
7987 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7988
7989         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
7990         unwind info for exceptions.
7991
7992 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7993
7994         PR testsuite/45851
7995         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
7996         Document optional target selector.
7997
7998 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
7999
8000         * flag-types.h: New.
8001         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
8002         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
8003         options.h.
8004         (OPTIONS_H): Define.
8005         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
8006         of options.h.
8007         * configure.ac (tm_include_list): Include options.h not flags.h.
8008         * configure: Regenerate.
8009         * flags.h: Include flag-types.h.  Include options.h at top of file
8010         again.
8011         (enum debug_info_type, enum debug_info_level, enum
8012         debug_info_usage, enum symbol_visibility, struct visibility_flags,
8013         enum ira_algorithm, enum ira_region, enum excess_precision, enum
8014         graph_dump_types, enum stack_check_type,
8015         enum warn_strict_overflow_code): Move to flag-types.h
8016         * opth-gen.awk: Include flag-types.h in options.h.
8017
8018 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
8019
8020         * expr.c (store_expr): Share code for STRING_CST and
8021         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
8022         check if target is a MEM.
8023
8024         * rtl.h: Include hashtab.h.
8025         (iterative_hash_rtx): New prototype.
8026         * rtl.c (iterative_hash_rtx): New function.
8027         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
8028         (output_loc_list): Return immediately if emitted is set, set it.
8029         (hash_loc_operands, hash_locs, hash_loc_list,
8030         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
8031         optimize_location_lists_1, optimize_location_lists): New function.
8032         (dwarf2out_finish): Call optimize_location_lists.
8033         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
8034
8035 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8036
8037         PR testsuite/45974
8038         Revert:
8039         * Makefile.in ($(lang_checks_parallel))
8040         ($(lang_checks_parallelized)): Use single quotes for
8041         $(RUNTESTFLAGS), to allow passing quoted content.
8042
8043 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8044
8045         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
8046         actual_oldval.  Use __builtin_expect.
8047         (SUBWORD_VAL_CAS): Likewise.
8048
8049 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8050
8051         * recog.c (nonmemory_operand): Call immediate_operand for
8052         CONSTANT_P operands.
8053
8054 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
8055
8056         * config/i386/i386.md (movmem<mode>): Macroize expander from
8057         movmem{si,di} using SWI48 mode iterator.
8058         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
8059         *strmovsi_rex_1 using P mode iterator.
8060         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
8061         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
8062         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
8063         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
8064         (setmem<mode>): Macroize expander from setmem{si,di} using
8065         SWI48 mode iterator.
8066         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
8067         *strsetsi_rex_1 using P mode iterator.
8068         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
8069         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
8070         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
8071         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
8072         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
8073         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
8074         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
8075         mode iterator.
8076         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
8077         *strlenqi_rex_1 using P mode iterator.
8078
8079 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
8080
8081         PR bootstrap/45445
8082         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
8083         static functions.
8084         (mark_ref_live, mark_ref_dead): Use them.
8085         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
8086         Save the original reg, and use the new functions.
8087         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
8088         changed.
8089         (check_and_make_def_conflict): Save the original reg.
8090
8091 2010-10-11  Martin Jambor  <mjambor@suse.cz>
8092
8093         PR middle-end/45699
8094         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
8095         thunks.
8096
8097 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8098
8099         * Makefile.in ($(lang_checks_parallel))
8100         ($(lang_checks_parallelized)): Use single quotes for
8101         $(RUNTESTFLAGS), to allow passing quoted content.
8102
8103         PR bootstrap/35855
8104         * opt-functions.awk (BEGIN): New section.
8105         (lower, upper, digit, alnum): New variables.
8106         (static_var, opt_sanitized_name): Use alnum instead of character
8107         classes, for non-C locale.
8108         * optc-gen.awk: Likewise.
8109         * opth-gen.awk: Likewise.
8110
8111 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
8112
8113         * target.def (preferred_reload_class): New hook.
8114         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
8115         * doc/tm.texi: Regenerate.
8116         * targhooks.c (default_preferred_reload_class): New function.
8117         * targhooks.h (default_preferred_reload_class): Declare.
8118         * reload.c (find_dummy_reload): Change preferred_class variable type
8119         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
8120         target hook.
8121         (find_reloads): Change goal_alternative array type from int to
8122         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
8123         (push_reload, find_reloads_address_part): Use
8124         TARGET_PREFERRED_RELOAD_CLASS target hook.
8125         * reload1.c (emit_input_reload_insns): Ditto.
8126         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
8127         hook. Change rclass argument and secondary_class variable types from
8128         'enum reg_class' to reg_class_t.
8129
8130         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
8131         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
8132         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
8133         Change regclass argument and result types from enum reg_class to
8134         reg_class_t.
8135         (TARGET_PREFERRED_RELOAD_CLASS): Define.
8136
8137 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
8138
8139         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
8140         in masking operations.
8141         (simplify_const_unary_operation): Likewise.
8142         (simplify_binary_operation_1): Likewise.
8143         (simplify_const_binary_operation): Likewise.
8144         (simplify_const_relational_operation): Likewise.
8145         (simplify_ternary_operation): Likewise.
8146         (simplify_immed_subreg): Likewise.
8147
8148 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8149
8150         PR middle-end/45862
8151         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
8152         (TARGET_SUPPORTS_WEAK): New.
8153         * doc/tm.texi: Regenerate.
8154         * defaults.h (SUPPORTS_WEAK): Update comment.
8155         (TARGET_SUPPORTS_WEAK): New.
8156         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
8157         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
8158         SUPPORTS_WEAK.
8159         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
8160         make_decl_one_only): Likewise.
8161         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
8162         TARGET_SUPPORTS_WEAK.
8163         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
8164         instead of SUPPORTS_WEAK.
8165
8166 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8167
8168         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
8169
8170 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
8171
8172         * vec.h (VEC_qsort): Define.
8173         * dbxout.c (output_used_types): Use it.
8174         * df-scan.c (df_sort_and_compress_refs): Likewise.
8175         (df_sort_and_compress_mws): Likewise.
8176         * genautomata.c (uniq_sort_alt_states): Likewise.
8177         (evaluate_equiv_classes): Likewise.
8178         (output_trans_table): Likewise.
8179         (output_state): Likewise.
8180         * gimplify.c (compare_case_labels): Likewise.
8181         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
8182         * ipa.c (build_cdtor_fns): Likewise.
8183         * lto.c (lto_wpa_write_files): Likewise.
8184         * sel-sched.c (fill_vec_av_set): Likewise.
8185         * tree-predcom.c (determine_roots_comp): Likewise.
8186         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
8187         (splice_param_accesses): Likewise.
8188         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
8189         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
8190         (reassociate_bb): Likewise.
8191         * tree-ssa-sccvn.c (sort_scc): Likewise.
8192         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
8193
8194 2010-10-11  Ian Lance Taylor  <iant@google.com>
8195
8196         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
8197         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
8198         TREE_THIS_NOTRAP when appropriate.
8199         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
8200         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
8201         newly created MEM_REF.
8202
8203 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
8204
8205         Nathan Froyds patch to hooks FUNCTION_ARG etc.
8206         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
8207         (picochip_incoming_function_arg): Delete.
8208         (picochip_arg_advance): Delete.
8209         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
8210         (FUNCTION_INCOMING_ARG): Delete.
8211         (FUNCTION_ARG_ADVANCE): Delete.
8212         * config/picochip/picochip.c (picochip_function_arg): Take a
8213         const_tree and a bool.
8214         (picochip_incoming_function_arg): Likewise.
8215         (picochip_arg_advance): Likewise.
8216         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8217         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8218
8219 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8220
8221         PR middle-end/45955
8222         * ipa.c (build_cdtor): Delete endless loop.
8223
8224 2010-10-07  Andi Kleen  <ak@linux.intel.com>
8225
8226         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
8227         checksum-options.
8228         (checksum-options): Add.
8229         (cc1-dummy): Remove.
8230         (cc1-checksum): Change to run checksum over object files
8231         and options only.
8232         * dummy-checksum.c: Remove.
8233         * genchecksum.c: Update copyright.
8234         (usage): Allow multiple arguments.
8235         (BLOCKSIZE): Add.
8236         (dosum): Change for incremental checksum. Remove C output.
8237         (main): Iterate over all argument files. Add C output.
8238
8239 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
8240
8241         * params.c (set_param_value_internal): New.
8242         (set_param_value): Use set_param_value_internal.
8243         (maybe_set_param_value, set_default_param_value): New.
8244         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
8245         (maybe_set_param_value, set_default_param_value): Declare.
8246         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
8247         * config/i386/i386.c (ix86_option_override_internal): Use
8248         maybe_set_param_value.
8249         * config/ia64/ia64.c (ia64_option_default_params,
8250         TARGET_OPTION_DEFAULT_PARAMS): New.
8251         (ia64_option_optimization): Move some code to
8252         ia64_option_default_params.
8253         * config/picochip/picochip.c (picochip_option_override): Use
8254         maybe_set_param_value.
8255         * config/rs6000/rs6000.c (rs6000_option_default_params,
8256         TARGET_OPTION_DEFAULT_PARAMS): New.
8257         (rs6000_option_override_internal): Use maybe_set_param_value.
8258         (rs6000_option_optimization): Move some code to
8259         rs6000_option_default_params.
8260         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
8261         * config/sh/sh.c (sh_option_default_params,
8262         TARGET_OPTION_DEFAULT_PARAMS): New.
8263         (sh_option_optimization): Move some code to sh_option_default_params.
8264         * config/sparc/sparc.c (sparc_option_override): Use
8265         maybe_set_param_value.
8266         * config/spu/spu.c (spu_option_default_params,
8267         TARGET_OPTION_DEFAULT_PARAMS): New.
8268         (spu_option_optimization): Move some code to spu_option_default_params.
8269         (spu_option_override): Use maybe_set_param_value.
8270         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
8271         * doc/tm.texi: Regenerate.
8272         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
8273         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
8274         compiler_params.
8275         (default_options_optimization): Use maybe_set_param_value.
8276         (finish_options): Use maybe_set_param_value.
8277         * target.def (target_option.default_params): New hook.
8278         * toplev.c (general_init): Call targetm.target_option.default_params.
8279
8280 2010-10-11  Ira Rosen  <irar@il.ibm.com>
8281
8282         PR tree-optimization/45902
8283         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
8284         vector type for constants, unless it's a pointer.
8285
8286 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8287
8288         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
8289
8290 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
8291
8292         PR target/45870
8293         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
8294         (ix86_delegitimize_address): Use it.
8295
8296 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
8297
8298         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
8299
8300 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
8301
8302         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
8303         to cum struct in the call to function_arg_advance.
8304         (alpha_function_arg_advance): Mark named as unused.
8305
8306 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
8307
8308         * config/mips/mips.c (mips_handle_option): Make "value" with
8309         ATTRIBUTE_UNUSED.
8310
8311 2010-10-09  Richard Henderson  <rth@redhat.com>
8312
8313         PR rtl-opt/33721
8314         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
8315         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
8316         required_align, tidy the code a bit.  Emit split_stack code in the
8317         right place.  Mark the return value with the alignment properly.
8318         * expr.h (allocate_dynamic_stack_space): Update decl.
8319         * builtins.c (expand_builtin_apply): Update call to
8320         allocate_dynamic_stack_space.
8321         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
8322         * calls.c (initialize_argument_information): Update call to
8323         allocate_dynamic_stack_space.
8324         (expand_call): Likewise.
8325
8326         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
8327         Don't update_stack_alignment here.
8328         (alloc_stack_frame_space): Make ALIGN unsigned.
8329         (stack_var_cmp): Sort by alignment too.
8330         (partition_stack_vars): Don't merge large and small alignment vars.
8331         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
8332         Take care when BASE is not virtual_stack_vars_rtx.
8333         (expand_stack_vars): Allocate dynamic stack space for large
8334         alignment variables.
8335         (expand_one_stack_var): Update all to expand_one_stack_var_at.
8336         (defer_stack_allocation): True for large alignment vars.
8337         (update_stack_alignment): Merge into ...
8338         (expand_one_var): ... here.
8339         (gimple_expand_cfg): Place code from expand_stack_vars.
8340
8341 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8342
8343         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8344         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
8345         (pdp11_function_arg_advance): New function.
8346         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8347
8348 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8349
8350         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
8351         * libgcc2.c: Likewise.
8352
8353 2010-10-09  Richard Guenther  <rguenther@suse.de>
8354
8355         PR lto/45956
8356         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
8357         Properly check if a decl is an automatic var.
8358
8359 2010-10-09  Richard Guenther  <rguenther@suse.de>
8360
8361         PR lto/45947
8362         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
8363
8364 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8365
8366         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
8367         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8368         * config/mmix/mmix.c (mmix_function_arg): Rename to...
8369         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
8370         bool arguments.
8371         (mmix_function_arg): New function.
8372         (mmix_function_incoming_arg): New function.
8373         (mmix_function_arg_advance): New function.
8374         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8375         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8376
8377 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8378
8379         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8380         * config/vax/vax.c (vax_function_arg): New function.
8381         (vax_function_arg_advance): New function.
8382         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8383
8384 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8385
8386         * config/pa/pa-protos.h (function_arg): Delete.
8387         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8388         * config/pa/pa.c (function_arg): Rename to...
8389         (pa_function_arg): ...this.  Make static.  Take a const_tree and
8390         a bool.
8391         (pa_function_arg_advance): New function.
8392         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8393
8394 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8395
8396         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8397         * config/m68k/m68k.c (m68k_function_arg): New function.
8398         (m68k_function_arg_advance): New function.
8399         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8400
8401 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8402
8403         * config/avr/avr-protos.h (function_arg): Delete.
8404         (function_arg_advance): Delete.
8405         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8406         * config/avr/avr.c (function_arg): Rename to...
8407         (avr_function_arg): ...this.  Make static.  Take a const_tree and
8408         a bool.
8409         (function_arg_advance): Rename to...
8410         (avr_function_arg_advance): ...this.  Make static.  Take a
8411         const_tree and a bool.
8412         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8413
8414 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8415
8416         * config/alpha/alpha-protos.h (function_arg): Delete.
8417         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8418         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
8419         * config/alpha/alpha.c (function_arg): Rename to...
8420         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
8421         a bool.  Delete TARGET_ABI_UNICOSMK code.
8422         (alpha_function_arg_advance): New function.
8423         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8424
8425 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8426
8427         * config/mep/mep-protos.h (mep_function_arg): Delete.
8428         (mep_function_arg_advance): Delete.
8429         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8430         * config/mep/mep.c (mep_function_arg): Make static.  Take a
8431         const_tree and a bool.
8432         (mep_function_arg_advance): Likewise.
8433         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8434
8435 2010-10-09  Richard Guenther  <rguenther@suse.de>
8436
8437         PR tree-optimization/45945
8438         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
8439
8440 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
8441
8442         PR tree-optimization/45612
8443         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
8444         Test LABEL_DECLs as well.  Fix formatting issues.
8445         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
8446         whose label is present in NON_SSA_VARS.
8447         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
8448         as well.  Fix formatting issues.
8449         (visit_bb): Fix typos and formatting issue.
8450
8451 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
8452
8453         PR tree-optimization/45950
8454         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
8455         before initializing vno->op.
8456
8457 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
8458
8459         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
8460         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
8461
8462 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8463
8464         PR target/45913
8465         * config/i386/i386.c (ix86_binary_operator_ok): Support
8466         "andhi/andsi/anddi" as a zero-extending move.
8467
8468 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8469
8470         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
8471         into a temporary array.
8472
8473 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
8474
8475         PR tree-optimization/45903
8476         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
8477         of {A,L}SHIFTRT of MEM.
8478
8479 2010-10-08  Richard Guenther  <rguenther@suse.de>
8480
8481         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8482         Re-construct BLOCK_VARS.
8483         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
8484         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8485         * tree.c (free_lang_data_in_block): Remove.
8486         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
8487         Do not touch the BLOCK tree.
8488         * expr.c (expand_expr_real_1): Allow externals.
8489
8490 2010-10-08  Richard Guenther  <rguenther@suse.de>
8491
8492         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
8493         Do not output BLOCK_SUBBLOCKS.
8494         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
8495         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
8496         Re-construct BLOCK_SUBBLOCKS of parent block.
8497         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
8498         for BINFO_BASE_ACCESSES.
8499
8500 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
8501
8502         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
8503         (TREE_H): Include $(FLAGS_H) instead of options.h.
8504         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
8505         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8506         * common.opt (flag_complex_method, flag_evaluation_order,
8507         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
8508         Variable declarations.
8509         * configure.ac (tm_include_list): Include flags.h instead of options.h.
8510         * configure: Regenerate.
8511         * flags.h: Condition out contents for target libraries.  Include
8512         options.h at end of file.
8513         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
8514         flag_evaluation_order, flag_warn_unused_result): Remove.
8515         * gcc.c (main): Intialize global_options with global_options_init.
8516         * langhooks-def.h (lhd_init_options_struct): Declare.
8517         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
8518         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
8519         * langhooks.c (lhd_init_options_struct): New.
8520         * langhooks.h (struct lang_hooks): Add init_options_struct.
8521         Update comment on init_options.
8522         * optc-gen.awk: Generate initializer for global_options_init, not
8523         global_options.
8524         * opth-gen.awk: Condition out structure declarations for target
8525         libraries.  Declare global_options_init.
8526         * opts-common.c: Include flags.h instead of options.h.
8527         * opts.c (flag_warn_unused_result): Remove.
8528         (read_cmdline_options): Take gcc_options parameters.  Pass them to
8529         read_cmdline_option.
8530         (initial_lang_mask, initial_min_crossjump_insns,
8531         initial_max_fields_for_field_sensitive,
8532         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
8533         (init_options_once): New.  Split out of decode_options.
8534         (init_options_struct): New.  Split out of decode_options.
8535         (decode_cmdline_options_to_array_default_mask): New.
8536         (default_options_optimization): New.  Split out of decode_options.
8537         (decode_options): Move most code to other functions.  Update call
8538         to read_cmdline_options.
8539         (finish_options): New.  Split out of decode_options.
8540         * opts.h (decode_options): Add gcc_options parameters.
8541         (init_options_once, init_options_struct,
8542         decode_cmdline_options_to_array_default_mask): New.
8543         * toplev.c (flag_complex_method, flag_ira_algorithm,
8544         flag_ira_region, flag_evaluation_order): Remove.
8545         (general_init): Use global_options_init for initial flag values
8546         for global_dc.
8547         (toplev_main): Call init_options_once, init_options_struct,
8548         lang_hooks.init_options_struct,
8549         decode_cmdline_options_to_array_default_mask and
8550         lang_hooks.init_option before decode_options.  Update arguments to
8551         decode_options.
8552         * tree.h: Include flags.h instead of options.h.
8553
8554 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8555
8556         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8557
8558 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8559
8560         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
8561         Delete.
8562         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
8563         (FUNCTION_INCOMING_ARG): Delete.
8564         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
8565         (function_arg_slotno): Likewise.  Take bool arguments.
8566         (sparc_arg_partial_bytes): Update call to it.
8567         (function_arg): Rename to...
8568         (sparc_function_arg_1): ...this.  Take bool arguments.
8569         (sparc_function_arg, sparc_function_incoming_arg): New functions.
8570         (function_arg_advance): Rename to...
8571         (sparc_function_arg_advance): ...this.  Take bool argument.
8572         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
8573         (TARGET_FUNCTION_INCOMING_ARG): Define.
8574
8575 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8576
8577         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
8578         Delete.
8579         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8580         * config/bfin/bfin.c (function_arg_advance): Rename to...
8581         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
8582         and bool arguments.
8583         (function_arg): Rename to...
8584         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
8585         arguments.
8586         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8587
8588 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8589
8590         * config/score/score-protos.h (score_function_arg): Delete.
8591         (score_function_arg_advance): Delete.
8592         * config/score/score3.h (score3_function_arg_advance): Take a
8593         const_tree and a bool.
8594         (score3_function_arg): Likewise.
8595         * config/score/score7.h (score7_function_arg_advance): Likewise.
8596         (score7_function_arg): Likewise.
8597         * config/score/score3.c (score3_classify_arg): Likewise.
8598         (score3_function_arg_advance, score3_function_arg): Likewise.
8599         * config/score/score7.c (score7_classify_arg): Likewise.
8600         (score7_function_arg_advance, score7_function_arg): Likewise.
8601         * config/score/score.c (score_function_arg_advance): Likewise.
8602         (score_function_arg): Likewise.  De-const-ify `cum' argument.
8603         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8604
8605 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8606
8607         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
8608         (s390_function_arg): Delete.
8609         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8610         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
8611         (s390_function_arg_integer): Likewise.
8612         (s390_function_arg_advance): Make static.  Take a const_tree and
8613         a bool.
8614         (s390_function_arg): Likewise.
8615         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8616
8617 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8618
8619         * config/spu/spu-protos.h (spu_function_arg): Delete.
8620         * config/spu/spu.h (FUNCTION_ARG): Delete.
8621         (FUNCTION_ARG_ADVANCE): Move code to ...
8622         * config/spu/spu.c (spu_function_arg_advance): New function.
8623         (spu_function_arg): Make static.  Take a const_tree and a bool.
8624         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
8625         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8626
8627 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8628
8629         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8630
8631 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8632
8633         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
8634         (init_vn_nary_op_from_op): New function.
8635         (init_vn_nary_op_from_stmt): New function.
8636         (vn_nary_op_lookup_1): New function.
8637         (sizeof_vn_nary_op): New function.
8638         (alloc_vn_nary_op_noinit): New function.
8639         (alloc_vn_nary_op): New function.
8640         (vn_nary_op_insert_into): New function.
8641         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
8642         (vn_nary_op_lookup): Likewise.
8643         (vn_nary_op_lookup_stmt): Likewise.
8644         (vn_nary_op_insert_pieces): Likewise.
8645         (vn_nary_op_insert): Likewise.
8646         (vn_nary_op_insert_stmt): Likewise.
8647         (copy_nary): Likewise.
8648         (set_value_id_for_result): New function.
8649         (set_hashtable_value_ids): Call it.
8650
8651 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8652
8653         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8654         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
8655
8656 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
8657
8658         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
8659         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8660
8661 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8662
8663         PR debug/45656
8664         * cse.c (cse_extended_basic_block): Preserve cc0 info across
8665         debug isnsn.  Skip them when searching for cc0 setter.
8666         (set_live_p): Skip debug insns when searching for cc0 user.
8667
8668 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
8669
8670         PR debug/45673
8671         PR debug/45604
8672         PR debug/45419
8673         PR debug/45408
8674         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
8675         type of MEM_REFs to INTEGER_CSTs.
8676
8677 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8678
8679         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
8680         m68hc11_print_operand_address.
8681
8682 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
8683
8684         * builtins.c (rewrite_call_expr): Move code to...
8685         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
8686         (rewrite_call_expr_array): New function.
8687         (fold_builtin_sprintf_chk_1): New function.
8688         (fold_builtin_sprintf_chk): Call it.
8689         (gimple_fold_builtin_sprintf_chk): Likewise.
8690         (fold_builtin_snprintf_chk_1): New function.
8691         (fold_builtin_snprintf_chk): Call it.
8692         (gimple_fold_builtin_snprintf_chk): Likewise.
8693         (gimple_rewrite_call_expr): Delete.
8694
8695 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8696
8697         * config.host: Update copyright year.
8698
8699 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8700
8701         * config.host (host_lto_plugin_soname): New shell variable.
8702         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
8703         * config.in: Regenerate.
8704         * configure: Regenerate.
8705         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
8706         LTO plugin shared library.
8707
8708 2010-10-07  Richard Henderson  <rth@redhat.com>
8709
8710         * target.h (enum unwind_info_type): Move ...
8711         * coretypes.h: ... here.
8712
8713 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
8714
8715         * doc/objc.texi (Fast enumeration protocol): Mention that
8716         'unsigned int' can also be used instead of 'unsigned long' in
8717         countByEnumeratingWithState:objects:count:.
8718
8719 2010-10-07  Martin Jambor  <mjambor@suse.cz>
8720
8721         * tree-sra.c (struct access): New field grp_assignment_write.
8722         (dump_access): Dump grp_assignment_write.
8723         (build_accesses_from_assign): Set grp_assignment_write.
8724         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
8725         (mark_read_status): Renamed to mark_rw_status, individual values
8726         renamed too.
8727         (analyze_access_subtree): Changed type of mark_write to
8728         mark_read_status.  Fixed propagating of mark_read and
8729         mark_write.  Changed benefit estimate.  Updated comment.
8730
8731 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8732
8733         PR Tree-Vect/45847
8734         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
8735         check for vectype_out returned by get_vectype_for_scalar_type().
8736
8737 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
8738
8739         PR target/45805
8740         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
8741         constraint, add register specifier in instruction template.
8742         (neon_vec_pack_trunc_<mode>): Likewise.
8743         (neon_vec_<US>mult_<mode>): Add register specifier to
8744         instruction template.
8745
8746 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
8747
8748         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
8749         cygwin2.o.
8750         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
8751         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
8752         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
8753         (cygwin2.o): Likewise.
8754         * config/i386/cygwin1.c: Delete file.
8755         * config/i386/cygwin2.c: Likewise.
8756         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
8757         make all {%!mno-cygwin} ones unconditional.
8758         (STARTFILE_SPEC): Likewise.
8759         (REAL_LIBGCC_SPEC): Likewise.
8760         (LIB_SPEC): Likewise.
8761         (CXX_WRAP_SPEC): Likewise.
8762         (LINK_SPEC): Likewise.
8763         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
8764         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
8765         (cygwin_gplusplus_include_dir): Delete now-unused array.
8766         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
8767         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
8768         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
8769         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
8770         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
8771         (cygwin_local_include_dir): Delete now-unused array.
8772         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
8773         (cygwin_cross_include_dir): Delete now-unused array.
8774         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
8775         (cygwin_tool_include_dir): Delete now-unused array.
8776         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
8777         (cygwin_standard_include_dir): Delete now-unused array.
8778         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
8779         (GEN_CVT_ARRAY): Delete now-unused macro definition.
8780         (cvt_to_mingw): Delete now-unused array.
8781         (mingw_scan): Remove prototype of deleted function.
8782         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
8783         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
8784         * doc/invoke.texi (-mcygwin): Don't document removed option.
8785         (-mno-cygwin): Likewise.
8786
8787 2010-10-07  Richard Guenther  <rguenther@suse.de>
8788
8789         * machmode.h (mode_for_vector): Declare.
8790         * stor-layout.c (mode_for_vector): New function, split out from ...
8791         (layout_type): ... here.
8792         * tree-vectorizer.h (current_vector_size): Declare.
8793         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
8794         mask vector type is available.
8795         (get_vectype_for_scalar_type): Rename to ...
8796         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
8797         size argument.
8798         (get_vectype_for_scalar_type): New wrapper around
8799         get_vectype_for_scalar_type_and_size using current_vector_size.
8800         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
8801         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
8802         of vect_analyze_loop here.
8803         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
8804         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
8805         to autodetect.
8806         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
8807         V8SF to V8SI conversion builtin.
8808
8809 2010-10-07  Richard Guenther  <rguenther@suse.de>
8810
8811         * target.def (autovectorize_vector_sizes): New target hook.
8812         * targhooks.c (default_autovectorize_vector_sizes): New function.
8813         * targhooks.h (default_autovectorize_vector_sizes): Declare.
8814         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
8815         Document.
8816         * doc/tm.texi: Update.
8817         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
8818         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
8819
8820 2010-10-07  Richard Guenther  <rguenther@suse.de>
8821
8822         * target.def (units_per_simd_word): Rename to ...
8823         (preferred_simd_mode): ... this.  Return mode instead of size.
8824         * targhooks.c (default_units_per_simd_word): Rename to ...
8825         (default_preferred_simd_mode): ... this.  Return word_mode.
8826         * targhooks.h (default_preferred_simd_mode): Declare.
8827         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
8828         (arm_preferred_simd_mode): ... this.  Re-implement.
8829         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
8830         (ix86_preferred_simd_mode): ... this.  Re-implement.
8831         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
8832         (sparc_preferred_simd_mode): ... this.  Re-implement.
8833         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
8834         (mips_preferred_simd_mode): ... this.  Re-implement.
8835         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
8836         (rs6000_preferred_simd_mode): ... this.  Re-implement.
8837         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
8838         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
8839         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
8840         * doc/tm.texi: Update.
8841
8842 2010-10-07  Richard Guenther  <rguenther@suse.de>
8843
8844         PR middle-end/45869
8845         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
8846         of pointers.
8847
8848 2010-10-07  Alan Modra  <amodra@gmail.com>
8849
8850         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
8851         rather than sign extension by hand.
8852
8853 2010-10-07  Jan Hubicka  <jh@suse.cz>
8854
8855         PR middle-end/45926
8856         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
8857
8858 2010-10-07  Richard Guenther  <rguenther@suse.de>
8859
8860         PR bootstrap/45914
8861         * configure.ac: Fix typo.
8862         * configure: Regenerated.
8863
8864 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8865
8866         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
8867         define_builtin_std where it's unnecessary.
8868         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
8869
8870 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
8871
8872         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
8873         * doc/tm.texi.in: Regenerate.
8874         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
8875         * targhooks.c (default_class_likely_spilled_p): Don't use the
8876         CLASS_LIKELY_SPILLED_P macro.
8877
8878         * config/arm/arm.md: Update comment.
8879
8880 2010-10-06  Jan Hubicka  <jh@suse.cz>
8881
8882         * ipa.c (cgraph_remove_unreachable_nodes): External references can
8883         always be removed.
8884         (cgraph_externally_visible_p): We can not bring local comdats that
8885         are known to linker; fix handling of internal visibility.
8886         (function_and_variable_visibility): Likewise.
8887
8888 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
8889
8890         PR rtl-optimization/45394
8891         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
8892         (struct rtx_subst_pair): Remove AFTER field.
8893         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
8894         (propagate_for_debug): Remove MOVE parameter and adjust.
8895         (try_combine): In the special case where I2 is a PARALLEL, combine only
8896         destinations of SETs and set I2SRC to the I2 source.
8897         Adjust calls to propagate_for_debug throughout.
8898         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
8899         insns.
8900
8901 2010-10-06  Olivier Hainque  <hainque@adacore.com>
8902
8903         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
8904         switch on insn codes as sequence of ifs.
8905
8906 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8907
8908         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
8909         be UI_NONE for picochip.
8910         (picochip_option_override): Do not disable exception flags.
8911         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
8912         Declare.
8913
8914 2010-10-06  Richard Guenther  <rguenther@suse.de>
8915
8916         * Makefile.in (regmove.o): Depend on $(TARGET_H).
8917
8918 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
8919
8920         Implemented fast enumeration for Objective-C.
8921         * c-parser.c (objc_could_be_foreach_context): New.
8922         (c_lex_one_token): Recognize RID_IN keyword in a potential
8923         Objective-C foreach context.
8924         (c_parser_declaration_or_fndef): Added parameter.  Accept
8925         Objective-C RID_IN keyword as terminating a declaration; in that
8926         case, return the declaration in the new parameter.
8927         (c_parser_extenral_declaration): Updated calls to
8928         c_parser_declaration_or_fndef.
8929         (c_parser_declaration_or_fndef): Same change.
8930         (c_parser_compound_statement_nostart): Same change.
8931         (c_parser_label): Same change.
8932         (c_parser_objc_methodprotolist): Same change.
8933         (c_parser_omp_for_loop): Same change.
8934         (c_parser_for_statement): Detect and parse Objective-C foreach
8935         statements.
8936         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
8937         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
8938         fast enumeration parsing code to turn off the c99 error but still
8939         perform checks on the loop declarations.
8940         * c-tree.h (check_for_loop_decls): Updated declaration.
8941         * doc/objc.texi: Document fast enumeration.
8942
8943 2010-10-06  Nick Clifton  <nickc@redhat.com>
8944
8945         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
8946         (MDR_REGNUM): Define.
8947         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
8948         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
8949         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
8950         (REGISTER_NAMES): Add MDR.
8951         (DWARF2_DEBUGGING_INFO): Define to 1.
8952         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
8953         (F): New function.  Sets RTX_FRAME_RELATED_P.
8954         (mn10300_gen_multiple_store): Use F.
8955         (expand_prologue): Use F.  Use gen_movsf() to push floating
8956         point registers.
8957         (expand_epilogue): Use gen_movsf() to pop floating point registers.
8958         (mn10300_option_override): Disable combine stack adjust pass.
8959
8960 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
8961
8962         PR target/45901
8963         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
8964         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
8965
8966 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
8967
8968         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
8969         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
8970         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
8971         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
8972         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
8973         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
8974         BUILT_IN_TOUPPER): Mark as leaf.
8975
8976         PR middle-end/45838
8977         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
8978         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
8979         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
8980         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
8981         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
8982         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
8983         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
8984
8985 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
8986
8987         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
8988         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8989         (m68hc11_class_likely_spilled_p): New function.
8990
8991 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
8992
8993         * c-parser.c (c_parser_objc_method_definition): Updated comment.
8994
8995 2010-10-05  Jan Hubicka  <jh@suse.cz>
8996
8997         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
8998         Document.
8999         * opts.c (decode_options): Handle lto partitions.
9000         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
9001         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
9002
9003 2010-10-05  Jan Hubicka  <jh@suse.cz>
9004
9005         * cgraphunit.c (assemble_function): Output thunks and aliases before
9006         the function itself.
9007
9008 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
9009
9010         * config/picochip/picochip.c (picochip_option_override): Disable
9011         exception flags for picochip.
9012
9013 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
9014
9015         * opts-common.c (handle_option, handle_generated_option,
9016         read_cmdline_option, set_option): Add diagnostic_context
9017         parameter.  Update calls among these functions.
9018         (set_option): Don't use global_dc.
9019         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
9020         (decode_options): Pass global_dc to enable_warning_as_error.
9021         (common_handle_option): Pass global_dc to enable_warning_as_error.
9022         (enable_warning_as_error): Add diagnostic_context parameter.
9023         Document parameters.  Don't use global_dc.  Pass
9024         diagnostic_context parameter to handle_generated_option.
9025         * opts.h (set_option, handle_option, handle_generated_option,
9026         read_cmdline_option, enable_warning_as_error): Add
9027         diagnostic_context parameter.
9028         * Makefile.in (lto-opts.o): Update dependencies.
9029         * coretypes.h (struct diagnostic_context, diagnostic_context):
9030         Declare here.
9031         * diagnostic.h (diagnostic_context): Don't declare typedef here.
9032         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
9033         * langhooks-def.h (struct diagnostic_context): Don't declare here.
9034         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
9035         using diagnostic_context typedef.
9036         * langhooks.c (lhd_initialize_diagnostics): Declare using
9037         diagnostic_context typedef.
9038         * langhooks.h (struct diagnostic_context): Don't declare here.
9039         (initialize_diagnostics, print_error_function): Declare using
9040         diagnostic_context typedef.
9041         * lto-opts.c: Include diagnostic.h.
9042         (lto_reissue_options): Pass global_dc to set_option.  Pass
9043         DK_UNSPECIFIED not 0.
9044         * plugin.c (plugins_internal_error_function): Declare using
9045         diagnostic_context typedef.
9046         * plugin.h (struct diagnostic_context): Don't declare here.
9047         (plugins_internal_error_function): Declare using
9048         diagnostic_context typedef.
9049
9050 2010-10-05  Olivier Hainque  <hainque@adacore.com>
9051             Nicolas Roche  <roche@adacore.com>
9052
9053         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
9054         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
9055
9056 2010-10-05  Ira Rosen  <irar@il.ibm.com>
9057
9058         PR tree-optimization/45752
9059         * tree-vect-slp.c (vect_get_mask_element): Remove static
9060         variables, make them function arguments.
9061         (vect_transform_slp_perm_load): Pass new arguments to
9062         vect_get_mask_element.
9063
9064 2010-10-05  Richard Guenther  <rguenther@suse.de>
9065
9066         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
9067         (gimple_mod_pow2): Likewise.
9068         (gimple_mod_subtract): Likewise.
9069         (gimple_ic): Likewise.
9070         (gimple_stringop_fixed_value): Likewise.
9071         * tree-profile.c (tree_init_edge_profiler): Mark profile
9072         functions nothrow and leaf.
9073         (add_abnormal_goto_call_edges): Remove.
9074         (tree_gen_edge_profiler): Work on SSA form.
9075         (tree_gen_ic_profiler): Likewise.  Simplify.
9076         (do_tree_profiling): Update SSA form.
9077         (pass_tree_profile): Remove.
9078         (do_tree_profiling): Likewise.
9079         (gate_tree_profile_ipa): New function.
9080         (pass_ipa_tree_profile): New.
9081         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
9082         state of instrumented functions.
9083         * passes.c (init_optimization_passes): Remove early non-SSA
9084         inlining.  Move profiling after early optimizations.
9085         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
9086         (pass_ipa_early_inline): Likewise.
9087         * tree-pass.h (pass_ipa_early_inline): Remove.
9088         (pass_tree_profile): Likewise.
9089         (pass_ipa_tree_profile): Declare.
9090
9091 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9092             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
9093
9094         * config/s390/s390.c (z196_cost): New.
9095         (s390_handle_arch_option): Add -march=z196.
9096         (s390_option_override): Use the new cost function and use the z10
9097         defaults also for z196.
9098         (legitimate_reload_constant_p): Adjust comment.
9099         (legitimate_reload_fp_constant_p): New function.
9100         (s390_preferred_reload_class): Distingiush between FP and Int constants.
9101         (preferred_la_operand_p): Avoid la with index on z196.
9102         (s390_adjust_priority): Trigger also for z196.
9103         (s390_issue_rate): Issue rate for z196 is 3.
9104         (s390_z10_fix_long_loop_prediction): Rename to ...
9105         (s390_fix_long_loop_prediction): ... this.
9106         (s390_reorg): Apply the z10 adjustments also for z196.
9107         (s390_loop_unroll_adjust): Do this also for z196.
9108         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
9109         (enum processor_flags): Add PF_Z196.
9110         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
9111         (TARGET_CPU_Z196, TARGET_Z196): New macros.
9112         * config.gcc: Enable z196 for --with-arch.
9113         * config/s390/2817.md: New file.
9114         * config/s390/2084.md: New type for multiply and add.
9115         * config/s390/2097.md: Likewise.
9116         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
9117         (UNSPECV_ATOMIC_OP): New constants.
9118         (fmadddf, fmaddsf): New values for type attribute.
9119         (z196prop): New insn attribute.
9120         (cpu, cpu_facility): Add z196.
9121         (ATOMIC_Z196): New code iterator.
9122         (noxa): New code attribute.
9123         (gk): New mode attribute.
9124         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
9125         Support load zero for fp constants.
9126         (fixuns_truncdddi2, fixuns_trunctddi2)
9127         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
9128         for z196.
9129         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
9130         (popcounthi2, popcountqi2): New expander.
9131         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
9132         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
9133         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
9134         insn definition.
9135         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
9136         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
9137         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
9138         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
9139         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
9140         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
9141         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
9142         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
9143         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
9144         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
9145         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
9146         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
9147         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
9148         Support new z196 instructions.
9149
9150 2010-10-05  Richard Guenther  <rguenther@suse.de>
9151
9152         PR middle-end/45877
9153         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
9154         case where gimplification optimizes away the stmt.
9155
9156 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9157
9158         PR debug/45849
9159         * var-tracking.c (strip_pointer_flags): New function.
9160         (emit_note_insn_var_location): If rtx_equal_p check failed,
9161         retry on locations simplified with simplify_replace_fn_rtx
9162         and strip_pointer_flags as its callback.
9163
9164 2010-10-04  Jan Hubicka  <jh@suse.cz>
9165
9166         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
9167         (can_refer_decl_in_current_unit_p): ... this one; reverse return
9168         value; handle comdats too.
9169         (canonicalize_constructor_val): Use it; handle function_decls
9170         correctly.
9171         (gimple_fold_obj_type_ref_known_binfo): Likewise.
9172         * gimple.c (get_base_address): Accept all kinds of decls.
9173
9174 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9175
9176         * flags.h (g_switch_value, g_switch_set): Remove.
9177         * opts.c (g_switch_value, g_switch_set): Remove.
9178         * config/g.opt (G): Add Var(g_switch_value).
9179         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
9180         (alpha_option_override): Check global_options_set.x_g_switch_value
9181         instead of g_switch_set.
9182         (alpha_in_small_data_p): Remove cast in comparison with
9183         g_switch_value.
9184         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
9185         g_switch_value to unsigned HOST_WIDE_INT.
9186         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
9187         with g_switch_value.
9188         (frv_handle_option): Don't handle -G here.
9189         (frv_option_override): Check global_options_set.x_g_switch_value
9190         instead of g_switch_set.  Don't modify g_switch_set.
9191         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
9192         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
9193         g_switch_value to unsigned HOST_WIDE_INT.
9194         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
9195         (ia64_option_override): Check global_options_set.x_g_switch_value
9196         instead of g_switch_set.
9197         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
9198         Remove.
9199         (lm32_in_small_data_p): Remove cast in comparison with
9200         g_switch_value.
9201         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
9202         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
9203         HOST_WIDE_INT.
9204         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
9205         (m32r_init): Check global_options_set.x_g_switch_value instead of
9206         g_switch_set.
9207         (m32r_in_small_data_p): Remove cast in comparison with
9208         g_switch_value.
9209         (m32r_file_start): Format g_switch_value with %d.
9210         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
9211         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
9212         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
9213         handle -G here.
9214         (microblaze_option_override): Check
9215         global_options_set.x_g_switch_value instead of g_switch_set.
9216         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
9217         (mips_option_override): Check global_options_set.x_g_switch_value
9218         instead of g_switch_set.
9219         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
9220         (rs6000_file_start): Format g_switch_value with %d.
9221         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
9222         comparisons with g_switch_value.
9223         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9224         global_options_set.x_g_switch_value instead of g_switch_set.
9225         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9226         global_options_set.x_g_switch_value instead of g_switch_set.
9227         * config/score/score.c (score_handle_option): Don't handle -G here.
9228         * config/score/score3.c (score3_option_override): Check
9229         global_options_set.x_g_switch_value instead of g_switch_set.
9230         * config/score/score7.c (score7_option_override): Check
9231         global_options_set.x_g_switch_value instead of g_switch_set.
9232
9233 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
9234
9235         * common.opt (fira-coalesce): Remove.
9236
9237         * doc/invoke.texi (flag_ira_coalesce): Remove.
9238
9239         * ira-color.c (allocno_coalesced_p): Move before
9240         copy_freq_compare_func.
9241         processed_coalesced_allocno_bitmap): Ditto.
9242         (update_conflict_hard_regno_costs): Don't use
9243         ALLOCNO_FIRST_COALESCED_ALLOCNO.
9244         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
9245         (assign_hard_reg): Assume no coalesced allocnos.
9246         (get_coalesced_allocnos_attributes): Remove.
9247         (bucket_allocno_compare_func): Assume no coalesced allocnos.
9248         (push_allocno_to_stack): Ditto.
9249         (remove_allocno_from_bucket_and_push): Use
9250         ira_print_expanded_allocno instead of print_coalesced_allocno.
9251         (push_allocnos_to_stack): Assume uncoalesced allocnos.
9252         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
9253         all_conflicting_hard_regs.
9254         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
9255         (setup_allocno_left_conflicts_size): Ditto.
9256         (put_allocno_into_bucket): Ditto.
9257         (copy_freq_compare_func): Remove.
9258         (copy_freq_compare_func, merge_allocnos): Move before
9259         coalesced_pseudo_reg_freq_compare.
9260         coalesced_allocno_conflict_p): Ditto.
9261         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
9262         parameter.  Assume it true.
9263         (color_allocnos): Assume uncoalesced allocnos.  Use
9264         ira_print_expanded_allocno instead of print_coalesced_allocno.
9265         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
9266         parameter.
9267
9268         * ira.c: Remove comment about coalescing.
9269
9270 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9271
9272         * config/mips/mips.h (target_flags_explicit): Declare for
9273         GENERATOR_FILE.
9274
9275 2010-10-04  Andi Kleen  <ak@linux.intel.com>
9276
9277         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
9278         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
9279
9280 2010-10-04  Matthias Klose  <doko@ubuntu.com>
9281
9282         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
9283         multilib osdirname if it exists.
9284         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
9285
9286 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
9287
9288         PR middle-end/45876
9289         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
9290         arg0's type or its unsigned counterpart as utype.  Convert
9291         arg1 to utype unconditionally.
9292
9293 2010-10-04  Julian Brown  <julian@codesourcery.com>
9294
9295         * expr.c (expand_assignment): Add assertion to prevent emitting
9296         null rtx for movmisalign pattern.
9297         (expand_expr_real_1): Likewise.
9298         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
9299         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
9300         (arm_vector_alignment_reachable): New.
9301         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
9302         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
9303         (arm_print_operand): Include alignment qualifier in %A.
9304         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
9305         (movmisalign<mode>): New expander.
9306         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
9307         insn patterns.
9308
9309 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
9310
9311         * optc-gen.awk: Define global_options_set.  Don't define
9312         target_flags_explicit.
9313         * opth-gen.awk: Declare global_options_set.  Define
9314         target_flags_explicit as macro.
9315         * opts-common.c (handle_option): Take opts_set and generated_p
9316         parameters.
9317         (handle_generated_option, read_cmdline_option, set_option): Take
9318         opts_set parameter.
9319         (set_option): Use opts_set instead of hardcoding target_flags and
9320         target_flags_explicit.
9321         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
9322         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
9323         flag_value_profile_transformations_set, flag_peel_loops_set,
9324         flag_branch_probabilities_set, flag_inline_functions_set,
9325         flag_ipa_cp_set, flag_ipa_cp_clone_set,
9326         flag_predictive_commoning_set, flag_unswitch_loops_set,
9327         flag_gcse_after_reload_set): Remove.
9328         (common_handle_option, lang_handle_option, target_handle_option):
9329         Take opts_set parameter.  Assert that it is &global_options_set.
9330         (common_handle_option): Don't set _set variables.  Check opts_set
9331         instead of such variables.
9332         (enable_warning_as_error): Pass &global_options_set to
9333         handle_generated_option.
9334         * opts.h (cl_option_handler_func.handler, set_option,
9335         handle_option, handle_generated_option, read_cmdline_option): Add
9336         opts_set parameters.
9337         (handle_option): Add generated_p parameter.
9338         * config/i386/i386.c (ix86_function_specific_save,
9339         ix86_function_specific_restore): Updat for renaming of
9340         target_flags_explicit field.
9341         * config/i386/i386.opt (target_flags_explicit): Rename to
9342         ix86_target_flags_explicit.
9343         * config/ia64/ia64.c (ia64_override_options_after_change): Check
9344         global_options_set.x_flag_selective_scheduling and
9345         global_options_set.x_flag_selective_scheduling2, not
9346         sel_sched_switch_set.
9347         * flags.h (sel_sched_switch_set,
9348         flag_speculative_prefetching_set): Remove.
9349         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
9350         that it is &global_options_set.
9351         (process_command): Pass &global_options_set to read_cmdline_option.
9352         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
9353         set_option.
9354         * toplev.c (target_flags_explicit): Remove.
9355
9356 2010-10-04  Jan Hubicka  <jh@suse.cz>
9357
9358         PR middle-end/45871
9359         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
9360         use get_ref_base_and_offset to handle references.
9361         (fold_const_aggregate_ref): Update.
9362
9363 2010-10-04  Martin Jambor  <mjambor@suse.cz>
9364
9365         PR tree-optimization/45572
9366         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
9367         ipa_check_create_node_params.
9368         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
9369
9370 2010-10-04  Yao Qi  <yao@codesourcery.com>
9371
9372         * doc/passes.texi: Clean up.
9373
9374 2010-10-03  Ian Lance Taylor  <iant@google.com>
9375
9376         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
9377         referring to a field using a typedef name.
9378         (find_anonymous_field_with_type): New static function.
9379         (convert_to_anonymous_field): New static function.
9380         (convert_for_assignment): If -fplan9-extensions, permit converting
9381         pointer to struct to pointer to anonymous field.
9382         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
9383         (is_duplicate_field): New static function.
9384         (detect_field_duplicates_hash): If -fplan9-extensions, check for
9385         typedef names duplicating field names.
9386         (detect_field_duplicates): Likewise.
9387         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
9388         (C Dialect Options): Document -fplan9-extensions.
9389         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
9390
9391 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
9392
9393         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
9394         revision 164914.
9395         (vect_create_data_ref_ptr): Likewise.
9396         * tree-vect-stmts.c (vectorizable_store): Likewise.
9397         (perm_mask_for_reverse): Likewise.
9398         (reverse_vec_elements): Likewise.
9399         (vectorizable_load): Likewise.
9400
9401 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9402
9403         * cppbuiltin.c: New file.
9404         * cppbuiltin.h: New file.
9405         * Makefile.in: Take into account cppbuiltin.{h,c}.
9406
9407 2010-10-03  Andi Kleen  <ak@linux.intel.com>
9408
9409         * lto-cgraph.c (input_cgraph): Check for missing sections.
9410
9411 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
9412
9413         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
9414         to nonimmediate_operand.  Force operand 2 to register when allowed.
9415         (*<shiftrt_insn><mode>3_mask): Ditto.
9416         (*<rotate_insn><mode>3_mask): Ditto.
9417
9418 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
9419
9420         PR tree-optimization/45720
9421         PR tree-optimization/45764
9422         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9423         Don't accept backwards consecutive accesses.
9424         (vect_create_data_ref_ptr): Disallow negative steps.
9425
9426         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
9427         (perm_mask_for_reverse): Removed.
9428         (reverse_vec_elements): Likewise.
9429         (vectorizable_load): Don't handle negative steps.
9430
9431 2010-10-02  Jan Hubicka  <jh@suse.cz>
9432
9433         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
9434         call destination is known.
9435
9436 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9437
9438         PR target/45820
9439         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
9440         earlier.
9441
9442 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9443
9444         * doc/install.texi (Configuration): Document build_configargs,
9445         host_configargs, target_configargs.
9446
9447 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
9448
9449         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
9450         (*<shiftrt_insn><mode>3_mask): Ditto.
9451         (*<rotate_insn><mode>3_mask): Ditto.
9452
9453 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
9454
9455         PR tree-optimization/44716
9456         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
9457         (HOT_TEXT_SECTION_NAME): Define.
9458
9459 2010-10-01  Nick Clifton  <nickc@redhat.com>
9460
9461         * common.opt: Add -fcombine-stack-adjustments.
9462         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
9463         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
9464         flag_combine_stack_adjustments.
9465         * doc/invoke.texi: Document the new option.
9466
9467 2010-10-01  Richard Guenther  <rguenther@suse.de>
9468
9469         PR tree-optimization/45854
9470         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
9471
9472 2010-10-01  Anthony Green  <green@moxielogic.com>
9473
9474         * config.gcc: Fix moxie-*-rtems* configuration.
9475
9476 2010-10-01  Richard Guenther  <rguenther@suse.de>
9477
9478         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
9479         (gen_decl_die): Likewise.
9480
9481 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9482
9483         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
9484         to the function code for SPU MD builtins.
9485         (spu_expand_builtin): Update.
9486         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
9487
9488 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9489
9490         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
9491         sjlj_except_unwind_info.
9492
9493 2010-10-01  Tristan Gingold  <gingold@adacore.com>
9494
9495         * configure.ac: Define the nop insn for avr*-*-*
9496         * configure: Regenerate.
9497
9498 2010-10-01  Alan Modra  <amodra@gmail.com>
9499
9500         PR target/45807
9501         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
9502         extend toc_restore_insn.
9503
9504 2010-09-30  Richard Guenther  <rguenther@suse.de>
9505
9506         PR tree-optimization/43959
9507         * function.c (gimplify_parameters): Use create_tmp_reg instead of
9508         create_tmp_var.
9509
9510 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9511
9512         * config/sh/sh.c (sh_expand_prologue): Set
9513         current_function_static_stack_size.
9514
9515 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9516
9517         * configure.ac: Check for Solaris 8 ld with .hidden support.
9518         * configure: Regenerate.
9519
9520 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9521
9522         PR middle-end/45758
9523         * graphite.c (graphite_initialize): Call scev_reset.
9524
9525 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9526
9527         * sese.h (scev_analyzable_p): Return false for real or floating
9528         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
9529
9530 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9531
9532         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
9533         and ps.
9534         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
9535         domain.
9536         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
9537         Do not allocate ub_expr, it is passed in initialized.
9538
9539 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9540
9541         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
9542         (build_cloog_prog): Dump CLooG input file when
9543         flag_graphite_dump_cloog is set.  This is disabled on trunk.
9544         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
9545
9546 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9547
9548         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
9549         verify_dominators for CDI_POST_DOMINATORS.
9550         * sese.h: Remove comment about CDI_POST_DOMINATORS.
9551         (recompute_all_dominators): Remove call to free_dominance_info
9552         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
9553         for CDI_POST_DOMINATORS.
9554
9555 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9556
9557         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
9558         over pbb_dim_iter_domain.
9559
9560 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9561
9562         * graphite-flattening.c: Fix comments.
9563
9564 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9565
9566         * Makefile.in (OBJS-common): Add graphite-flattening.o.
9567         (graphite-flattening.o): New rule.
9568         * common.opt (floop-flatten): New flag.
9569         * doc/invoke.texi (-floop-flatten): Documented.
9570         * graphite-flattening.c: New.
9571         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
9572         * graphite-poly.h (flatten_all_loops): Declared.
9573         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
9574         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
9575         is set, also set flag_graphite.
9576
9577 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9578
9579         * graphite-poly.c (cloog_checksum): New.
9580         * graphite-poly.h (cloog_checksum): Declared.
9581
9582 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9583
9584         * graphite-poly.c (pbb_number_of_iterations): Removed.
9585         (pbb_number_of_iterations_at_time): Correctly compute the number
9586         of iterations in the transformed loop.
9587         * graphite-poly.h (pbb_number_of_iterations): Removed.
9588
9589 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9590
9591         * graphite-poly.h (lst_update_scattering_seq): Removed.
9592         (lst_update_scattering): Correctly handle outermost loop dewey
9593         renumbering.
9594
9595 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9596
9597         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
9598         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
9599         * graphite-poly.h (lst_niter_for_loop): New.
9600
9601 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9602
9603         * graphite-poly.c (apply_poly_transforms): Do not abort when the
9604         transform read from disk is not legal.  Call fatal_error instead.
9605
9606 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9607
9608         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
9609         (print_scop_header): Removed.  Inlined in the only call place...
9610         (print_scop): ... here.
9611
9612 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9613
9614         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
9615
9616 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9617
9618         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
9619
9620 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9621
9622         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
9623         (dot_deps_stmt): Same.
9624         * graphite-poly.c (dot_lst): Same.
9625
9626 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9627
9628         * graphite-blocking.c (scop_do_strip_mine): Do not call
9629         graphite_legal_transform.
9630         (scop_do_block): Same.
9631
9632 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9633
9634         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
9635         description.
9636
9637 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9638
9639         * tree-scalar-evolution.c (instantiate_array_ref): New.
9640         (instantiate_scev_r): Also handle ARRAY_REFs.
9641
9642 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9643
9644         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9645         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
9646         RESULT_DECL, and FIELD_DECL.  Return false for an
9647         SSA_NAME_IS_DEFAULT_DEF.
9648         (compute_scalar_evolution_in_loop): Do not further analyze the
9649         scalar evolution when no_evolution_in_loop_p returns true.
9650
9651 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9652
9653         * tree-chrec.h (evolution_function_is_affine_p): Do not check
9654         whether CHREC_LEFT is invariant.  A function is affine when
9655         CHREC_RIGHT is invariant.
9656
9657 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9658
9659         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
9660         is_gimple_reg.
9661         (rewrite_degenerate_phi): Same.
9662         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
9663
9664 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
9665
9666         * graphite-scop-detection.c (graphite_can_represent_scev,
9667         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
9668         graphite_can_represent_loop): Remove outermost_loop.
9669
9670 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9671
9672         PR middle-end/45229
9673         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
9674         handle GIMPLE_CALLs with no LHS.
9675
9676 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9677
9678         * graphite-poly.c (init_graphite_out_file): New.
9679         (init_graphite_in_file): New.
9680         (apply_poly_transforms): Updated to enable reading and writing of
9681         multiple scop files.
9682
9683 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
9684
9685         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
9686         redundant checks.
9687
9688 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9689
9690         * graphite-clast-to-gimple.c (precision_for_value): Adjust
9691         computation of precision by 1.
9692
9693 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9694
9695         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
9696         (openscop_read_polyhedron_matrix): New.
9697         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
9698         (openscop_read_N_int): Same.
9699         * graphite-poly.c (openscop_read_N_int): New.
9700         (openscop_read_one_int): New.
9701         (openscop_read_N_string): New.
9702         (openscop_read_one_string): New.
9703         (openscop_read_powerset_matrix): New.
9704         (graphite_read_transforms): Remove.
9705         (graphite_read_scatt): New.
9706         (graphite_read_scop_file): New.
9707         (apply_poly_transforms): Updated to call graphite_read_scop_file.
9708
9709 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9710
9711         * graphite-poly.c: Change include order.
9712
9713 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
9714
9715         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
9716         (cloog_matrix_nrows): New.
9717
9718 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9719
9720         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
9721         from matrix lines.
9722         * graphite-poly.c (openscop_print_scattering_function_1): Same.
9723         (print_scattering_function_1): Same.
9724         (openscop_print_pbb_domain): Same.
9725         (openscop_print_scop_context): Same.
9726         (print_scop_context): Same.
9727
9728 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
9729
9730         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
9731         (openscop_print_pdr_polyhedron): Print pph.
9732
9733 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9734
9735         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
9736         priority signed types.
9737
9738 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
9739
9740         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
9741         the call to lang_hooks.types.type_for_size.  Call
9742         build_nonstandard_integer_type.
9743
9744 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
9745
9746         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
9747         (openscop_print_polyhedron_matrix): New.
9748         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
9749         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
9750         (openscop_print_pdr_powerset): New.
9751         (openscop_print_powerset_matrix): New.
9752         (openscop_print_scattering_function_1): New.
9753         (print_scattering_function): Add support for scattering names and
9754         OpenScop format.
9755         (graphite_write_transforms): Remove.
9756         (print_pdr_access_layout): Updated to support OpenScop format.
9757         (print_pdr): Same.
9758         (openscop_print_pbb_domain): New.
9759         (print_pbb_body): Added a parameter to allow indicating that pbb_body
9760         is not provided.
9761         (print_pbb): Updated to call the new print_pbb_body.
9762         (openscop_print_scop_context): New.
9763         (print_scop_header): New.
9764         (print_scop): Updated to call print_scop_header.
9765         * graphite-poly.h: Document OpenScop format.
9766
9767 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
9768
9769         * config/cris/m32c.c (cris_memory_move_cost): New.
9770         (cris_register_move_cost): Make static. Change arguments type from
9771         enum reg_class to reg_class_t.
9772         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9773         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9774         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
9775
9776 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9777
9778         PR target/45843
9779         * config/i386/i386.c (ix86_gimplify_va_arg): Use
9780         INTVAL (XEXP (slot, 1)) as prev_size.
9781
9782 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
9783
9784         PR target/45837
9785         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
9786         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
9787         defined.
9788         * config/rs6000/option-defaults.h (toplevel): Change #if
9789         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
9790         global option changes.
9791
9792 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
9793
9794         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
9795
9796         PR tree-optimization/31261
9797         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
9798         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
9799
9800 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9801
9802         PR bootstrap/45796
9803         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
9804         special-casing for generators and turn into ...
9805         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
9806         rule, for better error messages in case of toplevel dependency errors.
9807         (genprog): Add hooks, rename to ...
9808         (genprogerr): ... this, and let genprog also contain check,
9809         checksum, condmd.
9810         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
9811         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
9812         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
9813
9814 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
9815             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9816
9817         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
9818         for GMP, MPFR and MPC.
9819
9820 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9821
9822         * config/sparc/sparc.opt (mimpure-text): Move ...
9823         * config/sol2.opt: ... here.  Correct description.
9824         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
9825         * doc/invoke.texi (Option Summary, SPARC Options): Move
9826         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
9827         (Option Summary, Solaris 2 Options): ... here.
9828         (Submodel Options, Solaris 2 Options): New menu entry.
9829         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
9830         (Solaris 2 Options): ... here.
9831
9832 2010-09-30  Michael Eager  <eager@eagercon.com>
9833
9834         * extend.texi (interrupt_handler): Add MicroBlaze to list.
9835         (save_volatiles): Describe option for MicroBlaze.
9836         * invoke.texi: Add MicroBlaze Options.
9837         * contrib.texi: Add acknowledgment.
9838         * md.texi: Add MicroBlaze d and z constraints.
9839         * install.texi: Add microblaze-*-elf.
9840         * configure.ac: Add microblaze-*-* to target list.
9841         * configure: Regenerate.
9842         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
9843         * config/microblaze/microblaze-protos.h: New.
9844         * config/microblaze/crti.s: New.
9845         * config/microblaze/predicates.md: New.
9846         * config/microblaze/linux.h: New.
9847         * config/microblaze/microblaze.md: New.
9848         * config/microblaze/constraints.md: New.
9849         * config/microblaze/crtn.s: New.
9850         * config/microblaze/microblaze.opt: New.
9851         * config/microblaze/microblaze-c.c: New.
9852         * config/microblaze/t-microblaze: New.
9853         * config/microblaze/microblaze.c: New.
9854         * config/microblaze/microblaze.h: New.
9855
9856 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
9857
9858         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
9859         parse @optional/@required and set the flags as appropriate.
9860
9861 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
9862
9863         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
9864
9865 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
9866
9867         * opt-functions.awk (static_var): Update comment.
9868         (var_ref): Return offsetof expression or -1, not variable address.
9869         * optc-gen.awk: Generate structure field initializers instead of
9870         static variables.  Expect -1 for missing variables instead of null
9871         pointer.  Add gcc_options parameters to generated functions.
9872         * opth-gen.awk: Generate structure fields for static variables.
9873         Add gcc_options parameters to generated functions.
9874         * common.opt (optimize, optimize_size): Add variables.
9875         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
9876         &global_options to cl_target_option_restore.
9877         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
9878         &global_options to cl_optimization_restore, cl_target_option_save
9879         and cl_target_option_restore.
9880         (ix86_set_current_function): Pass &global_options to
9881         cl_target_option_restore.
9882         * config/pdp11/pdp11.h (optimize): Remove.
9883         * config/rs6000/rs6000.h (optimize): Remove.
9884         * config/sh/sh.h (optimize): Remove.
9885         * config/xtensa/xtensa.h (optimize): Remove.
9886         * coretypes.h (struct gcc_options): Declare.
9887         * diagnostic.c (diagnostic_initialize): Initialize
9888         context->option_state.
9889         (diagnostic_report_diagnostic): Pass option_state to
9890         option_enabled hook.
9891         * diagnostic.h (diagnostic_context.option_enabled): Add void *
9892         parameter.
9893         (diagnostic_context.option_state): New field.
9894         * final.c (final_start_function, final, final_scan_insn): Rename
9895         optimize parameter to optimize_p.
9896         * flags.h (optimize, optimize_size): Remove.
9897         * function.c (invoke_set_current_function_hook): Pass
9898         &global_options to cl_optimization_restore.
9899         * gcc.c (driver_handle_option): Take gcc_options parameter.
9900         Assert that it is &global_options.
9901         (process_command): Pass &global_options to read_cmdline_option.
9902         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
9903         option_enabled.
9904         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
9905         &global_options to set_option.
9906         * opts-common.c (handle_option, handle_generated_option,
9907         read_cmdline_option, set_option): Take explicit gcc_options
9908         parameters.  Use option_flag_var.
9909         (option_flag_var): New.
9910         * opts.c (common_handle_option, lang_handle_option,
9911         target_handle_option): Take gcc_options parameter.  Assert that it
9912         is &global_options.
9913         (read_cmdline_options): Pass &global_options to read_cmdline_option.
9914         (print_filtered_help): Use option_flag_var.  Pass &global_options
9915         to option_enabled.
9916         (common_handle_option): Use option_flag_var.
9917         (option_enabled): Take opts parameter.  Use option_flag_var.
9918         (get_option_state): Take gcc_options parameter.  Use
9919         option_flag_var.  Pass gcc_options parameter to option_enabled.
9920         (enable_warning_as_error): Pass &global_options to
9921         handle_generated_option.
9922         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
9923         (cl_option_handler_func.handler): Take gcc_options parameter.
9924         (option_enabled, get_option_state, set_option, handle_option,
9925         handle_generated_option, read_cmdline_option): Take gcc_options
9926         parameters.
9927         * toplev.c (optimize, optimize_size): Remove.
9928         (print_switch_values): Pass &global_options to option_enabled.
9929         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
9930         to get_option_state.
9931         (general_init): Initialize global_dc->option_state.
9932         * tree.c (build_optimization_node): Pass &global_options to
9933         cl_optimization_save.
9934         (build_target_option_node): Pass &global_options to
9935         cl_target_option_save.
9936
9937 2010-09-30  Martin Jambor  <mjambor@suse.cz>
9938
9939         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
9940         zero sized bit-fields.
9941
9942 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
9943
9944         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
9945         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
9946         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
9947         (c_parser_objc_class_declaration): Same change.
9948         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
9949         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9950         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
9951         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
9952         and RID_AT_PUBLIC instead of RID_PUBLIC.
9953         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
9954         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
9955
9956 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
9957
9958         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
9959         Add links to current providers of packages for Solaris and IRIX.
9960
9961 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
9962
9963         Merge from 'apple/trunk' branch on FSF servers.
9964         * c-parser.c: Applied change originally in c-parse.in.
9965
9966         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
9967
9968         Radar 4281748
9969         * c-decl.c (start_decl): Check for redeclaration of class name.
9970         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
9971
9972 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
9973
9974         * config/ia64/ia64.c (ia64_builtin_decl): New.
9975         (TARGET_BUILTIN_DECL): Define.
9976         (ia64_builtins): New.
9977         (ia64_init_builtins): Save decls in ia64_builtins.
9978
9979 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
9980
9981         PR target/40457
9982         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
9983         (move2add_use_add3_insn): Likewise.
9984         (reload_cse_move2add): Likewise.
9985         * rtlanal.c (get_full_rtx_cost): New function.
9986         * rtl.h (struct full_rtx_costs): New.
9987         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
9988         costs_add_n_insns): New inline functions.
9989         (get_full_rtx_cost): Declare.
9990
9991         PR c/45054
9992         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
9993         invariants.  Check for reg_equiv_invariant.
9994         (reload): Assert that spilled_pseudos is empty when returning.
9995
9996 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
9997
9998         * config/i386/mingw32.h (TARGET_64BIT): replaced by
9999         TARGET_64BIT_DEFAULT in #if check.
10000
10001 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
10002
10003         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
10004
10005 2010-09-29  Mike Stump  <mikestump@comcast.net>
10006
10007         * config/darwin.h (flag_mkernel): Remove.
10008         (flag_apple_kext): Likewise.
10009
10010 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10011             Jack Howarth  <howarth@bromo.med.uc.edu>
10012
10013         * config/darwin.opt (undefined): Add.
10014
10015 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10016
10017         PR testsuite/45664
10018         * configure.ac: Add --enable-indirect-function option.
10019         * config.gcc: Add default_gnu_indirect_function.
10020         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
10021         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
10022         * varasm.c (do_assemble_alias): Adjust for macro name change.
10023         * configure: Rebuilt.
10024         * doc/install.texi: Document --enable-indirect-function.
10025
10026 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10027
10028         * doc/options.texi (Variable, Var, Init): Update documentation
10029         without reference to VarExists.
10030         (VarExists): Remove.
10031         * common.opt, config/i386/i386.opt, config/linux.opt,
10032         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
10033         Don't use VarExists.
10034
10035 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
10036
10037         * optc-gen.awk: Generate global_options initializer instead of
10038         individual variables.  Add x_ prefix to names of structure members.
10039         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
10040         names of structure members.
10041         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10042         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
10043         * doc/tm.texi: Regenerate.
10044         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10045         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10046         * c-parser.c (disable_extension_diagnostics,
10047         restore_extension_diagnostics): Update names of cpp_options members.
10048         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10049         * common.opt (fcompare-debug-second): Don't use Var.
10050         * config/alpha/alpha.h (target_flags): Remove.
10051         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10052         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10053         * config/bfin/bfin.h (target_flags): Remove.
10054         * config/cris/cris.h (target_flags): Remove.
10055         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
10056         cl_target_option members.
10057         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
10058         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
10059         ix86_can_inline_p): Update names of cl_target_option members.
10060         * config/i386/i386.h (ix86_isa_flags): Remove.
10061         * config/lm32/lm32.h (target_flags): Remove.
10062         * config/mcore/mcore.h (mcore_stack_increment): Remove.
10063         * config/mcore/mcore.md (addsi3): Remove extern declaration of
10064         flag_omit_frame_pointer.
10065         * config/mep/mep.h (target_flags): Remove.
10066         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10067         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
10068         * config/mmix/mmix.h (target_flags): Remove.
10069         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
10070         flag_expensive_optimizations): Remove.
10071         * config/s390/s390.h (flag_pic): Remove.
10072         * config/score/score-conv.h (target_flags): Remove.
10073         * config/sh/sh.h (sh_fixed_range_str): Remove.
10074         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
10075         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10076         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10077         * diagnostic.c (diagnostic_initialize): Update names of
10078         diagnostic_context members.
10079         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
10080         warn_system_headers.
10081         (diagnostic_report_warnings_p): Update for new names.
10082         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
10083         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
10084         HARD_FRAME_POINTER_IS_ARG_POINTER.
10085         * flags.h (flag_compare_debug): Declare.
10086         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10087         * opts.c (flag_compare_debug): Define.
10088         (common_handle_option): Update names of diagnostic_context
10089         members.  Handle -fcompare-debug-second.
10090         (fast_math_flags_struct_set_p): Update names of cl_optimization
10091         members.
10092         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10093         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10094         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10095         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10096         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
10097         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
10098         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
10099         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
10100         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
10101
10102 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
10103
10104         * config/picochip/picochip.c (picochip_output_internal_label):
10105         This function can now be called for debug CFI labels, which can come
10106         in the middle of a vliw instruction.  Postpone until end of vliw.
10107
10108 2010-09-29  Richard Guenther  <rguenther@suse.de>
10109
10110         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
10111         (DECL_FILE_SCOPE_P): Use it.
10112         (TYPE_FILE_SCOPE_P): New macro.
10113
10114 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10115
10116         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
10117         a CPP_NAME which is a reserved word, clearly separate cases for
10118         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
10119
10120 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
10121
10122         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
10123         token->value with the canonical spelling.  Do exactly like C and
10124         C++ and leave it as it is.
10125
10126 2010-09-28  Richard Henderson  <rth@redhat.com>
10127
10128         * config/alpha/alpha.c (alpha_builtins): New.
10129         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
10130         (alpha_builtin_function): New.
10131         (alpha_add_builtins, alpha_init_builtins): Use it.
10132
10133 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
10134
10135         * doc/standards.texi (Standards): Expanded the section on
10136         Objective-C and Objective-C++.
10137
10138 2010-09-28  DJ Delorie  <dj@redhat.com>
10139
10140         PR target/45800
10141         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
10142         volatile MEMs.
10143
10144 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10145
10146         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
10147         attributes on methods.
10148          (c_parser_objc_method_definition): Handle attributes.
10149         (c_parser_objc_methodproto): Likewise.
10150         (c_parser_objc_maybe_method_attributes): New.
10151         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
10152         missing definition, similar to that in ObjC++.
10153
10154 2010-09-28  Richard Henderson  <rth@redhat.com>
10155
10156         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
10157         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10158         (CONFIG_SJLJ_EXCEPTIONS): Remove.
10159         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
10160         (STACK_CHECK_PROTECT): Likewise.
10161         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
10162         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
10163         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
10164         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
10165         (dwarf2out_assembly_start): Likewise.
10166         * except.c (init_eh): Use targetm.except_unwind_info.
10167         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
10168         (output_one_function_exception_table): Likewise.
10169         * final.c: Unconditionally include dwarf2out.h.
10170         (final_start_function): Unconditionally call dwarf2out routines.
10171         (final_end_function, final_scan_insn): Likewise.
10172         * function.c (expand_function_end): Use targetm.except_unwind_info.
10173         * opts.c (decode_options): Use targetm.except_unwind_info.
10174         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
10175         * target.def (debug_unwind_info, except_unwind_info): New.
10176         * target.h (enum unwind_info_type): New.
10177         * targhooks.c (default_debug_unwind_info): New.
10178         (default_except_unwind_info): New.
10179         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
10180         * targhooks.h: Declare them.
10181         * tree-tailcall.c: Include "target.h"
10182         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
10183         * Makefile.in (tree-tailcall.o): Update.
10184         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
10185         (lhd_gcc_personality): Likewise.
10186
10187         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
10188         (TARGET_EXCEPT_UNWIND_INFO): New.
10189         (DWARF2_UNWIND_INFO): Update.
10190         (TARGET_DEBUG_UNWIND_INFO): New.
10191         * doc/tm.texi: Rebuild.
10192
10193         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
10194         targetm.except_unwind_info.
10195
10196         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
10197         (arm_except_unwind_info): New.
10198         (arm_compute_func_type): Use it.
10199         (arm_expand_prologue, thumb_pushpop): Likewise.
10200         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
10201         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
10202         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
10203         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
10204         (DWARF2_UNWIND_INFO): Remove.
10205         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
10206         (ARM_EABI_UNWIND_TABLES): Remove.
10207
10208         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
10209         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
10210         (ia64_except_unwind_info): New.
10211         (ia64_output_function_prologue): Use it.
10212         (ia64_add_bundle_selector_before): Likewise.
10213         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
10214         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
10215         (TARGET_UNWIND_INFO): Remove.
10216
10217         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
10218
10219 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
10220
10221         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
10222         (c_parser_objc_protocol_definition): Likewise.
10223         (c_parser_external_declaration): Provide dummy attribute arguments.
10224         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
10225         (c_parser_objc_class_definition): Handle attributes.
10226         (c_parser_objc_protocol_definition): Likewise.
10227
10228 2010-09-28  Tobias Burnus  <burnus@net-b.de>
10229
10230         PR fortran/40569
10231         PR fortran/40568
10232         * toplev.h (save_decoded_options, save_decoded_options_count):
10233         New global variables.
10234         * toplev.c (save_decoded_options, save_decoded_options_count):
10235         Export variables.
10236
10237 2010-09-28  Ian Lance Taylor  <iant@google.com>
10238
10239         * config/i386/i386.c (ix86_supports_split_stack): Test
10240         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
10241
10242 2010-09-28  Ian Lance Taylor  <iant@google.com>
10243
10244         PR target/45815
10245         * opts.c (decode_options): Don't test whether the target supports
10246         split stack if flag_split_stack == 0.
10247
10248 2010-09-28  Jan Hubicka  <jh@suse.cz>
10249
10250         * builtin-attrs.def (ATTR_LEAF): New attribute.
10251         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
10252         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
10253         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
10254         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
10255         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
10256         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
10257         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
10258         * sync-builtins.def: Annotate all builtins by leaf.
10259         * omp-builtins.def: Annotate all builtins by leaf.
10260         * builtins.def: Annotate relevant builtins with leaf attribute.
10261         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
10262         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
10263         leaf.
10264
10265 2010-09-28  Jan Hubicka  <jh@suse.cz>
10266
10267         * tree-ssa-ccp.c (fold_ctor_reference): New function.
10268         (fold_const_aggregate_ref): Use it.
10269         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
10270         into external static.
10271
10272 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10273
10274         PR target/44452
10275         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
10276         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
10277         (ix86_solaris_return_in_memory): Remove.
10278         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
10279         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10280         (TARGET_SUBTARGET_DEFAULT): Redefine.
10281         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
10282         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
10283         (TARGET_SUBTARGET_DEFAULT): Redefine.
10284         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
10285         -mvect8-ret-in-mem.
10286         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
10287
10288 2010-09-29  Alan Modra  <amodra@gmail.com>
10289
10290         PR target/45807
10291         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
10292         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
10293         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
10294         Delete.
10295         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
10296         (rs6000_emit_prologue): Don't just create frame save info for r2,
10297         actually save r2.
10298
10299 2010-09-28  Richard Henderson  <rth@redhat.com>
10300
10301         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
10302         when 8 bytes are requested.
10303
10304 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10305
10306         * config/avr/avr.c (expand_prologue): Set
10307         current_function_static_stack_size.
10308
10309 2010-09-28  Tristan Gingold  <gingold@adacore.com>
10310
10311         * config/alpha/alpha.md: Change the initial condition of the
10312         probing loop.
10313
10314 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
10315
10316         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
10317         Split from *avx_<maxmin:code><mode>3.
10318         (*avx_<smaxmin:code><mode>3): Ditto.
10319         * config/i386/i386.md (maxmin): Remove code iterator.
10320
10321 2010-09-27  Ian Lance Taylor  <iant@google.com>
10322
10323         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
10324         requires assembler support for CFI directives.
10325
10326 2010-09-27  Richard Henderson  <rth@redhat.com>
10327
10328         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
10329
10330 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10331
10332         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
10333         that AFTER is not in the range FROM..TO, inclusive.
10334
10335 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
10336             Bernd Schmidt  <bernds@codesourcery.com>
10337
10338         PR rtl-optimization/45792
10339         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
10340         If not all insns are to be merged, for each edge, stash the
10341         next candidate after the to-be-merged insns before doing the
10342         merge, and use them for the retry at the new insertion point.
10343         Handle CC0 targets when retrying.
10344
10345 2010-09-27  Ian Lance Taylor  <iant@google.com>
10346
10347         * common.opt (fsplit-stack): New option.
10348         * opts.c (decode_options): Set flag_split_stack to final value.
10349         * target.def (supports_split_stack): New hook.
10350         * gcc.c (STACK_SPLIT_SPEC): Define.
10351         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
10352         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
10353         (Code Gen Options): Document -fsplit-stack.
10354         * doc/extend.texi (Function Attributes): Mention no_split_stack.
10355         (Function Attributes): Document no_split_stack.
10356         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
10357         TARGET_SUPPORTS_SPLIT_STACK.
10358         * doc/tm.texi: Rebuild.
10359         * function.c (thread_prologue_and_epilogue_insns): If
10360         flag_split_stack, add split stack prologue.
10361         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
10362         * varasm.c (saw_no_split_stack): New static variable.
10363         (assemble_start_function): Set saw_no_split_stack if the function
10364         has the no_split_stack attribute.
10365         (file_end_indicate_split_stack): New function.
10366         * output.h (file_end_indicate_split_stack): Declare.
10367         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
10368         and function.
10369         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
10370         routines.
10371         * config/i386/i386.c (ix86_option_override_internal): Don't set
10372         expand_builtin_va_start to NULL if -fsplit-stack.
10373         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
10374         -fsplit-stack.
10375         (ix86_va_start): If -fsplit-stack, get overflow pointer from
10376         scratch register set by prologue.
10377         (ix86_code_end): If -fsplit-stack, call
10378         file_end_indicate_split_stack.
10379         (ix86_supports_split_stack): New static function.
10380         (SPLIT_STACK_AVAILABLE): Define.
10381         (split_stack_prologue_scratch_regno): New static function.
10382         (split_stack_fn): New static variable.
10383         (ix86_expand_split_stack_prologue): New function.
10384         (ix86_live_on_entry): New static function.
10385         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
10386         (output_pic_addr_const): Likewise.
10387         (i386_asm_output_addr_const_extra): Likewise.
10388         (ix86_expand_call): Change return type to rtx.  Return the new
10389         call instruction.
10390         (TARGET_SUPPORTS_SPLIT_STACK): Define.
10391         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10392         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
10393         (split_stack_prologue, split_stack_return): New insns.
10394         (split_stack_space_check): New insn.
10395         * config/i386/i386.h (struct machine_function): Add
10396         split_stack_varargs_pointer field.
10397         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
10398         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10399         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
10400         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10401         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
10402         Declare.
10403         (ix86_expand_call): Update declaration.
10404
10405 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10406
10407         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
10408         code.  Added byref, which was missing in the list of codes.
10409         Explain that enumeration values are encoded as the integer type
10410         that the compiler uses to store them.  Explain and make examples
10411         of how 'const' interacts with pointers, and the complication of
10412         the encoding of 'const char *'.
10413         (Legacy type encoding): New subsection, explaining that GCC emits
10414         incorrect type encodings for the NeXT runtime for compatibility
10415         reasons.
10416         (@@encode): New subsection, explaining @encode and particularly
10417         that protocol qualifiers are not recognized inside an @encode()
10418         expression.
10419         (Method signatures): New subsection, explaining how method
10420         signatures are encoded.
10421
10422 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
10423
10424         Merge from 'apple/trunk' branch on FSF servers.  Removed small
10425         change in build_conditional_expr that had been added when fixing
10426         PR objc/27377 and which did the same check in a less complete way.
10427
10428         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
10429
10430         Radar 4229905
10431         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
10432         looking for objective-c common pointer types.
10433
10434         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
10435
10436         Radar 4154928
10437         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
10438         use their ObjC common type.
10439
10440 2010-09-27  Richard Guenther  <rguenther@suse.de>
10441
10442         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
10443
10444 2010-09-27  Jie Zhang  <jie@codesourcery.com>
10445
10446         * print-tree.c (print_node): Print in-constant-pool.
10447
10448 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
10449
10450         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
10451         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
10452         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
10453         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
10454
10455 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10456
10457         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
10458         from pro_epilogue_adjust_stack_<mode>_{1,2}.
10459         (pro_epilogue_adjust_stack_<mode>_add): Rename from
10460         pro_epilogue_adjust_stack_<mode>_3.
10461         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
10462         renamed pro_epilogue_adjust_stack_{si,di}_add.
10463         (ix86_expand_prologue): Use indirect functions.  Update for renamed
10464         pro_epilogue_adjust_stack_{si,di}_sub.
10465
10466 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
10467
10468         * config/i386/i386.md (movmsk_df): New insn.
10469         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
10470         sequence for TARGET_SSE_MATH.
10471
10472 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
10473
10474         * config/mips/mips.c (mips_builtin_decls): Declare.
10475         (mips_init_builtins): Store function declarations in
10476         mips_builtin_decls.
10477         (mips_builtin_decl): New function.
10478         (TARGET_BUILTIN_DECL): Define.
10479
10480 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
10481             Richard Henderson  <rth@redhat.com>
10482
10483         * config/i386/cygwin.asm: Include auto-host.h.
10484         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
10485         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
10486         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
10487         alignment code from the 64-bit path.  Use gas local labels.
10488         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
10489         from _di_2.  Remove the useless constant integer argument.
10490         (pro_epilogue_adjust_stack_<mode>_3): New.
10491         (allocate_stack_worker_probe_<mode>): Macroize from
10492         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
10493         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
10494         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
10495         (__chkstk_ms): New function.
10496         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
10497         * config/i386/t-interix: Likewise.
10498         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
10499         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
10500         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
10501         * configure, config.in: Rebuild.
10502
10503 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10504
10505         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
10506         statements because of the return slot optimization.
10507
10508 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
10509
10510         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
10511         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
10512         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10513         (class_likely_spilled_p): Rename to...
10514         (avr_class_likely_spilled_p): ...this. Make static. Change argument
10515         type to reg_class_t.
10516
10517 2010-09-24  Jan Hubicka  <jh@suse.cz>
10518
10519         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
10520         (lto_symtab_resolve_symbols): Set it.
10521         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
10522         store resolution field in cgraph/varpool.
10523         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
10524         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
10525         (cgraph_dump_node): Drop used_from_object_file.
10526         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
10527         (cgraph_function_body_availability): Use decl_replaceable_p.
10528         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
10529         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
10530         cgraph_used_from_object_file_p.
10531         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
10532         cgraph_used_from_object_file_p.
10533         (resolution_used_from_other_file_p): New functoin.
10534         (cgraph_used_from_object_file_p): New predicate.
10535         * cgraph.h: Include plugin-api.h
10536         (struct cgraph_local_info): Remove used_from_object_file.
10537         (struct cgraph_node): Add resolution field.
10538         (struct varpool_node): Likewise; remove used_from_object_file;
10539         reove const_value_known.
10540         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
10541         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
10542         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10543         varpool_used_from_object_file_p): Declare.
10544         (varpool_get_node, varpool_extra_name_alias): Update prototype.
10545         * tree.h (DECL_REPLACEABLE_P): Remove.
10546         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
10547         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
10548         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10549         input_overwrite_node, input_node, input_varpool_node): Stream
10550         resolution.
10551         * expr.c (expand_expr_real_1): Use const_value_known_p
10552         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
10553         const_value_known.
10554         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
10555         (function_and_variable_visibility): Set resolution for local vars
10556         and functions; use varpool_used_from_object_file_p.
10557         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
10558         static functions.
10559         (default_binds_local_p_1): Use resolutoin info.
10560         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
10561         * varpool.c (varpool_get_node): Constify.
10562         (const_value_known_p): Do not use vnode->const_value_known;
10563         use decl_replaceable_p.
10564         (varpool_finalize_decl): Do not set const_value_known.
10565         (cgraph_variable_initializer_availability): Use decl_replaceable_p
10566         (varpool_extra_name_alias): Return new node.
10567         (varpool_used_from_object_file_p): New function.
10568
10569 2010-09-24  Richard Henderson  <rth@redhat.com>
10570
10571         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
10572         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
10573         (do_spill): Use REG_CFA_OFFSET.
10574         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
10575         as appropriate.
10576         (ia64_expand_epilogue): Likewise.
10577         (process_set): Split into ...
10578         (process_cfa_adjust_cfa): this,
10579         (process_cfa_register): this,
10580         (process_cfa_offset): and this new function.
10581         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
10582         instead of REG_FRAME_RELATED_EXPR.
10583
10584 2010-09-24  Olivier Hainque  <hainque@adacore.com>
10585
10586         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
10587
10588 2010-09-24  Jan Hubicka  <jh@suse.cz>
10589
10590         * doc/extend.texi: (attribute leaf): Document.
10591         * tree.c (local_define_builtin): Handle ECF_LEAF.
10592         (build_common_builtin_nodes): Set ECF_LEAF where needed.
10593         * tree.h (ECF_LEAF): New.
10594         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
10595         overwrittable and unavailable functions.
10596         (ipa_init): Put all_module_statics into optimization_summary_obstack.
10597         (copy_global_bitmap): Do not copy all_module_statics.
10598         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
10599         (propagate): Handle overwritable and unavailable leaf functions;
10600         initialize global info for overwritable and unavailable leaf functions;
10601         do not free all module statics.
10602         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
10603         local statics.
10604         * calls.c (flags_from_decl_or_type): Handle leaf.
10605         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
10606         abnormal gotos.
10607
10608 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
10609
10610         * gengtype.c: Reindented.
10611         * gengtype.h: Reindented.
10612         * gengtype-parse.c: Reindented.
10613
10614 2010-09-24  Jan Hubicka  <jh@suse.cz>
10615
10616         PR tree-optimization/45738
10617         PR tree-optimization/45741
10618         * expr.c (string_constant): Allow CONST_DECL too;
10619         check that DECL_INITIAL is set.
10620         * varpool.c (const_value_known_p): Only look into VAR_DECL
10621         and CONST_DECL.
10622
10623 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
10624
10625         * common.opt (undef): New.
10626
10627 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
10628
10629         PR middle-end/45234
10630         * rtl.h (enum global_rtl_index): Add
10631         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
10632         (LAST_VIRTUAL_POINTER_REGISTER): Define.
10633         (virtual_preferred_stack_boundary_rtx,
10634         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
10635         (LAST_VIRTUAL_REGISTER): Increase by one.
10636         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
10637         instead of LAST_VIRTUAL_REGISTER.
10638         * function.c (instantiate_new_reg): Handle
10639         virtual_preferred_stack_boundary_rtx.
10640         * emit-rtl.c (init_virtual_regs): Handle
10641         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10642         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
10643         * explow.c (round_push): If crtl->preferred_stack_boundary
10644         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
10645         virtual_preferred_stack_boundary_rtx alignment instead of
10646         crtl->preferred_stack_boundary alignment.
10647         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
10648         macros.  Never decrease crtl->preferred_stack_boundary,
10649         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
10650         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
10651         stack_pointer_delta in dynamic allocation, even when size
10652         is constant.
10653         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
10654         macro.
10655         * print-rtl.c (print_rtx): Handle
10656         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
10657         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
10658         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
10659         * config/frv/frv.c (frv_emit_movsi): Likewise.
10660         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
10661         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
10662         Likewise.
10663
10664         Revert:
10665         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
10666
10667         PR middle-end/45234
10668         * calls.c (expand_call): Make sure that all variable sized
10669         adjustments are multiple of preferred stack boundary after
10670         stack alignment.
10671
10672 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
10673             Dominique Dhumieres  <dominiq@lps.ens.fr>
10674
10675         PR bootstrap/45751
10676         * config/darwin-driver.c (darwin_default_min_version):
10677         Adjust size passed to memcpy in two places.
10678
10679 2010-09-24  Richard Guenther  <rguenther@suse.de>
10680
10681         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
10682         Make sure to not call set_type_context with error_mark_node.
10683         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
10684
10685 2010-09-24  Richard Guenther  <rguenther@suse.de>
10686
10687         * Makefile.in (OBJS-onestep): Remove.
10688         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
10689         (libbackend.a): Remove onestep support.
10690         (libbackend.o): Remove.
10691         * configure.ac (--enable-intermodule): Remove.
10692         * configure: Regenerate.
10693
10694 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
10695
10696         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
10697         reaching the end of a block if it occurs at a DEBUG_INSN.
10698
10699 2010-09-09  Tristan Gingold  <gingold@adacore.com>
10700
10701         PR target/44242
10702         * config/vms/vms-crt0-64.c: Removed.
10703         * config/vms/vms-crt0.c: Removed.
10704         * config/vms/vms-psxcrt0-64.c: Removed.
10705         * config/vms/vms-psxcrt0.c: Removed.
10706         * config/vms/vms-ucrt0.c: New file.
10707         * config/vms/t-vms64: Removed.
10708         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
10709         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
10710         * config.gcc (alpha-dec-vms): Use t-vms.
10711
10712 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10713
10714         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
10715         underfull hbox in DVI output.
10716         (-fobjc-class-cxx-cdtors): Same change.
10717         (-fobjc-exceptions): Tidied up documentation.  Explain what the
10718         option does, but moved the (lenghty) description of the exception
10719         syntax into objc.texi.
10720         (-fobjc-gc): Explain that the option is not useful with the GNU
10721         runtime.
10722         (-fzero-link): Explain that the GNU runtime always works in
10723         "zero-link" mode.
10724         * doc/objc.texi: All sections: simplified @node declarations
10725         removing specification of next, previous, up node.
10726         (Objective-C): Updated introduction.
10727         (Garbage Collection): Updated.  The bohem-gc library is now
10728         included in gcc itself.  Mention that this section only applies to
10729         the GNU Objective-C runtime.
10730         (compatibility_alias): Small tidy up.
10731         (Exceptions): New section mostly containing text previously in the
10732         description of the -fobjc-exception command-line option.
10733         (Synchronization): Same.
10734
10735 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
10736
10737         * config/i386/i386.md (ix86_code_end): Move the initialization of
10738         xops array near the consumer.  Use AX_REG and SP_REG instead of
10739         numerical constants.
10740
10741 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10742
10743         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
10744         method [methodname]' for an Objective-C method instead of the less
10745         satisfactory 'too many arguments to function' (with no method name).
10746
10747 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
10748
10749         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
10750         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
10751         (execute_update_addresses_taken): Remove parameter.  Execute the
10752         optimization unconditionally.
10753         * passes.c (execute_function_todo): Call execute_update_addresses_taken
10754         unconditionally if TODO_rebuild_alias is set, else only when optimizing
10755         if TODO_update_address_taken is set.
10756
10757 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
10758
10759         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10760         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
10761         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10762         (arm_output_addr_const_extra): Make static.
10763
10764 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
10765
10766         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
10767         define as unspec_volatile.
10768         ("nops"): Define as unspec_volatile. Use fputs to write to
10769         asm_out_file directly.  Output NOPs on separate lines using while loop.
10770         * config/i386/i386.c (ix86_code_end): Use fputs to write to
10771         asm_out_file directly.  Output NOPs on separate lines using while loop.
10772
10773 2010-09-23  Richard Guenther  <rguenther@suse.de>
10774
10775         PR tree-optimization/45565
10776         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10777         Make sure to adjust the fndecl before replacing the stmt.
10778
10779 2010-09-23  Richard Guenther  <rguenther@suse.de>
10780
10781         PR middle-end/45750
10782         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
10783         gimplifying MEM_REF.
10784
10785 2010-09-23  Alan Modra  <amodra@gmail.com>
10786
10787         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
10788         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
10789
10790 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
10791
10792         PR rtl-optimization/44374
10793         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
10794         * df-core.c (df_set_bb_dirty): Set it.
10795         * ifcvt.c (find_memory): Remove function.
10796         (dead_or_predicable): Use can_move_insns_across.
10797         * df.h (can_move_insns_across): Declare function.
10798         * cfgcleanup.c (block_was_dirty): New static variable.
10799         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
10800         than df_get_bb_dirty.
10801         (try_head_merge_bb): New static function.
10802         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
10803         is set.
10804         * df-problems.c: Include "target.h"
10805         (df_simulate_find_uses): New static function.
10806         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
10807         (find_memory, find_memory_store): New static functions.
10808         (can_move_insns_across): New function.
10809         * Makefile.in (df-problems.o): Update dependencies.
10810
10811 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10812
10813         PR java/44095
10814         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
10815         is specified and the suffix of the file isn't ".c".
10816         * config/sparc/linux64.h (ASM_SPEC): Likewise.
10817
10818 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10819
10820         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
10821         * doc/cppopts.texi: Fix markup of index entry.
10822         * doc/extend.texi (Constructing Calls): Fix markup of
10823         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
10824         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
10825         (Vague Linkage, C++ Attributes): Fix markup of index entries and
10826         keywords.
10827         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
10828         avoid long lines.
10829         (C Dialect Options, C++ Dialect Options, Warning Options)
10830         (Debugging Options, Spec Files, Darwin Options)
10831         (i386 and x86-64 Options, MIPS Options)
10832         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
10833         index entries, avoid abbreviations, allow URLs to wrap, avoid
10834         long lines, avoid overlong pages from long @itemx lists.
10835         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
10836         * doc/standards.texi (Standards): Likewise.
10837         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
10838
10839 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10840
10841         * opts-common.c (prune_options): Make static.  Work with decoded
10842         options.
10843         (decode_cmdline_options_to_array): Call prune_options.  Don't
10844         resize option array here.
10845         * opts.h (prune_options): Remove prototype.
10846         * gcc.c (process_command): Take decoded options; don't call
10847         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
10848         (main): Call decode_cmdline_options_to_array here instead of
10849         prune_options.  Update call to process_command.
10850         * config/darwin-driver.c: Include opts.h.
10851         (darwin_default_min_version): Work with decoded options.  Don't
10852         handle -b or -V here.
10853         * config/darwin.h (darwin_default_min_version): Update prototype.
10854         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
10855         darwin_default_min_version.
10856         * config/i386/cygwin.h (mingw_scan): Update prototype.
10857         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
10858         * config/i386/cygwin1.c: Include opts.h.
10859         (mingw_scan): Work with decoded options.
10860         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
10861         * config/t-darwin (darwin-driver.o): Update dependencies.
10862
10863 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
10864
10865         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
10866         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
10867         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
10868         -force-link, -force-link=, -language, -language=,
10869         -library-directory, -library-directory=, -no-canonical-prefixes,
10870         -no-standard-libraries, -no-warnings, -optimize, -output,
10871         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
10872         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
10873         -print-file-name=, -print-libgcc-file-name,
10874         -print-multi-directory, -print-multi-lib,
10875         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
10876         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
10877         -profile, -save-temps, -shared, -specs, -specs=, -static,
10878         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
10879         symbolic): New.
10880         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
10881         * gcc.c (A Short Introduction to Adding a Command-Line Option):
10882         Remove comment.
10883         (cc1_options): Correct specs for passing down --help,
10884         --target-help and --help=*.  Add spec for passing down --version.
10885         (struct option_map, option_map, target_option_translations,
10886         translate_options): Remove.
10887         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
10888         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
10889         OPT_fhelp_ and OPT_ftarget_help.
10890         (process_command): Don't call translate_options.  Call
10891         decode_cmdline_options_to_array before checking for
10892         -no-canonical-prefixes using decoded options.
10893         * opts-common.c (tm.h): Update comment on #include.
10894         (find_opt): Allow abbreviations of long options.
10895         (struct option_map, option_map): New.
10896         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
10897         and -mno handling.
10898         (target_option_translations): New.
10899         (decode_cmdline_options_to_array): Handle
10900         TARGET_OPTION_TRANSLATE_TABLE in driver.
10901         * opts.c (common_handle_option): Don't handle OPT_fhelp,
10902         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
10903
10904 2010-09-22  Richard Guenther  <rguenther@suse.de>
10905
10906         * tree-inline.c (optimize_inline_calls): Schedule cleanups
10907         only if we inlined something.  Block compaction and conditional
10908         folding are done by cfg cleanup.  Schedule update-address-taken.
10909         (tree_function_versioning): Remove redundant call to number_blocks.
10910         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
10911         folding is done by cfg cleanup.
10912         * passes.c (init_optimization_passes): Remove update-address-taken
10913         pass after IPA inlining.
10914
10915 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
10916
10917         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
10918         to update conditions. Fix reg_mode[] check.
10919
10920 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
10921
10922         * config/picochip/picochip.md (movhicc): Use expand to check whether
10923         movhicc is available and split it after reload.
10924
10925 2010-09-22  Richard Guenther  <rguenther@suse.de>
10926
10927         * tree-ssanames.c (release_dead_ssa_names): Do not remove
10928         callee edges here.
10929         * passes.c (init_optimization_passes): Remove early CFG cleanup.
10930         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
10931         (pass_cleanup_cfg): Likewise.
10932         (execute_fixup_cfg): Cleanup.
10933         * tree-pass.h (pass_cleanup_cfg): Remove.
10934
10935 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10936
10937         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
10938         builtins if it is true.
10939         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
10940         parameter.
10941
10942 2010-09-22  Martin Jambor  <mjambor@suse.cz>
10943
10944         * tree-sra.c (struct access): New field grp_no_warning.
10945         (create_access_replacement): Set TREE_NO_WARNING according to
10946          grp_no_warning.
10947         (create_artificial_child_access): Use build_ref_for_model and set
10948         grp_no_warning if build_user_friendly_ref_for_offset fails.
10949         (propagate_subaccesses_across_link): Likewise.
10950
10951 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10952
10953         PR target/35664
10954         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
10955         ('f'): Likewise.
10956
10957 2010-09-22  Tristan Gingold  <gingold@adacore.com>
10958
10959         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
10960
10961 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
10962
10963         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
10964         * config/i386/i386.c (decide_alg): Update for rename.
10965
10966 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
10967
10968         PR rtl-optimization/45739
10969         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
10970         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
10971
10972 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
10973
10974         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
10975         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
10976         Remove.
10977         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
10978         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10979
10980 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10981
10982         PR objc/23710
10983         * c-parser.c (c_parser_objc_method_definition): Check the return
10984         value of objc_start_method_definition and if false is returned,
10985         parse the method definition but emit no code.
10986
10987 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10988
10989         PR objc/25965
10990         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
10991         call objc_get_interface_ivars ().
10992
10993 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
10994
10995         PR target/45694
10996         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
10997         static chain-register is used for 64-bit.
10998
10999 2010-09-21  Richard Guenther  <rguenther@suse.de>
11000
11001         * dwarf2out.c (is_cu_die): New function.
11002         (add_pubtype): Use it.
11003         (gen_subprogram_die): Likewise.
11004         (gen_struct_or_union_type_die): Likewise.
11005         (dwarf2out_finish): Likewise.
11006         (comp_unit_die): Rename to ...
11007         (single_comp_unit_die): ... this.
11008         (comp_unit_die): New function lazily constructing and
11009         returning single_comp_unit_die.
11010         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
11011         base_type_die, subrange_type_die, modified_type_die,
11012         lower_bound_default, add_bound_info, add_prototyped_attribute,
11013         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
11014         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
11015         force_decl_die, gen_namespace_die, dwarf2out_decl,
11016         dwarf2out_start_source_file, dwarf2out_end_source_file,
11017         prune_unused_types, dwarf2out_finish): Use it.
11018         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
11019         the global list of translation-unit decls.
11020         (dwarf2out_init): Do not create single_comp_unit_die here.
11021         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
11022
11023 2010-09-21  Richard Guenther  <rguenther@suse.de>
11024
11025         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
11026         for bool for C++.
11027
11028 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
11029
11030         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
11031         (qhs_extenddi_cstr): Likewise.
11032         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
11033         them for the source operand.
11034
11035 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
11036
11037         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
11038         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
11039         (ix86_split_ashr): Ditto.
11040         (ix86_split_lshr): Ditto.
11041
11042 2010-09-21  Richard Guenther  <rguenther@suse.de>
11043
11044         PR tree-optimization/45580
11045         * tree-ssa-propagate.c (substitute_and_fold): Always replace
11046         regular uses.
11047         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
11048         virtuals fold the call into a regular indirect one.
11049
11050 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11051
11052         PR rtl-optimization/42775
11053         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
11054         scheduling is enabled.
11055
11056 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11057
11058         PR rtl-optimization/45728
11059         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
11060         gen_lowpart_common first and if that fails, force_reg first
11061         before calling gen_lowpart.
11062
11063         PR middle-end/45678
11064         * cfgexpand.c (expand_one_stack_var_at): Use
11065         crtl->max_used_stack_slot_alignment as max_align, instead
11066         of maximum of that and PREFERRED_STACK_BOUNDARY.
11067         Don't call update_stack_alignment.
11068
11069 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
11070
11071         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
11072         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
11073         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
11074         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
11075         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
11076         (build_nonstandard_integer_type): Likewise.
11077         (build_range_type_1): New function, built from...
11078         (build_range_type): ...this.  Call build_range_type_1.
11079         (build_nonshared_range_type): New function.
11080         (build_array_type_1): New function, built from...
11081         (build_array_type: ...this.  Call build_array_type_1.
11082         (build_nonshared_array_type): New function.
11083         * tree.h (build_nonshared_range_type): Declare.
11084         (build_nonshared_array_type): Likewise.
11085
11086 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
11087
11088         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
11089         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11090         (arm_class_likely_spilled_p): New function.
11091
11092 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
11093
11094         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
11095         indirect functions.
11096         (ix86_split_ashl): Ditto.
11097         (ix86_split_ashr): Ditto.
11098         (ix86_split_lshr): Ditto.
11099         (ix86_adjust_counter): Ditto.
11100
11101 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
11102
11103         * c-family/c-common.h (constant_string_class): Documented with
11104         comment identical to the one already in c-common.c.
11105
11106 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11107
11108         * dwarf2out.c (any_cfis_emitted): New static variable.
11109         (add_fde_cfi): Set it.
11110         (dwarf2out_frame_debug): Clear it before processing,
11111         if it is set afterwards, flush any queued reg saves.
11112
11113         PR debug/45124
11114         * dwarf2out.c (add_accessibility_attribute): Assume
11115         DW_ACCESS_private as the default for dwarf_version > 2
11116         and DW_TAG_class_type parent.
11117         (gen_inheritance_die): Assume DW_ACCESS_public as the default
11118         for dwarf_version > 2 and parent other than DW_TAG_class_type.
11119
11120 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11121
11122         PR target/45726
11123         * arm.md (arm_movt): Only enable on machines with MOVT.
11124
11125 2010-09-20  Jie Zhang  <jie@codesourcery.com>
11126
11127         * config/arm/arm.c (arm_address_offset_is_imm): New.
11128         (arm_early_store_addr_dep): New.
11129         (arm_early_load_addr_dep): New.
11130         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
11131         (arm_early_load_addr_dep): Declare.
11132         (arm_address_offset_is_imm): Declare.
11133         * config/arm/cortex-m4.md: New file.
11134         * config/arm/cortex-m4-fpu.md: New file.
11135         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
11136         (attr generic_sched): Exclude cortexm4.
11137         (attr generic_vfp): Exclude cortexm4.
11138
11139 2010-09-20  Richard Guenther  <rguenther@suse.de>
11140
11141         PR middle-end/45704
11142         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
11143
11144 2010-09-20  Jan Hubicka  <jh@suse.cz>
11145
11146         PR tree-optimize/45605
11147         * cgraph.h (const_value_known_p): Declare.
11148         (varpool_decide_const_value_known): Remove.
11149         * tree-ssa-ccp.c (get_base_constructor): Use it.
11150         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
11151         * expr.c (string_constant): Likewise.
11152         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
11153         * ipa.c (ipa_discover_readonly_nonaddressable_var,
11154         function_and_variable_visibility): Likewise.
11155         * gimplify.c (gimplify_call_expr): Likewise.
11156         * gimple-fold.c (get_symbol_constant_value): Likewise.
11157         * varpool.c (varpool_decide_const_value_known): Replace by...
11158         (const_value_known_p): ... this one; handle other kinds of DECLs
11159         too and work for automatic vars.
11160         (varpool_finalize_decl): Use const_value_known_p.
11161
11162 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
11163
11164         PR target/45726
11165         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
11166
11167 2010-09-20  Richard Guenther  <rguenther@suse.de>
11168
11169         PR tree-optimization/45705
11170         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
11171
11172 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
11173
11174         PR rtl-optimization/45695
11175         * combine.c (try_combine): When splitting a two set pattern,
11176         make sure the pattern which will be put into i2 doesn't use REGs
11177         or MEMs set by insns in between i2 and i3.
11178
11179 2010-09-19  Jan Hubicka  <jh@suse.cz>
11180
11181         PR lto/44246
11182         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
11183         processing same node twice.
11184
11185 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
11186
11187         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
11188         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11189         (bfin_class_likely_spilled_p): New function
11190
11191 2010-09-19  Ira Rosen  <irar@il.ibm.com>
11192
11193         PR tree-optimization/45714
11194         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
11195         created in vectorizable_call instead of the original statement in
11196         def stmt updates.
11197
11198 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
11199
11200         * config/i386/i386-protos.h (split_double_mode): New prototype.
11201         (split_di, split_ti): Remove prototypes.
11202         * config/i386/i386.c (split_double_mode): New function.
11203         (split_di, split_ti): Remove.
11204         (ix86_expand_branch): Use split_double_mode.
11205         (ix86_split_to_parts): Ditto.
11206         (ix86_split_ashl): Ditto.
11207         (ix86_split_ashr): Ditto.
11208         (ix86_split_lshr): Ditto.
11209         (ix86_force_to_memory): Ditto.
11210         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
11211
11212 2010-09-18  Jan Hubicka  <jh@suse.cz>
11213
11214         PR tree-optimization/45453
11215         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
11216         virtual functions are reachable.
11217         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
11218         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
11219         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
11220         when modifying function.
11221
11222 2010-09-18  Jan Hubicka  <jh@suse.cz>
11223
11224         PR tree-optimization/45605
11225         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
11226         * gimple-fold.c (static_object_in_other_unit_p): New function.
11227         (canonicalize_constructor_val): Use it.
11228         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
11229         returning NULL.
11230         (gimple_fold_obj_type_ref_known_binfo): Use
11231         static_object_in_other_unit_p.
11232
11233 2010-09-18  Richard Guenther  <rguenther@suse.de>
11234
11235         PR tree-optimization/45709
11236         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
11237         insertions until after all PHI nodes of the block are processed.
11238
11239 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
11240
11241         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
11242
11243 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
11244
11245         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
11246
11247 2010-09-18  Richard Guenther  <rguenther@suse.de>
11248
11249         PR tree-optimization/45709
11250         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
11251
11252 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11253
11254         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
11255         (dot_deps_stmt): Same.
11256         * graphite-poly.c (dot_lst): Same.
11257         * graphite-scop-detection.c (dot_all_scops): Same.
11258         (dot_scop): Same.
11259
11260 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
11261
11262         Revert:
11263         2009-12-16  Ben Elliston  <bje@au.ibm.com>
11264
11265         * tree-data-ref.c (dot_rdg_1): Added back.
11266         (dot_rdg): Same.  Added "#if 0" around system call.
11267
11268 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11269             Richard Henderson  <rth@redhat.com>
11270
11271         * config/i386/i386.c (initial_ix86_tune_features): Add
11272         X86_TUNE_PAD_SHORT_FUNCTION.
11273         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
11274         (ix86_count_insn): New.
11275         (ix86_pad_short_function): Likewise.
11276         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
11277
11278         * config/i386/i386.h (ix86_tune_indices): Add
11279         X86_TUNE_PAD_SHORT_FUNCTION.
11280         (TARGET_PAD_SHORT_FUNCTION): New.
11281
11282         * config/i386/i386.md (UNSPEC_NOPS): New.
11283         (nops): Likewise.
11284
11285 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11286
11287         PR middle-end/45234
11288         * calls.c (expand_call): Make sure that all variable sized
11289         adjustments are multiple of preferred stack boundary after
11290         stack alignment.
11291
11292 2010-09-17  DJ Delorie  <dj@redhat.com>
11293
11294         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
11295         passed an invalid value, print an error instead of ICEing.
11296         (valid_psw_flag): New.
11297         (rx_expand_builtin): Call it for setpsw/clrpsw.
11298         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
11299
11300         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
11301         (bitclr_in_memory): Likewise.
11302         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
11303
11304 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
11305
11306         PR middle-end/45678
11307         * cfgexpand.c (update_stack_alignment): New.
11308         (get_decl_align_unit): Use it.
11309         (expand_one_stack_var_at): Call update_stack_alignment.
11310
11311 2010-09-17  Richard Guenther  <rguenther@suse.de>
11312
11313         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
11314         Properly copy the read string.
11315
11316 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
11317
11318         * doc/options.texi (Variable): Document.
11319         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
11320         generate target_flags declarations explicitly.  Don't define
11321         VarExists variables for the driver.
11322         * common.opt (target_flags): New Variable record.
11323         (flag_dump_unnumbered, flag_dump_unnumbered_links,
11324         flag_var_tracking, flag_var_tracking_assignments,
11325         flag_var_tracking_assignments_toggle): Don't mark variables with
11326         VarExists.
11327         * config/i386/i386.c (ix86_isa_flags): Don't define here.
11328         * config/i386/i386.opt (ix86_isa_flags): Define here.
11329         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
11330         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
11331         VarExists.
11332         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
11333         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
11334         Only define for generator programs.
11335         * rtlanal.c (target_flags): Remove.
11336         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
11337         flag_var_tracking_assignments_toggle): Remove.
11338
11339 2010-09-17  Michael Matz  <matz@suse.de>
11340
11341         PR tree-optimization/43432
11342         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11343         Accept backwards consecutive accesses.
11344         (vect_create_data_ref_ptr): If step is negative generate
11345         decreasing IVs.
11346         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
11347         (perm_mask_for_reverse, reverse_vec_elements): New functions.
11348         (vectorizable_load): Handle loads with negative steps when easily
11349         possible.
11350
11351 2010-09-03  Jan Hubicka  <jh@suse.cz>
11352
11353         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
11354
11355 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
11356
11357         * config/v850/v850.c (v850_function_value_regno_p): Make static.
11358         Adjust comments. Declare.
11359         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
11360         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
11361
11362 2010-09-17  Richard Guenther  <rguenther@suse.de>
11363
11364         * common.opt (combine): Remove.
11365         * gcc.c (default_compilers): Remove specs testing combine.
11366         The C compilers no longer can combine.
11367         (option_map): Remove -combine.
11368         (display_help): Remove -combine.
11369         (driver_handle_option): Remove OPT_combine handling.
11370         (compile_input_file_p): Remove.
11371         (do_spec): Remove code concerning combine.
11372         (main): Likewise.
11373         * doc/invoke.texi: Remove traces of -combine.
11374         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
11375
11376 2010-09-17  Richard Guenther  <rguenther@suse.de>
11377
11378         PR middle-end/45678
11379         * builtins.c (fold_builtin_memory_op): Always properly adjust
11380         alignment of memory accesses.
11381
11382 2010-09-16  Jan Hubicka  <jh@suse.cz>
11383
11384         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
11385         processing clone.
11386
11387 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
11388
11389         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
11390
11391         * config/i386/i386.c (predict_jump): Add prototype.
11392         (flag_opts): Add -m8bit-idiv.
11393         (ix86_split_idivmod): New.
11394
11395         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
11396         Add 2 splitters for SI/DI mode divide.
11397         (divmod<mode>4_1): New pattern.
11398         (udivmod<mode>4_1): Likewise.
11399         (testdi_ccno_1): Likewise.
11400
11401         * config/i386/i386.opt (m8bit-idiv): New.
11402
11403         * doc/invoke.texi: Document -m8bit-idiv.
11404
11405 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
11406
11407         PR bootstrap/45680
11408         * config/i386/i386.c (min_insn_size): Moved out of the
11409         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
11410
11411 2010-09-16  Jan Hubicka  <jh@suse.cz>
11412
11413         * lto-cgraph.c (lto_output_node): Fix handling of clones.
11414         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
11415         unreachable clones with reachable clones.
11416         * tree-inline.c (copy_bb): Fix sanity checking when producing
11417         unreachable clone.
11418
11419 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
11420
11421         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
11422         (TARGET_MEMORY_MOVE_COST): Define.
11423         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
11424
11425 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
11426
11427         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
11428         maybe_tidy_empty_bb.
11429
11430         Revert:
11431         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
11432         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
11433
11434 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11435
11436         * target.def (target_option.optimization): New hook.
11437         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
11438         TARGET_OPTION_OPTIMIZATION hook.
11439         * doc/tm.texi: Regenerate.
11440         * hooks.c (hook_void_int_int): New.
11441         * hooks.h (hook_void_int_int): Declare.
11442         * opts.c: Don't include tm_p.h.
11443         (decode_options): Use targetm.target_option.optimization instead
11444         of OPTIMIZATION_OPTIONS.
11445         * system.h (OPTIMIZATION_OPTIONS): Poison.
11446         * config/arm/arm-protos.h (arm_optimization_options): Remove.
11447         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
11448         (arm_optimization_options): Rename to arm_option_optimization.
11449         Make static.
11450         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
11451         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
11452         (cris_option_optimization): New.
11453         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
11454         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
11455         (crx_option_optimization): New.
11456         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
11457         * config/frv/frv-protos.h (frv_optimization_options): Remove.
11458         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
11459         (frv_optimization_options): Rename to frv_option_optimization.
11460         Make static.
11461         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
11462         * config/h8300/h8300.c (h8300_option_optimization): New.
11463         (TARGET_OPTION_OPTIMIZATION): Define.
11464         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
11465         * config/i386/i386-protos.h (optimization_options): Remove.
11466         * config/i386/i386.c (optimization_options): Rename to
11467         ix86_option_optimization.  Make static.
11468         (TARGET_OPTION_OPTIMIZATION): Define.
11469         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
11470         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
11471         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
11472         (ia64_optimization_options): Rename to ia64_option_optimization.
11473         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
11474         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
11475         commented-out definition.
11476         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
11477         instead of OPTIMIZATION_OPTIONS.
11478         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
11479         (m32r_option_optimization): New.
11480         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
11481         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
11482         Remove.
11483         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
11484         (mcore_option_optimization): New.
11485         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
11486         * config/mep/mep-protos.h (mep_optimization_options): Remove.
11487         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
11488         (mep_optimization_options): Rename to mep_option_optimization.
11489         Make static.  Take unused level and size parameters.
11490         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
11491         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
11492         (mmix_option_optimization): New.
11493         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
11494         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
11495         (pdp11_option_optimization): New.
11496         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
11497         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
11498         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
11499         (optimization_options): Rename to rs6000_option_optimization.
11500         Make static.
11501         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
11502         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
11503         * config/rx/rx.c (rx_set_optimization_options): Rename to
11504         rx_option_optimization.  Make static.  Take unused level and size
11505         parameters.
11506         (TARGET_OPTION_OPTIMIZATION): Define.
11507         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
11508         * config/s390/s390-protos.h (optimization_options): Remove.
11509         * config/s390/s390.c (optimization_options): Rename to
11510         s390_option_optimization.  Make static.  Don't mark size parameter
11511         unused.
11512         (TARGET_OPTION_OPTIMIZATION): Define.
11513         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
11514         * config/sh/sh-protos.h (sh_optimization_options): Remove.
11515         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
11516         (sh_optimization_options): Rename to sh_option_optimization.  Make
11517         static.  Don't mark parameters unused.
11518         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
11519         * config/spu/spu-protos.h (spu_optimization_options): Remove.
11520         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
11521         (spu_optimization_options): Rename to spu_option_optimization.
11522         Make static.
11523         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
11524         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
11525         (v850_option_optimization): New.
11526         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
11527         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
11528         (xtensa_option_optimization): New.
11529         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
11530
11531 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
11532
11533         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
11534         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
11535         * doc/tm.texi: Regenerate.
11536         * system.h (OVERRIDE_OPTIONS): Poison.
11537         * target.def (override): Default to hook_void_void.
11538         * targhooks.c (default_target_option_override): Remove.
11539         * genmodes.c, machmode.def: Update comments mentioning
11540         OVERRIDE_OPTIONS.
11541         * config/alpha/alpha-modes.def: Update comment mentioning
11542         alpha_override_options.
11543         * config/alpha/alpha-protos.h (override_options): Remove.
11544         * config/alpha/alpha.c (override_options): Rename to
11545         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
11546         (TARGET_OPTION_OVERRIDE): Define.
11547         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
11548         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
11549         of OVERRIDE_OPTIONS.
11550         * config/arc/arc-protos.h (arc_init): Remove.
11551         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
11552         (arc_init): Rename to arc_option_override.  Make static.
11553         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
11554         (OVERRIDE_OPTIONS): Remove.
11555         * config/arm/arm-protos.h (arm_override_options): Remove.
11556         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
11557         (arm_override_options): Rename to arm_option_override.  Make
11558         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11559         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
11560         * config/arm/arm.md: Update comment referring to arm_override_options.
11561         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11562         instead of OVERRIDE_OPTIONS.
11563         * config/avr/avr-protos.h (avr_override_options): Remove.
11564         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
11565         (avr_override_options): Rename to avr_option_override.  Make static.
11566         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
11567         * config/bfin/bfin-protos.h (override_options): Remove (twice).
11568         * config/bfin/bfin.c (override_options): Rename to
11569         bfin_option_override.  Make static.
11570         (TARGET_OPTION_OVERRIDE): Define.
11571         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
11572         * config/cris/cris-protos.h (cris_override_options): Remove.
11573         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
11574         (cris_override_options): Rename to cris_option_override.  Make static.
11575         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
11576         * config/frv/frv-protos.h (frv_override_options): Remove.
11577         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
11578         (frv_override_options): Rename to frv_option_override.  Make static.
11579         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
11580         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
11581         * config/h8300/h8300.c (h8300_init_once): Rename to
11582         h8300_option_override.  Make static.
11583         (TARGET_OPTION_OVERRIDE): Define.
11584         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
11585         * config/i386/i386-protos.h (override_options): Remove.
11586         * config/i386/i386.c (override_options): Rename to
11587         ix86_option_override_internal.  Make static.  Comments referring
11588         to this function and callers changed.
11589         (ix86_option_override): New.
11590         (TARGET_OPTION_OVERRIDE): Define.
11591         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
11592         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
11593         * config/ia64/ia64.c (ia64_file_start): Update comment referring
11594         to ia64_override_options.
11595         * config/iq2000/iq2000-protos.h (override_options): Remove.
11596         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
11597         (override_options): Rename to iq2000_option_override.  Make static.
11598         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
11599         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
11600         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
11601         (lm32_override_options): Rename to lm32_option_override.  Make static.
11602         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
11603         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
11604         (m32r_option_override): New.
11605         (m32r_init): Update comment.
11606         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
11607         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
11608         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
11609         (m68hc11_override_options): Rename to m68hc11_option_override.
11610         Make static.  Return void.
11611         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
11612         * config/m68k/m68k-protos.h (override_options): Remove.
11613         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
11614         (override_options): Rename to m68k_option_override.  Make static.
11615         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
11616         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
11617         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
11618         (mcore_override_options): Rename to mcore_option_override.  Make
11619         static.
11620         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
11621         * config/mep/mep-protos.h (mep_override_options): Remove.
11622         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
11623         (mep_override_options): Rename to mep_option_override.  Make static.
11624         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
11625         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
11626         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
11627         (mmix_override_options): Rename to mmix_option_override.  Make static.
11628         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
11629         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
11630         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
11631         (mn10300_override_options): Rename to mn10300_option_override.
11632         Make static.
11633         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
11634         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
11635         * config/moxie/moxie.c (moxie_override_options): Rename to
11636         moxie_option_override.  Make static.
11637         (TARGET_OPTION_OVERRIDE): Define.
11638         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
11639         * config/picochip/picochip-protos.h (picochip_override_options):
11640         Remove.  Update comment referring to picochip_override_options.
11641         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
11642         (picochip_override_options): Rename to picochip_option_override.
11643         Make static.  Update comment and definition of
11644         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
11645         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
11646         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11647         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11648         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11649         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11650         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11651         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
11652         instead of OVERRIDE_OPTIONS.
11653         * config/rs6000/rs6000-modes.def: Update comment referring to
11654         rs6000_override_options.
11655         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
11656         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
11657         (rs6000_override_options): Rename to
11658         rs6000_option_override_internal.  Make static.  Commented
11659         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
11660         (rs6000_option_override): New.
11661         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
11662         instead of OVERRIDE_OPTIONS.
11663         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
11664         * config/s390/s390-protos.h (override_options): Remove.
11665         * config/s390/s390.c (override_options): Rename to
11666         s390_option_override.  Make static.
11667         (TARGET_OPTION_OVERRIDE): Define.
11668         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
11669         * config/score/score-protos.h (score_override_options): Remove.
11670         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
11671         (score_override_options): Rename to score_option_override.  Make
11672         static.
11673         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
11674         Update comment referring to override_options.
11675         * config/score/score3.c (score3_override_options): Rename to
11676         score3_option_override.
11677         * config/score/score3.h (score3_override_options): Rename to
11678         score3_option_override.
11679         * config/score/score7.c (score7_override_options): Rename to
11680         score7_option_override.
11681         * config/score/score7.h (score7_override_options): Rename to
11682         score7_option_override.
11683         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
11684         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
11685         (sparc_override_options): Rename to sparc_option_override.  Make
11686         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
11687         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
11688         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
11689         instead of OVERRIDE_OPTIONS.
11690         * config/spu/spu-protos.h (spu_override_options): Remove.
11691         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
11692         (spu_override_options): Rename to spu_option_override.  Make
11693         static.
11694         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
11695         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
11696         OVERRIDE_OPTIONS.
11697         * config/vax/vax-protos.h (override_options): Remove.
11698         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
11699         (override_options): Rename to vax_option_override.  Make static.
11700         Call SUBTARGET_OVERRIDE_OPTIONS.
11701         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
11702         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
11703         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
11704         * config/xtensa/xtensa-protos.h (override_options): Remove.
11705         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
11706         (override_options): Rename to xtensa_option_override.  Make static.
11707         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
11708
11709 2010-09-16  Richard Guenther  <rguenther@suse.de>
11710
11711         PR tree-optimization/45623
11712         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
11713         (get_constraint_for_component_ref): If computing a constraint
11714         for the rhs handle type punning through unions.
11715         (get_constraint_for_address_of): Adjust.
11716         (get_constraint_for_1): Likewise.
11717         (get_constraint_for): Likewise.
11718         (get_constraint_for_rhs): New function.
11719         (do_structure_copy): Adjust.
11720         (make_constraint_to): Likewise.
11721         (handle_const_call): Likewise.
11722         (find_func_aliases): Likewise.
11723         (process_ipa_clobber): Likewise.
11724         (create_variable_info_for): Likewise.
11725
11726 2010-09-16  Ira Rosen  <irar@il.ibm.com>
11727
11728         * tree-vectorizer.c: Fix documentation.
11729         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
11730         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
11731         is_pattern_stmt_p, is_loop_header_bb_p,
11732         stmt_vinfo_set_inside_of_loop_cost,
11733         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
11734         known_alignment_for_access_p): Likewise.
11735         * tree-vect-loop.c: Fix documentation.
11736         (vect_get_cost): Start function name from new line.
11737         * tree-vect-data-refs.c: Fix documentation.
11738         * tree-vect_stmts.c: Likewise.
11739         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
11740         (vectorizable_store): Free vec_oprnds if allocated.
11741         (vectorizable_condition): Initialize several variables to avoid
11742         warnings.
11743         * tree-vect-slp.c: Fix documentation.
11744
11745 2010-09-16  Richard Guenther  <rguenther@suse.de>
11746
11747         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
11748         is TS_TRANSLATION_UNIT_DECL.
11749         (initialize_tree_contains_struct): Adjust.
11750         (all_translation_units): New global vector.
11751         (build_translation_unit_decl): New function.
11752         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
11753         (struct tree_translation_unit_decl): New.
11754         (all_translation_units): Declare.
11755         (union tree_node): Add translation_unit_decl member.
11756         (build_translation_unit_decl): Declare.
11757         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
11758         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
11759         New function.
11760         (pack_value_fields): Call it.
11761         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
11762         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
11763         (lto_output_tree_pointers): Call it.
11764         * lto-streamer-in.c (lto_input_tree_ref): Handle references
11765         to TRANSLATION_UNIT_DECL.
11766         (unpack_ts_translation_unit_decl_value_fields): New function.
11767         (unpack_value_fields): Call it.
11768         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
11769         (lto_input_tree_pointers): Call it.
11770         * lto-streamer.c (check_handled_ts_structures): Adjust.
11771         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
11772         * c-decl.c (all_translation_units): Remove.
11773         (pop_scope): Use build_translation_unit_decl.
11774         (collect_all_refs): Adjust.
11775         (for_each_global_decl): Likewise.
11776         (c_write_global_declarations): Likewise.
11777
11778 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
11779
11780         PR bootstrap/45686
11781         * fold-const.c (fold_checksum_tree): Change slot from const void **
11782         to void **, use CONST_CAST_TREE to store into *slot.
11783
11784 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11785
11786         * config/i386/i386.md: Remove unneeded empty conditions and
11787         preparation statements from expanders.
11788         * config/i386/mmx.md: Ditto.
11789         * config/i386/sse.md: Ditto.
11790
11791 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
11792
11793         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
11794
11795 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11796
11797         PR rtl-optimization/45593
11798         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
11799         insns that were in delay slots as stand-alone insns.
11800
11801 2010-09-15  Ian Lance Taylor  <iant@google.com>
11802
11803         * incpath.c (remove_duplicates): If name is not a directory, issue
11804         a warning rather than an error.
11805
11806 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11807
11808         PR middle-end/45644
11809         * tree-sra.c (create_access): Check for bit-fields directly.
11810
11811 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
11812
11813         PR tree-optimization/45633
11814         * tree-cfg.c (verify_gimple_assign_binary): Allow
11815         MINUS_EXPR with lhs and rhs1 pointer vector and
11816         rhs2 sizetype vector.
11817         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
11818         or vector pointer use TER to optimize pointer subtraction.
11819
11820 2010-09-15  Jie Zhang  <jie@codesourcery.com>
11821
11822         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
11823         fcmpd to fcmps.
11824
11825 2010-09-15  Ian Lance Taylor  <iant@google.com>
11826
11827         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
11828
11829 2010-09-15  Ian Lance Taylor  <iant@google.com>
11830
11831         * function.c (get_arg_pointer_save_area): Set
11832         arg_pointer_save_area_init to true.
11833
11834 2010-09-15  Martin Jambor  <mjambor@suse.cz>
11835
11836         * tree-sra.c (generate_subtree_copies): Updated comment.
11837         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
11838         obtained from the statement iterator instead.
11839         (load_assign_lhs_subreplacements): Removed parameters lhs and
11840         right_offset, which is obtained from top_racc instead.  Parameter lacc
11841         is now expected to be the root of the processed tree rather than root's
11842         first child.  Updated all callers.
11843
11844 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
11845
11846         * config/pdp11/pdp11.c (register_move_cost): Rename to
11847         pdp11_register_move_cost.
11848         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
11849         pdp11_register_move_cost.
11850         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
11851         pdp11_register_move_cost instead of register_move_cost.
11852
11853 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
11854
11855         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
11856         pattern for vmovn. Expansion in case of non
11857         -mvectorize-with-neon-quad.
11858         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
11859         non- -mvectorize-with-neon-quad case.
11860         (move_lo_quad_<mode>): New expansion to vmov into low part.
11861         (move_hi_quad_<mode>): New expansion to vmov into high part.
11862         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
11863         (move_lo_quad_v4sf): Likewise.
11864         (move_lo_quad_v8hi): Likewise.
11865         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
11866         low part.
11867         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
11868         high part.
11869         * config/arm/iterators.md (ANY128): New mode iterator.
11870         (V_narrow_pack): New mode attribute.
11871         (V_HALF): Add attribute.
11872         (V_DOUBLE): Add attribute.
11873         (V_mode_nunits): Add attribute.
11874
11875 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
11876
11877         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
11878         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
11879
11880 2010-09-15  Olivier Hainque  <hainque@adacore.com>
11881             Jose Ruiz  <ruiz@adacore.com>
11882
11883         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
11884         * config/alpha/osf5-unwind.h: New file.
11885
11886 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11887
11888         PR bootstrap/45672
11889         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
11890         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11891         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11892
11893 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11894
11895         * c-lang.h (struct lang_type): Add variable_size GTY option.
11896
11897 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11898
11899         PR bootstrap/45672
11900         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11901
11902 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11903
11904         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
11905         result isn't used in memory address.
11906
11907 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11908
11909         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
11910         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
11911         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
11912         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
11913         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
11914         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
11915
11916         * target.def: Add units_per_simd_word to vectorize.
11917
11918         * targhooks.c (default_units_per_simd_word): New.
11919         * targhooks.h (default_units_per_simd_word): Likewise.
11920         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
11921         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11922         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
11923         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11924         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
11925         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11926         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
11927         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
11928
11929         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
11930         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
11931
11932         * tree-vect-stmts.c: Don't include "tm_p.h".
11933         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
11934         with targetm.vectorize.units_per_simd_word.
11935
11936         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
11937
11938         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
11939
11940         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
11941         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
11942
11943         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
11944         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
11945
11946         * doc/tm.texi: Regenerated.
11947
11948 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
11949
11950         * tree-vect-stmts.c: Include "tm_p.h".
11951
11952         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
11953         out of RTX_CODE.
11954
11955 2010-09-14  Martin Jambor  <mjambor@suse.cz>
11956
11957         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
11958         location of generated statement.  Changed all callers.
11959         (build_ref_for_model): New parameter loc which used to set location of
11960         all generated expressions.  Changed all callers.
11961         (generate_subtree_copies): Likewise.
11962         (init_subtree_with_zero): Likewise.
11963         (sra_modify_expr): Set locations of all generated statements and
11964         expressions to the location the original statement.
11965         (handle_unscalarized_data_in_subtree): Likewise.
11966         (load_assign_lhs_subreplacements): Likewise.
11967         (sra_modify_constructor_assign): Likewise.
11968         (sra_modify_assign): Likewise.
11969
11970 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
11971
11972         PR target/45277
11973         PR target/45363
11974         PR target/45407
11975         * doc/install.texi (sparc*-*-*): New section.
11976         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
11977
11978 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11979
11980         PR middle-end/45567
11981         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
11982         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
11983         (expand_builtin): Adjust caller.
11984         (expand_builtin_unop): Only use subtarget if it has the right mode.
11985
11986 2010-09-14  Tristan Gingold  <gingold@adacore.com>
11987
11988         * configure.ac (plugins): Fix typos.
11989         * configure: Regenerate.
11990
11991 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
11992
11993         PR debug/45660
11994         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
11995         gen_type_die for function/method return type.
11996
11997 2010-09-14  Ira Rosen  <irar@il.ibm.com>
11998
11999         PR tree-optimization/45470
12000         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
12001         can throw an exception.
12002         * tree-vect-stmts.c (vectorizable_call): Likewise.
12003
12004 2010-09-14  DJ Delorie  <dj@redhat.com>
12005
12006         PR target/44749
12007         * config/mep/mep-protos.h (mep_save_register_info,
12008         mep_reinit_regs, mep_init_regs): Declare.
12009
12010         * config/mep/mep.c: Move all target definitions to the end of the
12011         file to avoid the need for duplicate declarations.
12012         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
12013         (mep_reorg_erepeat): Remove unused variables.
12014         (mep_expand_builtin): Likewise.
12015
12016         * config/mep/mep-pragma.c: Don't include rtl.h.
12017         (INVALID_REGNUM): New.
12018         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
12019         functions.
12020         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
12021         Avoid enum/integer math.
12022
12023 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
12024
12025         PR target/44749
12026         * config/mep/t-mep (GTM_H): Add insn-constants.h.
12027         * config/mep/mep.c (mep_conditional_register_usage): Take no
12028         parameters.
12029         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
12030         prototype.
12031         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
12032         call to mep_conditional_register_usage.
12033
12034 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
12035
12036         PR debug/43937
12037         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
12038         the DECL as well.
12039
12040 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
12041
12042         PR rtl-optimization/45617
12043         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
12044         even if low N bits of X aren't known to be zero.
12045
12046 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
12047
12048         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
12049
12050         * config/i386/i386.c (initial_ix86_tune_features): Add
12051         X86_TUNE_VECTORIZE_DOUBLE.
12052         (ix86_units_per_simd_word): New.
12053
12054         * config/i386/i386.h (ix86_tune_indices): Add
12055         X86_TUNE_VECTORIZE_DOUBLE.
12056         (TARGET_VECTORIZE_DOUBLE): New.
12057         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
12058
12059 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
12060
12061         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
12062         (new_temp_expr_table): Allocate call_cnt vector.
12063         (free_temp_expr_table): Free it.
12064         (process_replaceable): Add call_cnt parm and set in vector.
12065         (find_replaceable_in_bb): Skip replacement if def/use span a call.
12066         (debug_ter): Dump call_cnt value, remove stderr uses.
12067
12068 2010-09-13  Jan Hubicka  <jh@suse.cz>
12069
12070         * tree.c (build_zero_cst): New.
12071         * tree.h (build_zero_cst): Declare.
12072         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
12073         (get_base_constructor): Break out from ...
12074         (fold_const_aggregate_ref): Here; handle empty constructors.
12075
12076 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12077
12078         * config/arm/arm.md: (define_attr "conds"): Update comment.
12079         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
12080         conds attribute to clob.
12081         (arm_sync_compare_and_swapsi): Likewise.
12082         (arm_sync_compare_and_swap<mode>): Likewise.
12083         (arm_sync_lock_test_and_setsi): Likewise.
12084         (arm_sync_lock_test_and_set<mode>): Likewise.
12085         (arm_sync_new_<sync_optab>si): Likewise.
12086         (arm_sync_new_nandsi): Likewise.
12087         (arm_sync_new_<sync_optab><mode>): Likewise.
12088         (arm_sync_new_nand<mode>): Likewise.
12089         (arm_sync_old_<sync_optab>si): Likewise.
12090         (arm_sync_old_nandsi): Likewise.
12091         (arm_sync_old_<sync_optab><mode>): Likewise.
12092         (arm_sync_old_nand<mode>): Likewise.
12093
12094 2010-09-13  Olivier Hainque  <hainque@adacore.com>
12095
12096         * fwprop.c (forward_propagate_and_simplify): Only attach a
12097         REG_EQUAL note to an insn if the destination is a register.
12098         * gcse.c (try_replace_reg): Likewise.
12099
12100 2010-09-13  Richard Guenther  <rguenther@suse.de>
12101
12102         PR tree-optimization/45611
12103         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
12104         (copy_ref_info): Likewise.
12105
12106 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
12107
12108         PR debug/45604
12109         PR debug/45419
12110         PR debug/45408
12111         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12112         types of MEM_REF pointer types to the same type.
12113
12114 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
12115
12116         PR rtl-optimization/41087
12117         * ifcvt.c (noce_get_condition): Don't allow conditions with
12118         side-effects.
12119
12120 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
12121
12122         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12123         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
12124         * config/frv/frv.c (frv_register_move_cost): Make static. Change
12125         arguments type to reg_class_t. Add mode argument.
12126         (frv_memory_move_cost): New.
12127         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
12128
12129 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
12130
12131         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
12132         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
12133
12134 2010-09-10  Jan Hubicka  <jh@suse.cz>
12135
12136         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
12137
12138 2010-09-10  Richard Guenther  <rguenther@suse.de>
12139
12140         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
12141         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
12142         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
12143         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
12144         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
12145
12146 2010-09-10  Richard Guenther  <rguenther@suse.de>
12147
12148         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
12149         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
12150         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
12151         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
12152
12153 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12154
12155         PR middle-end/45634
12156         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
12157         of string folding is of integral type.
12158
12159 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
12160
12161         * doc/invoke.texi (-x): Fix typo.
12162
12163 2010-09-10  Richard Guenther  <rguenther@suse.de>
12164
12165         PR debug/44115
12166         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
12167         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
12168         Output DECL_DEBUG_EXPR.
12169         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
12170         Input DECL_DEBUG_EXPR.
12171
12172 2010-09-10  Richard Guenther  <rguenther@suse.de>
12173
12174         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
12175         (build_index_type): Implement in terms of build_range_type.
12176         (build_range_type): Do not allow NULL_TREE type, improve
12177         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
12178         if we didn't hash.
12179         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
12180         create a distinct copy of the type.
12181
12182 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
12183
12184         * configure: Regenerated.
12185         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
12186
12187 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12188
12189         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
12190         * config/arm/cortex-a9-neon.md: New and partially generated.
12191         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
12192
12193 2010-09-10  Richard Guenther  <rguenther@suse.de>
12194
12195         * tree.h (build_index_2_type): Remove.
12196         * tree.c (build_index_2_type): Remove.
12197
12198 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
12199
12200         PR bootstrap/45630
12201         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
12202         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
12203         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
12204
12205 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12206
12207         PR tree-optimization/44972
12208         * tree-sra.c: Include toplev.h.
12209         (build_ref_for_offset): Entirely reimplemented.
12210         (build_ref_for_model): New function.
12211         (build_user_friendly_ref_for_offset): New function.
12212         (analyze_access_subtree): Removed build_ref_for_offset check.
12213         (propagate_subaccesses_across_link): Likewise.
12214         (create_artificial_child_access): Use
12215         build_user_friendly_ref_for_offset.
12216         (propagate_subaccesses_across_link): Likewise.
12217         (ref_expr_for_all_replacements_p): Removed.
12218         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
12219         (sra_modify_expr): Use build_ref_for_model.
12220         (load_assign_lhs_subreplacements): Likewise.
12221         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
12222         checks for return values of build_ref_for_offset.
12223         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
12224         build_ref_for_offset.
12225         * ipa-prop.h: Include gimple.h
12226         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
12227         (ipa_analyze_indirect_call_uses): Update comment.
12228         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
12229         (IPA_PROP_H): Likewise.
12230
12231 2010-09-10  Martin Jambor  <mjambor@suse.cz>
12232
12233         PR tree-optimization/44972
12234         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
12235         calling build_ref_for_offset.
12236
12237 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12238
12239         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
12240         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
12241         * config/arm/arm-tune.md: Regenerate.
12242         * doc/invoke.texi (ARM Options): Document it.
12243
12244 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
12245
12246         * config/i386/i386.c: Include sched-int.h.
12247         (TARGET_SCHED_DISPATCH): Defined.
12248         (TARGET_SCHED_DISPATCH_DO): Defined.
12249         (DISPATCH_WINDOW_SIZE): Defined.
12250         (MAX_DISPATCH_WINDOWS): Defined.
12251         (MAX_INSN): Defined.
12252         (MAX_IMM): Defined.
12253         (MAX_IMM_SIZE): Defined.
12254         (MAX_IMM_32): Defined.
12255         (MAX_IMM_64): Defined.
12256         (MAX_LOAD): Defined.
12257         (MAX_STORE): Defined.
12258         (BIG): Defined.
12259         (dispatch_group): New.
12260         (num_allowable_groups): New.
12261         (group_name): New.
12262         (sched_insn_info_s): New.
12263         (dispatch_windows_s): New.
12264         (imm_info_s): New.
12265         (dispatch_window_list): New.
12266         (dispatch_window_list1): New.
12267         (get_mem_group): New.
12268         (is_cmp): New.
12269         (dispatch_violation): New.
12270         (is_branch): New.
12271         (is_prefetch): New.
12272         (init_window): New.
12273         (allocate_window): New.
12274         (init_dispatch_sched): New.
12275         (is_end_basic_block): New.
12276         (process_end_window): New.
12277         (allocate_next_window): New.
12278         (find_constant_1): New.
12279         (find_constant): New.
12280         (get_num_immediates): New.
12281         (has_immediate): New.
12282         (get_insn_path): New.
12283         (get_insn_group): New.
12284         (count_num_restricted): New.
12285         (fits_dispatch_window): New.
12286         (add_insn_window): New.
12287         (add_to_dispatch_window): New.
12288         (debug_dispatch_window_file): New.
12289         (debug_dispatch_window): New.
12290         (debug_insn_dispatch_info_file): New.
12291         (debug_ready_dispatch): New.
12292         (do_dispatch): New.
12293         (has_dispatch): New.
12294         * config/i386/i386.h (debug_ready_dispatch): Declared.
12295         (debug_dispatch_window): Declared.
12296         * config/i386/i386.opt (mdispatch-scheduler): New flag.
12297         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
12298         (TARGET_SCHED_DISPATCH_DO): New.
12299         * doc/tm.texi: Regererated.
12300         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
12301         ready_remove_first_dispatch
12302         (schedule_block): Call targetm.sched.dispatch and
12303         targetm.sched.dispatch_do.
12304         (sched_init): Call targetm.sched.dispatch and
12305         targetm.sched.dispatch_do.
12306         (ready_remove_first_dispatch): New.
12307         (number_in_ready): New.
12308         (get_ready_element): New.
12309         * hooks.c (hook_bool_rtx_int_false): New.
12310         (hook_void_rtx_int): New.
12311         * hooks.h (hook_bool_rtx_int_false): Declared.
12312         (hook_void_rtx_int): Declared.
12313         * sched-int.h (IS_DISPATCH_ON): Defined.
12314         (IS_CMP): Defined.
12315         (DISPATCH_VIOLATION): Defined.
12316         (FITS_DISPATCH_WINDOW): Defined.
12317         (DISPATCH_INIT): Defined.
12318         (ADD_TO_DISPATCH_WINDOW): Defined.
12319         (get_ready_element): Declared.
12320         (number_in_ready): Declared.
12321         * target.def (dispatch): Defined.
12322         (dispatch_do): Defined.
12323
12324 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12325
12326         PR middle-end/45312
12327         * reload1.c (merge_assigned_reloads): Remove.
12328         (reload_as_needed): Don't call it.
12329
12330 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
12331
12332         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
12333         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12334         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12335
12336 2010-09-09  Matthias Klose  <doko@ubuntu.com>
12337
12338         PR bootstrap/43847
12339         * configure.ac (--enable-plugin): Enhance for cross builds.
12340         * configure: Regenerate.
12341
12342 2010-09-09  Jan Hubicka  <jh@suse.cz>
12343
12344         PR tree-optimization/45598
12345         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
12346         string folding is of integral type.
12347
12348 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
12349
12350         * configure.ac (gnu_indirect_function): New test.
12351         * configure: Rebuilt.
12352         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
12353         * defaults.h (IFUNC_ASM_TYPE): Provide default.
12354
12355         * doc/extend.texi (Function Attributes): Document ifunc.
12356         * varasm.c (do_assemble_alias): Deal with ifuncs too.
12357
12358 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
12359
12360         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
12361         epilogue instruction move.
12362
12363 2010-09-09  Jan Hubicka  <jh@suse.cz>
12364
12365         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
12366         command line to allow more partitions than input files.
12367
12368 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12369
12370         PR middle-end/44554
12371         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
12372
12373 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
12374
12375         PR middle-end/40386
12376         * ira.c (pseudo_for_reload_consideration_p): Don't use
12377         flag_ira_share_spill_slots.
12378
12379 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12380
12381         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
12382         point zero operands that fit into a single GPR.
12383         (s390_preferred_reload_class): Ensure we only return general-purpose
12384         register classes.
12385         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
12386         floating-point zero operands into GPRs.
12387         ("*mov<mode>_64"): Likewise.
12388         ("mov<mode>"): Likewise using lhi.
12389
12390 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12391
12392         * config/s390/s390.c (s390_symref_operand_p): Return false for
12393         literal pool references.
12394         (s390_check_qrst_address): Update caller.
12395
12396 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
12397
12398         * config/i386/predicates.md (ext_register_operand): Check that
12399         SUBREG_REG is really a register before looking for REGNO.
12400         (reg_not_xmm0_operand): Handle SUBREGs correctly.
12401         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
12402
12403 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
12404
12405         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
12406         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
12407         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
12408         * print-rtl.c (print_rtx): Likewise.
12409         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
12410         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
12411         for ADDR_EXPR with non-addressable object.
12412         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
12413         (struct dw_val_struct): Add v.val_decl_ref.
12414         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
12415         Handle DW_OP_GNU_implicit_pointer.
12416         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
12417         (get_ref_die_offset_label): New function.
12418         (implicit_ptr_descriptor): New function.
12419         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
12420         (loc_descriptor): Likewise.
12421         (gen_variable_die): Put even definitions into decl_die_table.
12422         (resolve_addr_in_expr): Resolve still unresolved
12423         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
12424         return false.
12425         (dwarf2out_finish): Call output_location_lists after outputting
12426         .debug_info and .debug_abbrev instead of before.
12427
12428 2010-09-09  Roland McGrath  <roland@redhat.com>
12429
12430         * dwarf2out.c (DWARF_REF_SIZE): Define.
12431         (size_of_loc_descr): Use it for DW_OP_call_ref.
12432
12433 2010-09-09  Alan Modra  <amodra@gmail.com>
12434
12435         * doc/invoke.text: Reinstate mcmodel=medium.
12436         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
12437         CMODEL_MEDIUM as default.
12438         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
12439         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
12440         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
12441         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
12442
12443 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12444
12445         PR target/45250
12446         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
12447         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
12448         (builtin_longjmp): Likewise.
12449         (allocate_stack): Use hard_frame_pointer_rtx instead of
12450         frame_pointer_rtx.
12451         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
12452         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
12453         (pa_can_eliminate): Likewise.
12454         (TARGET_INTERNAL_ARG_POINTER): Define.
12455         (TARGET_CAN_ELIMINATE): Define.
12456         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
12457         pointer.
12458         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
12459         (pa_internal_arg_pointer, pa_can_eliminate,
12460         pa_initial_elimination_offset): New.
12461         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
12462         (HARD_FRAME_POINTER_REGNUM): Set to register three.
12463         (INITIAL_FRAME_POINTER_OFFSET): Delete.
12464         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
12465         Define.
12466         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
12467         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
12468         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
12469         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
12470         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
12471         new soft frame pointer.
12472         * config/pa/pa64-regs.h: Likewise.
12473
12474 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12475
12476         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
12477         numerical constant.
12478         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
12479
12480 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12481
12482         PR debug/45531
12483         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
12484
12485 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
12486
12487         PR debug/45419
12488         PR debug/45408
12489         * tree-pretty-print.c (dump_generic_node): Disregard top-level
12490         qualifiers in otherwise equal MEM_REF pointer types.
12491         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
12492         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
12493
12494 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12495
12496         PR target/44392
12497         * config/arm/arm.md (bswapsi2): Handle condition correctly
12498         for armv6 and optimize_size.
12499
12500 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
12501
12502         PR other/18555
12503         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
12504
12505 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
12506
12507         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
12508         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
12509         ix86_expand_strlen, legitimate_pic_address_disp_p,
12510         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
12511         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
12512         ix86_check_movabs, ix86_secondary_memory_needed): Change function
12513         prototype to bool.
12514         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
12515         return_in_memory_ms_64, ix86_check_movabs,
12516         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
12517         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
12518         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
12519         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
12520         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
12521         ix86_secondary_memory_needed): Change to bool.  Return
12522         "true" and "false" values.
12523         * config/i386/i386.md: Return "true" and "false" values.
12524
12525 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12526
12527         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12528         run_expensive_tests.
12529
12530 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12531
12532         * toplev.c (output_stack_usage): Use lbasename instead of basename.
12533
12534 2010-09-08  Martin Jambor  <mjambor@suse.cz>
12535
12536         PR other/45443
12537         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
12538         at -O3.
12539
12540 2010-09-08  Richard Guenther  <rguenther@suse.de>
12541
12542         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
12543         (visit): Adjust.
12544         (iterative_hash_gimple_type): Likewise.
12545         (gimple_type_hash): Likewise.
12546         (gimple_register_type): Likewise.
12547         (print_gimple_types_stats): Likewise.
12548         (free_gimple_type_tables): Likewise.
12549
12550 2010-09-08  Michael Matz  <matz@suse.de>
12551
12552         PR tree-optimization/43430
12553         * tree-vect-stmts.c (vectorizable_condition): Support multiple
12554         copies for conditional statements if it's not part of a reduction.
12555
12556 2010-09-08  Michael Matz  <matz@suse.de>
12557
12558         PR tree-optimization/33244
12559         * tree-ssa-sink.c (statement_sink_location): Don't sink into
12560         empty loop latches.
12561
12562 2010-09-08  Richard Guenther  <rguenther@suse.de>
12563
12564         PR tree-optimization/45578
12565         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
12566         Be more careful when transfering alignment information to
12567         the new induction variable.
12568         (copy_ref_info): Likewise.
12569
12570 2010-09-08  Richard Guenther  <rguenther@suse.de>
12571
12572         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
12573         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
12574
12575 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
12576
12577         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
12578         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
12579
12580 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
12581
12582         PR doc/45587
12583         * doc/md.texi: Fixed modes on several standard pattern names.
12584
12585 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
12586
12587         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
12588         (ashl<mode>3): ...this.
12589         (loongson_psra<V_suffix>): Rename to...
12590         (ashr<mode>3): ...this.
12591         (loongson_psrl<V_suffix>): Rename to...
12592         (lshr<mode>3): ...this.
12593         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
12594         (CODE_FOR_loongson_psllw): Define.
12595         (CODE_FOR_loongson_psrlh): Define.
12596         (CODE_FOR_loongson_psrlw): Define.
12597         (CODE_FOR_loongson_psrah): Define.
12598         (CODE_FOR_loongson_psraw): Define.
12599
12600 2010-09-07  Richard Henderson  <rth@redhat.com>
12601
12602         * tree-vect-data-refs.c: Include tm_p.h.
12603         * Makefile.in (tree-vect-data-refs.o): Update deps.
12604         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
12605         Move delarations outside #ifdef RTX_CODE.
12606
12607 2010-09-07  Richard Henderson  <rth@redhat.com>
12608
12609         * final.c (rest_of_handle_final): Unconditionally do
12610         output_function_exception_table before assemble_end_function.
12611
12612 2010-09-07  Jan Hubicka  <jh@suse.cz>
12613
12614         * tree-inline.c (tree_inlinable_function_p): Do not test
12615         DECL_REPLACEABLE_P.
12616         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
12617         update_callee_keys, cgraph_decide_inlining): Test function availability.
12618         * cif-code.def (OVERWRITABLE): New code.
12619
12620 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
12621             Jack Howarth  <howarth@bromo.med.uc.edu>
12622
12623         PR target/36502
12624         PR target/42313
12625         PR target/44651
12626         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
12627         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
12628         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
12629         MAX macro.
12630
12631 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12632
12633         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
12634         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
12635
12636 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12637
12638         * config.gcc: Don't append t-android for Android targets.
12639
12640         * config/t-android: Removed.
12641
12642 2010-09-07  Richard Henderson  <rth@redhat.com>
12643
12644         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
12645         * doc/tm.texi.in: Add doc marker.
12646         * doc/tm.texi: Rebuild.
12647         * except.c (switch_to_exception_section): Always build.
12648         (output_one_function_exception_table): Move section switch,
12649         personality output, and label output ...
12650         (output_function_exception_table): ... here.  Use the new
12651         personality hook.
12652
12653         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
12654         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
12655         TARGET_ASM_INIT_SECTIONS): New.
12656         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
12657         make static.
12658         (TARGET_ASM_UNWIND_EMIT): Update to match.
12659         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
12660
12661         * config/arm/arm.c (arm_asm_emit_except_personality): New.
12662         (arm_asm_init_sections): New.
12663         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
12664
12665 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12666
12667         * config/arm/arm.md: Remove unused variable.
12668
12669 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
12670
12671         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12672         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
12673         (m32r_memory_move_cost): New function.
12674
12675 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
12676
12677         * config.gcc: Append t-android for Android targets.
12678
12679         * config/t-android: New.
12680
12681 2010-09-07  Richard Henderson  <rth@redhat.com>
12682
12683         * target.def (unwind_emit_before_insn): New hook.
12684         * doc/tm.texi.in: Add @hook marker for it.
12685         * doc/tm.texi: Rebuild.
12686         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
12687
12688 2010-09-07  Martin Jambor  <mjambor@suse.cz>
12689
12690         PR fortran/43665
12691         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
12692         are any type attributes.
12693
12694 2010-09-07  Jan Hubicka  <jh@suse.cz>
12695
12696         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
12697         array_ref_low_bound in string access folding.
12698
12699 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
12700
12701         PR target/45206
12702         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
12703         eh_return fixup sequence.
12704
12705 2010-09-07  Jan Hubicka  <jh@suse.cz>
12706
12707         * gimple-fold.c (maybe_fold_reference): Verify that operand is
12708         gimple_min_invariant.
12709
12710 2010-09-07  Richard Guenther  <rguenther@suse.de>
12711
12712         PR middle-end/45569
12713         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
12714         nor CONSTRUCTOR can trap.
12715         * tree-complex.c (update_complex_assignment): Update EH info.
12716
12717 2010-09-07  Richard Guenther  <rguenther@suse.de>
12718
12719         PR middle-end/45569
12720         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
12721         * passes.c (execute_function_todo): Do not verify anything if
12722         we saw errors.
12723
12724 2010-09-07  Richard Guenther  <rguenther@suse.de>
12725
12726         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
12727
12728 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
12729
12730         PR target/43137
12731         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
12732         New define_mode_attrs.
12733         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
12734         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
12735         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
12736         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
12737         Remove pool_range attribute.
12738         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
12739         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
12740         pool_range and neg_pool_range attributes.
12741         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
12742         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
12743         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
12744
12745 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12746
12747         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
12748         check glibc.
12749
12750 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12751
12752         PR target/22152
12753         * config/i386/mmx.md (*mov<mode>_internal_rex64,
12754         *mov<mode>_internal_avx, *mov<mode>_internal,
12755         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
12756         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
12757
12758 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
12759
12760         * c-typeck.c (do_warn_double_promotion): Remove.
12761         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
12762         Objective-C++ too.
12763
12764 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
12765
12766         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
12767         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
12768         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
12769         argument type to reg_class_t. Change result type to bool.
12770         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12771
12772 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
12773
12774         PR libobjc/19850
12775         * gthr-posix.h (__gthread_objc_thread_detach): Use
12776         _objc_thread_attribs when detaching a thread.
12777         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
12778
12779 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
12780
12781         PR target/45524
12782         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
12783         * configure: Regenerated.
12784
12785 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12786
12787         * combine.c (try_combine): Set subst_low_luid to i0.
12788
12789 2010-09-06  Richard Guenther  <rguenther@suse.de>
12790
12791         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
12792         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
12793         (build_aligned_type): Declare.
12794         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
12795         (check_aligned_type): New function.
12796         (build_aligned_type): Likewise.
12797         * expr.c (expand_assignment): Handle misaligned stores via
12798         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
12799         (expand_expr_real_1): Likewise.
12800         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
12801         * tree-vect-stmts.c (vectorizable_store): Do not build
12802         MISALIGNED_INDIRECT_REF but initialize alignment information.
12803         (vectorizable_load): Likewise.
12804         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
12805         handling.
12806         * cfgexpand.c (expand_debug_expr): Likewise.
12807         * dwarf2out.c (loc_list_from_tree): Likewise.
12808         * fold-const.c (maybe_lvalue_p): Likewise.
12809         (operand_equal_p): Likewise.
12810         (build_fold_addr_expr_with_type_loc): Likewise.
12811         * gimplify.c (gimplify_addr_expr): Likewise.
12812         (gimplify_expr): Likewise.
12813         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12814         (verify_gimple_assign_single): Likewise.
12815         * tree-dump.c (dequeue_and_dump): Likewise.
12816         (tree_could_trap_p): Likewise.
12817         * tree-predcom.c (ref_at_iteration): Likewise.
12818         * tree-pretty-print.c (dump_generic_node): Likewise.
12819         (op_code_prio): Likewise.
12820         (op_symbol_code): Likewise.
12821         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12822         * tree-ssa-loop-im.c (for_each_index): Likewise.
12823         (gen_lsm_tmp_name): Likewise.
12824         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12825         (find_interesting_uses_address): Likewise.
12826         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12827         * tree-ssa-operands.c (get_expr_operands): Likewise.
12828         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12829         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12830         (ao_ref_init_from_vn_reference): Likewise.
12831         * tree.c (staticp): Likewise.
12832         (build1_stat): Likewise.
12833         (reference_alias_ptr_type): Likewise.
12834         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12835         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
12836         MISALIGNED_INDIRECT_REF handling.
12837
12838 2010-09-06  Richard Guenther  <rguenther@suse.de>
12839
12840         PR tree-optimization/45534
12841         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
12842         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
12843         on the target.
12844         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
12845         valid on the target.
12846
12847 2010-09-06  Andreas Schwab  <schwab@redhat.com>
12848
12849         * configure.ac: Quote argument of AC_MSG_WARN.
12850         * configure: Regenerate.
12851
12852 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
12853
12854         * sel-sched.c (move_cond_jump): Correct arguments to
12855         maybe_tidy_empty_bb.
12856         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
12857
12858 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
12859
12860         PR rtl-optimization/44919
12861         * sel-sched.c (move_cond_jump): Remove assert, check that
12862         the several blocks case can only happen with mutually exclusive
12863         insns instead.  Rewrite the movement code to support moving through
12864         several basic blocks.
12865
12866 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
12867
12868         * config/i386/i386.md (iptrsize): New mode attribute.
12869         (tp_seg): Ditto.
12870         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
12871         mode iterator.
12872         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
12873         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
12874         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
12875         (stack_tls_protect_set_<mode>): Ditto from
12876         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
12877         of thread base pointer load.
12878         (stack_tls_protect_test_<mode>): Ditto from
12879         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
12880         of thread base pointer load.
12881         (stack_protect_set): Rewrite using indirect functions.
12882         (stack_protect_test): Ditto.
12883         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
12884         (ix86_print_operand): Handle '@'.
12885
12886 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
12887
12888         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
12889         MINUS_EXPR.
12890
12891 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
12892
12893         * doc/invoke.texi: Document -Wdouble-promotion.
12894         * c-typeck.c (convert_arguments): Check for implicit conversions
12895         from float to double.
12896         (do_warn_double_promotion): New function.
12897         (build_conditional_expr): Use it.
12898         (build_binary_op): Likewise.
12899
12900 2010-09-05  Richard Guenther  <rguenther@suse.de>
12901
12902         PR tree-optimization/45535
12903         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12904         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
12905         dereferencing it.
12906         (indirect_refs_may_alias_p): Likewise.
12907
12908 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
12909
12910         * config/sh/sh.c (sh_option_override): Make static.
12911         Adjust comments.  Declare.
12912         (sh_function_value_regno_p): Likewise.
12913         (sh_register_move_cost): Modify the arguments, make static.
12914         Adjust comments.  Declare.
12915         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
12916         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12917         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
12918         REGISTER_MOVE_COST): Delete.
12919         * config/sh/sh-protos.h (sh_override_options): Delete.
12920         (sh_register_move_cost): Delete.
12921         (sh_function_value_regno_p): Delete.
12922
12923 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
12924
12925         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
12926         m32r_function_value_regno_p): New functions.
12927         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12928         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
12929         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
12930         FUNCTION_VALUE_REGNO_P): Remove.
12931
12932 2010-09-04  Jan Hubicka  <jh@suse.cz>
12933
12934         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
12935         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
12936         fold_read_from_constant_string.
12937
12938         * gimple.h (canonicalize_constructor_val): Declare.
12939         * gimple-fold.c (canonicalize_constructor_val): New function.
12940         (get_symbol_constant_value):Use it.
12941         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
12942
12943 2010-09-04  Jan Hubicka  <jh@suse.cz>
12944
12945         * tree-switch-conversion.c (build_one_array): Set constructor to be
12946         static.
12947         * varpool.c (varpool_finalize_decl): Compute const_value_known.
12948
12949 2010-09-04  Richard Guenther  <rguenther@suse.de>
12950
12951         PR bootstrap/45519
12952         * tree-flow.h (force_gimple_operand_1): Declare.
12953         (force_gimple_operand_gsi_1): Likewise.
12954         * gimplify.c (force_gimple_operand_1): New worker taking a
12955         gimple predicate for ...
12956         (force_gimple_operand): ... which now wraps it.
12957         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
12958         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
12959         last change.
12960         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
12961         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
12962         (create_mem_ref): Likewise.
12963
12964 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
12965
12966         * config/i386/predicates.md (sse_reg_operand): New predicate.
12967         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
12968         predicate for operand 1.
12969         (XFmode push splitter): Use fp_register_operand predicate
12970         for operand 1.
12971         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
12972         (SF-DF float_extend push splitter): Add reload_completed insn
12973         predicate.
12974         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
12975         MODEF mode macro.  Add reload_completed insn predicate.
12976
12977 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
12978
12979         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
12980         (struct df_extract_ref): Remove.
12981         (union df_ref_d): Remove extract_ref member.
12982         (df_ref_create): Remove last three arguments.
12983         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
12984         * df-scan.c (df_ref_record): Remove last three arguments, do not
12985         pass them to df_ref_create_structure.
12986         (df_uses_record): Remove first and last three arguments.  Replace
12987         first argument with DF_REF_REGULAR, adjust calls to remove the
12988         width, offset and mode.  Always call recursively on the second
12989         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
12990         (df_ref_create_structure): Remove first argument.
12991         (struct df_scan_problem_data): Remove ref_extract_pool.
12992         (df_scan_free_internal): Do not free it.
12993         (df_scan_alloc): Do not allocate it.
12994         (df_ref_create): Remove last three arguments, do not pass them to
12995         df_ref_create_structure.
12996         (df_free_ref): Remove DF_REF_EXTRACT case.
12997         (df_notes_rescan): Adjust call to df_uses_record.
12998         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
12999         Remove DF_REF_EXTRACT case.
13000         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
13001         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
13002         and SUBREG definitions.
13003         (df_get_conditional_uses): Remove references to width/offset/mode,
13004         adjust call to df_ref_create_structure.
13005         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
13006         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
13007         calls to df_uses_record and df_ref_record.
13008         * fwprop.c (update_df): Remove references to width/offset/mode,
13009         adjust call to df_ref_create.
13010
13011 2010-09-03  Jan Hubicka  <jh@suse.cz>
13012
13013         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
13014         (build_cdtor_fns): Update use of build_cdtor.
13015
13016 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
13017
13018         * doc/options.texi (SeparateAlias): Document.
13019         * opt-functions.awk (switch_flags): Handle SeparateAlias.
13020         * opth-gen.awk: Generate enumeration names for options marked
13021         SeparateAlias, but not for those marked Ignore.
13022         * opts-common.c (generate_canonical_option): Don't output separate
13023         argument for options marked CL_SEPARATE_ALIAS.
13024         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
13025         * opts.h (CL_SEPARATE_ALIAS): New.
13026         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
13027         CL_COMMON): Adjust definitions.
13028         * config/i386/darwin.opt, config/mips/sde.opt: New.
13029         * common.opt (fdump-final-insns): New.
13030         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13031         i386/darwin.opt.
13032         (mips*-sde-elf*): Add mips/sde.opt.
13033         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
13034         -mno-data-in-code and -mcode-xonly here.
13035         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
13036         * gcc.c (option_map): Add "j" to --dump entry.
13037         (translate_options): Don't translate -d to -foutput-class-dir= here.
13038
13039 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
13040
13041         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
13042         DR_IS_WRITE.
13043         (compute_all_dependences): Same.
13044         (create_rdg_edge_for_ddr): Same.
13045         * tree-data-ref.h (DR_IS_WRITE): New.
13046         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
13047         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
13048         (write_memrefs_written_at_least_once): Same.
13049         * tree-predcom.c (suitable_component_p): Same.
13050         (determine_roots_comp): Same.
13051         (execute_load_motion): Same.
13052         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
13053         (vect_enhance_data_refs_alignment): Same.
13054         (vect_analyze_group_access): Same.
13055
13056 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13057
13058         PR testsuite/42843
13059         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
13060         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
13061
13062 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
13063
13064         * dwarf2out.c (file scope): Remove #if0'd code.
13065         (gen_subprogram_die): Same.
13066
13067 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13068
13069         PR middle-end/45484
13070         * dwarf2out.c (flush_queued_reg_saves): Rename to...
13071         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
13072         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
13073         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
13074         * config/i386/i386.c (output_set_got): Call it.
13075
13076 2010-09-03  Michael Matz  <matz@suse.de>
13077
13078         PR middle-end/45415
13079         * tree-sra.c (sra_modify_assign): If we modify the statement,
13080         say so.
13081
13082         * tree-ssa.c (verify_ssa): Check number of operands and links
13083         per statement to agree.
13084
13085 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13086             Iain Sandoe  <iains@gcc.gnu.org>
13087
13088         PR target/45476
13089         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
13090         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
13091         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13092
13093 2010-09-03  Richard Guenther  <rguenther@suse.de>
13094
13095         * lto-streamer-out.c (output_function): Output function
13096         start and end loci.
13097         * lto-streamer-in.c (input_function): Input function start
13098         and end loci.
13099
13100 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13101
13102         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
13103         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
13104         * configure: Regenerate.
13105         * aclocal.m4: Regenerate.
13106
13107 2010-09-03  Jan Hubicka  <jh@suse.cz>
13108
13109         PR lto/44812
13110         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
13111         on functions/variables in other partition.
13112
13113 2010-09-03  Jan Hubicka  <jh@suse.cz>
13114
13115         * cgraph.h (struct varpool_node): Add const_value_known.
13116         (varpool_decide_const_value_known): Declare.
13117         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
13118         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
13119         (input_varpool_node): Restore const_value_known.
13120         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
13121         initializer folding.
13122         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13123         function_and_variable_visibility): Compute const_value_known.
13124         * gimple-fold.c (get_symbol_constant_value): Use varpool for
13125         initializer folding.
13126         * varpool.c (varpool_decide_const_value_known): New function.
13127
13128 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
13129
13130         * config/i386/i386.md: Remove empty preparation statements
13131         from splitters.
13132
13133 2010-09-03  Jan Hubicka  <jh@suse.cz>
13134
13135         * passes.c (rest_of_decl_compilation): Do not add local vars into
13136         varpool.
13137         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
13138         static or extern vars are in varpool.
13139         (varpool_finalize_decl): Sanity check that only static vars are
13140         finalized.
13141
13142 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
13143
13144         PR debug/45500
13145         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
13146         not just generic vectors with BLKmode.
13147
13148 2010-09-03  Richard Guenther  <rguenther@suse.de>
13149
13150         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
13151         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
13152         * tree.h (TMR_SYMBOL): Remove.
13153         (TMR_BASE, TMR_OFFSET): Adjust.
13154         (TMR_INDEX2): New.
13155         * alias.c (ao_ref_from_mem): Use TMR_BASE.
13156         * builtins.c (get_object_alignment): Merge TMR_BASE and
13157         TMR_SYMBOL handling.
13158         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
13159         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
13160         handling.  Also allow TARGET_MEM_REF as base address.
13161         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
13162         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
13163         base.  Gimplify TMR_INDEX2.
13164         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
13165         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13166         (get_addr_base_and_unit_offset): Likewise.
13167         * tree-eh.c (tree_could_trap_p): Likewise.
13168         * tree-pretty-print.c (dump_generic_node): Likewise.
13169         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
13170         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
13171         base to index2.
13172         (get_address_description): Reconstruct addres description
13173         from merged TMR_BASE and TMR_INDEX2.
13174         (maybe_fold_tmr): Fold propagated addresses.
13175         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
13176         MEM_REF and TARGET_MEM_REF paths.
13177         (indirect_refs_may_alias_p): Likewise.
13178         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
13179         instead of TMR_SYMBOL.
13180         * tree-ssa-operands.c (get_tmr_operands): Simplify.
13181         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
13182         according to changes ...
13183         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
13184         Split TARGET_MEM_REF into two fields plus the base.
13185         * tree.c (mem_ref_offset): Simplify.
13186         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
13187         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
13188         Strip NOPs when folding MEM_REF addresses.
13189         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
13190         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
13191         (fold_gimple_assign): ... not here.
13192
13193 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
13194
13195         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
13196         * config/mips/mips.c (mips_shift_truncation_mask): New function.
13197         (TARGET_SHIFT_TRUNCATION_MASK): Define.
13198
13199 2010-09-02  Richard Henderson  <rth@redhat.com>
13200
13201         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
13202         instead of readelf in the test.
13203         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
13204         in the .debug_frame section for coff targets.
13205         * configure: Rebuild.
13206
13207 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13208
13209         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
13210         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
13211         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13212         (m32c_class_likely_spilled_p): Make static. Change argument type to
13213         reg_class_t. Change result type to bool.
13214
13215 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13216
13217         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
13218         to convert (double)(long) into a single FRIZ instruction or not
13219         when -ffast-math is used.
13220
13221         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
13222         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
13223         or FRIZ instruction if -ffast-math.
13224         * config/rs6000/rs6000.md (friz): Ditto.
13225
13226         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
13227
13228 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13229
13230         * opth-gen.awk (quote, comma): Remove unused variables.
13231
13232 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
13233
13234         * arm.c (arm_override_options): Correct fall-back code to use
13235         SUBTARGET_CPU_DEFAULT.
13236
13237 2010-09-02  Julian Brown  <julian@codesourcery.com>
13238
13239         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
13240         unspecs.
13241         (vcond<mode>, vcondu<mode>): New expanders.
13242         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
13243         comparisons with zero.
13244         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
13245         * config/arm/constraints.md (Dz): New constraint.
13246
13247 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
13248
13249         * target.def (class_likely_spilled_p): New hook.
13250         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
13251         * doc/tm.texi: Regenerate.
13252         * targhooks.c (default_class_likely_spilled_p): New function.
13253         * targhooks.h (default_class_likely_spilled_p): Declare.
13254         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
13255         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
13256         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
13257         Use fixed_reg_set instead of fixed_regs.
13258         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13259         * calls.c (avoid_likely_spilled_reg): Ditto.
13260         * ira-conflicts.c (ira_build_conflicts): Ditto.
13261         * ira.c (update_equiv_regs): Ditto.
13262         * mode-switching.c (create_pre_exit): Ditto.
13263         * regmove.c (find_matches): Ditto.
13264         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
13265         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
13266         (small_register_class_p): New inline function.
13267         (push_secondary_reload, find_reusable_reload, find_reloads): Use
13268         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
13269
13270         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
13271         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
13272         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13273
13274 2010-09-02  Richard Guenther  <rguenther@suse.de>
13275
13276         PR tree-optimization/44937
13277         PR tree-optimization/45412
13278         * ipa-split.c (split_function): Properly remove PHI nodes.
13279
13280 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13281
13282         * opts.h (struct cl_option): Add warn_message field.
13283         (struct cl_decoded_option): Add warn_message field.
13284         * doc/options.texi (Ignore, Warn): Document.
13285         * opt-functions.awk (needs_state_p): Don't consider aliases or
13286         ignored options to need state saved.
13287         * optc-gen.awk: Handle Warn and Ignore.
13288         * opth-gen.awk: Output OPT_SPECIAL_ignore.
13289         * opts-common.c (decode_cmdline_option): Set warn_message field.
13290         Handle ignored options.
13291         (decode_cmdline_options_to_array, generate_option,
13292         generate_option_input_file): Set warn_message field.
13293         (read_cmdline_option): Generate warnings from warn_message field.
13294         Handle ignored options.
13295         * common.opt (Wunreachable-code, fargument-alias,
13296         fargument-noalias, fargument-noalias-global,
13297         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
13298         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
13299         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
13300         ftree-salias): Mark Ignore.
13301         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
13302         -mintel-syntax and -mno-intel-syntax here.
13303         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
13304         using Warn.
13305         * opts.c (common_handle_option): Don't handle options marked as
13306         ignored.
13307         (enable_warning_as_error): Handle ignored options.
13308
13309 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
13310
13311         PR driver/44076
13312         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
13313         alias_target fields.
13314         * opt-functions.awk (opt_sanitized_name): Don't handle
13315         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
13316         * optc-gen.awk: Generate alias fields.
13317         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
13318         Don't generate such constants for aliases.
13319         * opts-common.c (generate_canonical_option): New.
13320         (decode_cmdline_option): Handle aliases.  Use
13321         generate_canonical_option for known options instead of copying the
13322         input option text.
13323         * doc/options.texi (Alias): Document.
13324         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
13325         fstack-check, specs): Mark as aliases.
13326         * gcc.c (driver_handle_option): Canonicalize -L options to joined
13327         arguments.
13328         (driver_handle_option): Don't handle OPT_specs.
13329         * opts.c (common_handle_option): Don't handle options marked as
13330         aliases.
13331         (enable_warning_as_error): Handle aliases.
13332         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
13333         OPT_Wlarger_than_eq.
13334         * tree-optimize.c (tree_rest_of_compilation): Use
13335         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
13336
13337 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13338
13339         * config/i386/i386.md (nonmemory_operand): New mode attribute.
13340         (push memory peephole2): Macroize peepholes using SWI mode iterator.
13341         (move immediate to memory peephole2): Macroize peepholes using
13342         SWI124 mode iterator.
13343         (non-pairable NOT peephole2): Macroize peepholes using SWI124
13344         mode iterator.
13345         (simple lea add peephole2): Macroize peepholes using SWI48
13346         mode iterator.
13347         (simple lea mult peephole2): Ditto.
13348         (imul by 3,5,9 to lea peephole2): Ditto.
13349         (mov $-1, reg peephole2): Macroize peepholes using SWI248
13350         mode iterator.
13351         (imul $32bit_imm,mem,reg peephole2): Ditto.
13352         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
13353
13354 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
13355
13356         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
13357
13358 2010-09-02  Olivier Hainque  <hainque@adacore.com>
13359
13360         PR middle-end/44763
13361         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
13362         (allocno_priority_compare_func): Use it instead of a straight
13363         difference computation over priorities.
13364
13365 2010-09-02  Andi Kleen  <ak@linux.intel.com>
13366
13367         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
13368
13369 2010-09-02  Ira Rosen  <irar@il.ibm.com>
13370
13371         * tree-vectorizer.h (get_later_stmt): New function.
13372         (vect_analyze_data_ref_dependences): Add argument.
13373         * tree-vect-loop.c (vect_analyze_loop): Update call to
13374         vect_analyze_data_ref_dependences.
13375         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
13376         New function.
13377         (vect_analyze_data_ref_dependence): Add argument for basic block
13378         dependencies. Check dependencies in basic block vectorization.
13379         (vect_analyze_data_ref_dependences): Add argument and update call to
13380         vect_analyze_data_ref_dependences.
13381         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
13382         (vect_bb_vectorizable_with_dependencies): New.
13383         (vect_slp_analyze_bb): Check dependencies in basic block.
13384         (vect_schedule_slp_instance): Insert stores before the last store in
13385         SLP instance.
13386
13387 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
13388
13389         PR target/45476
13390         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
13391         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
13392
13393 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
13394
13395         PR middle-end/45458
13396         * bb-reorder.c (add_labels_and_missing_jumps): Treat
13397         bbs ending with throwing insns like blocks ending with a call.
13398         (fix_up_fall_thru_edges): Likewise.
13399
13400 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
13401
13402         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
13403         (m32c_function_arg_advance): Delete.
13404         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13405         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
13406         comments.  Take a const_tree and a bool.  Declare.
13407         (m32c_function_arg_advance): Likewise.
13408         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13409
13410 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13411
13412         PR target/45476
13413         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
13414         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
13415         * config/i386/mingw32.h: ... here.
13416
13417 2010-09-01  Andi Kleen  <ak@linux.intel.com>
13418
13419         PR lto/45475
13420         * lto-streamer-in.c (lto_input_ts_target_option): Add.
13421         (lto_input_tree_pointers): Call lto_input_ts_target_option.
13422         * lto-streamer-out (lto_output_ts_target_option): Add.
13423         (lto_output_tree_pointers): Call lto_output_ts_target_option.
13424
13425 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
13426
13427         PR/target 45452
13428         * config/i386/cygwin.h: Change order of specified import libraries.
13429         * config/i386/mingw32.h: Likewise.
13430         * config/i386/t-cygwin: Likewise.
13431         * config/i386/t-mingw32: Likewise.
13432         * config/i386/t-mingw-w32: Likewise.
13433         * config/i386/t-mingw-w64: Likewise.
13434
13435 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13436
13437         * config/arm/neon-schedgen.ml (core): New type.
13438         (allCores): List of supported cores.
13439         (availability_table): Add supported cores.
13440         (collate_bypasses): Accept core as a parameter.
13441         (worst_case_latencies_and_bypasses): Accept core as a parameter.
13442         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
13443         and coreStr to get tune attribute and prefix for functional units.
13444         (emit_bypasses): Accept core name and use it.
13445         (calculate_per_core_availability_table): New.
13446         (filter_core): New.
13447         (calculate_core_availability_table): New.
13448         (main): Use calculate_core_availablity_table.
13449         * config/arm/cortex-a8-neon.md: Update copyright year.
13450         Regenerated from ml file and merged in.
13451         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
13452         cortex_a8_neon_mrc.
13453
13454 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
13455
13456         * Makefile.in (tree-switch-conversion.o): Update dependencies.
13457
13458 2010-09-01  Richard Guenther  <rguenther@suse.de>
13459
13460         * alias.c (ao_ref_from_mem): Adjust.
13461         * builtins.c (get_object_alignment): Likewise.
13462         * cfgexpand.c (expand_debug_expr): Likewise.
13463         * gimple.c (get_base_address): Likewise.
13464         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13465         (get_addr_base_and_unit_offset): Likewise.  Fix for
13466         both TMR_SYMBOL and TMR_BASE being set.
13467         * tree-eh.c (tree_could_trap_p): Likewise.
13468         * gimplify.c (gimplify_expr): Do not attempt to gimplify
13469         TMR_SYMBOL.  Always gimplify TMR_BASE.
13470         * tree-cfg.c (verify_types_in_gimple_reference): Verify
13471         TMR_BASE if there is a TMR_SYMBOL.
13472         * tree-pretty-print.c (dump_generic_node): Adjust.
13473         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
13474         (tree_mem_ref_addr): Likewise.
13475         (create_mem_ref_raw): Likewise.
13476         (move_fixed_address_to_symbol): Likewise.
13477         (create_mem_ref): Likewise.
13478         (dump_mem_address): Likewise.
13479         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
13480         Fix for both TMR_SYMBOL and TMR_BASE being set.
13481         (indirect_refs_may_alias_p): Likewise.
13482         * tree-ssa-operands.c (get_tmr_operands): Adjust.
13483         * tree.def (TARGET_MEM_REF): Adjust documentation.
13484
13485 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13486
13487         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
13488         Rename from X86_TUNE_ADD_ESP_4.
13489         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
13490         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
13491         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
13492         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
13493         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
13494         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
13495         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
13496         * config/i386/i386.c (initial_ix86_tune_features)
13497         <X86_TUNE_SINGLE_POP>: Invert members.
13498         <X86_TUNE_DOUBLE_POP>: Ditto.
13499         <X86_TUNE_SINGLE_PUSH>: Ditto.
13500         <X86_TUNE_DOUBLE_PUSH>: Ditto.
13501         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
13502         No longer exported.
13503         (push peephole2 patterns): Macroize peepholes using P mode iterator.
13504         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
13505         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
13506         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
13507
13508 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
13509
13510         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
13511         a volatile LHS if the constructor has only one element.
13512
13513 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
13514
13515         PR bootstrap/45321
13516         * tree.c (stdarg_p): Make fntype parameter const.
13517         * tree.h (stdarg_p): Likewise.
13518         (function_args_iterator): Remove unused fntype field.
13519         (function_args_iter_init): Do not initialize fntype
13520         field.  Make fntype parameter const.
13521
13522 2010-09-01  Richard Guenther  <rguenther@suse.de>
13523
13524         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
13525         estimate.
13526         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
13527         (execute_vrp): Compute number of iteration estimates.
13528         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
13529         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
13530         * tree-data-ref.c (estimated_loop_iterations): Adjust.
13531         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
13532         Infer loop bounds from undefined behavior based on a new parameter.
13533         (estimate_numbers_of_iterations): Likewise.
13534         (scev_probably_wraps_p): Adjust.
13535         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
13536
13537 2010-09-01  Nick Clifton  <nickc@redhat.com>
13538
13539         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
13540         where appropriate.
13541         (xstormy16_legitimate_address_p): Use true and false instead of 1
13542         and 0.
13543         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
13544         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
13545         magic constant 2.
13546         (xstormy16_expand_call): Fix comment at start of function.
13547
13548 2010-09-01  Nick Clifton  <nickc@redhat.com>
13549
13550         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
13551         when pushing accumulator register.
13552         (rx_get_stack_layout): Always save call clobbered registers inside
13553         interrupt handlers.
13554         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
13555
13556 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
13557
13558         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
13559         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
13560
13561         * libgcc-std.ver (GCC_4.6.0): Define version.
13562
13563 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13564
13565         * tree-nested.c (convert_all_function_calls): Iterate until after the
13566         sum of static chains in the nest doesn't change.
13567
13568 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
13569
13570         * config/m32c/m32c.c (classes_intersect): Remove.
13571         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
13572         reg_classes_intersect_p instead of classes_intersect.
13573         (class_can_hold_mode): Change arguments type from enum reg_class to
13574         reg_class_t.  Use reg_class_contents instead of class_contents.
13575         (m32c_register_move_cost): Make static. Change arguments type from
13576         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
13577         classes_intersect. Use reg_class_contents instead of class_contents.
13578         (m32c_memory_move_cost): Make static. Change arguments type from
13579         enum reg_class to reg_class_t.
13580         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
13581         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
13582         * config/m32c/m32c-protos.h (m32c_register_move_cost,
13583         m32c_memory_move_cost): Remove.
13584
13585 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13586
13587         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
13588         (arm_function_arg): Delete.
13589         (arm_needs_doubleword_align): Take a const_tree.
13590         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13591         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
13592         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
13593         (arm_function_arg): Make static.  Take a const_tree and a bool.
13594         (arm_function_arg_advance): Likewise.
13595         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13596
13597 2010-08-31  Andi Kleen  <ak@linux.intel.com>
13598
13599         * common.opt (fwhopr=): Update for -fwhopr=jobserver
13600         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
13601         * lto-wrapper.c (run_gcc): Add jobserver mode.
13602         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
13603         argument.
13604
13605 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
13606
13607         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
13608         (popsi1): Ditto.
13609         (*popdi1_epilogue): Ditto.
13610         (*popsi1_epilogue): Ditto.
13611         (popsi, popdi peephole2 patterns): Update peepholes for changed
13612         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
13613
13614         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
13615         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
13616
13617         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
13618         (override_options): Do not initialize removed ix86_gen_pop1.
13619         (gen_pop): New static function.
13620         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
13621         (release_scratch_register_on_entry): Ditto.
13622         (ix86_restore_reg_using_pop): Ditto.
13623         (ix86_expand_epilogue): Ditto.
13624
13625 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
13626
13627         PR middle-end/45461
13628         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
13629
13630 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13631
13632         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
13633         semicolons.
13634
13635 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13636
13637         * doc/extend.texi: Fix documentation of the return value of
13638         __builtin_choose_expr.
13639
13640 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13641
13642         * config/v850/v850-protos.h (function_arg): Delete.
13643         * config/v850/v850.h (FUNCTION_ARG): Delete.
13644         (FUNCTION_ARG_ADVANCE): Move code to...
13645         * config/v850/v850.c (v850_function_arg_advance): ...here.
13646         (v850_function_arg): Make static.  Take a const_tree and a bool.
13647         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13648
13649 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13650
13651         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
13652         these...
13653         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13654         ...and these...
13655         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
13656         ..to here..
13657         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
13658         ...and here.
13659         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13660
13661 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
13662
13663         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
13664         Delete.
13665         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13666         * config/rx/rx.c (rx_function_arg_size): Make static.
13667         (rx_function_arg): Likewise.
13668         (rx_function_arg_advance): New function.
13669         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13670
13671 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
13672
13673         * config/arm/arm.c (arm_override_options): Remove superfluous test.
13674         Fix indentation.
13675
13676 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
13677
13678         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
13679         (dwarf2out_decl) <CONST_DECL>: Likewise.
13680
13681 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
13682
13683         Stack usage support
13684         * common.opt (-fstack-usage): New option.
13685         * doc/invoke.texi (Debugging options): Document it.
13686         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
13687         allocate_dynamic_stack_space.
13688         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
13689         and propagate it to allocate_dynamic_stack_space.
13690         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
13691         * calls.c (initialize_argument_information): Pass TRUE as 4th
13692         argument to allocate_dynamic_stack_space.
13693         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
13694         to 1 when pushing a variable-sized argument onto the stack.  Pass
13695         TRUE as 4th argument to allocate_dynamic_stack_space.
13696         Update current_function_pushed_stack_size.
13697         (emit_library_call_value_1): Likewise.
13698         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
13699         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
13700         attempt to find an upper bound.  Remove redundant code for the
13701         SETJMP_VIA_SAVE_AREA case.
13702         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
13703         * function.h (struct stack_usage): New structure.
13704         (current_function_static_stack_size): New macro.
13705         (current_function_dynamic_stack_size): Likewise.
13706         (current_function_pushed_stack_size): Likewise.
13707         (current_function_dynamic_alloc_count): Likewise.
13708         (current_function_has_unbounded_dynamic_stack_size): Likewise.
13709         (current_function_allocates_dynamic_stack_space): Likewise.
13710         (struct function): Add new field 'su'.
13711         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
13712         add the value of the dynamic offset to the dynamic stack usage.
13713         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
13714         for variable-sized objects.
13715         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
13716         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
13717         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
13718         BUILT_IN_ALLOCA for variable-sized objects.
13719         * output.h (output_stack_usage): Declare.
13720         * toplev.c (stack_usage_file): New file pointer.
13721         (output_stack_usage): New function.
13722         (open_auxiliary_file): Likewise.
13723         (lang_dependent_init): Open file if flag_stack_usage is set.
13724         (finalize): Close file if stack_usage_file is not null.
13725         * tree.h (ALLOCA_FOR_VAR_P): New macro.
13726         * config/alpha/alpha.c (compute_frame_size): New function.
13727         (alpha_expand_prologue): Use it.
13728         (alpha_start_function): Likewise.
13729         (alpha_expand_epilogue): Likewise.  Set stack usage info.
13730         * config/i386/i386.c (ix86_expand_prologue): Likewise.
13731         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13732         * config/mips/mips.c (mips_expand_prologue): Likewise.
13733         * config/pa/pa.c (hppa_expand_prologue): Likewise.
13734         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13735         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13736
13737 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
13738
13739         PR tree-optimization/45427
13740         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
13741         Handle the case that the exit is never taken correctly.
13742         (number_of_iterations_ne): Pass exit_must_be_taken to
13743         number_of_iterations_ne_max.
13744
13745 2010-08-30  Catherine Moore  <clm@codesourcery.com>
13746
13747         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
13748         Infer -mdspr2 for the the 74K.
13749
13750 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
13751
13752         PR debug/45419
13753         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
13754
13755         PR middle-end/45423
13756         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
13757         and TRUTH_{AND,OR,XOR}_EXPR.
13758         * c-parser.c (c_parser_omp_atomic): Handle boolean
13759         {PRE,POST}_{INC,DEC}REMENT.
13760
13761 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
13762
13763         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
13764         (function_arg): Delete.
13765         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13766         (FUNCTION_INCOMING_ARG): Delete.
13767         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
13768         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
13769         and a bool.
13770         (function_arg): Rename to...
13771         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
13772         a bool.
13773         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
13774         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13775         (TARGET_FUNCTION_INCOMING_ARG): Define.
13776
13777 2010-08-30  Richard Guenther  <rguenther@suse.de>
13778
13779         PR tree-optimization/21602
13780         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
13781         using points-to information.
13782
13783 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
13784
13785         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
13786
13787 2010-08-30  Richard Guenther  <rguenther@suse.de>
13788
13789         PR tree-optimization/45449
13790         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
13791         variables.
13792
13793 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
13794
13795         * opts.h (CL_ERR_NEGATIVE): Define.
13796         * opts.c (unknown_option_callback): Don't postpone warnings for
13797         options marked with CL_ERR_NEGATIVE.
13798         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
13799         for negative versions of CL_REJECT_NEGATIVE options.
13800
13801 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
13802
13803         * config/i386/i386.md (zero_extendsidi2_1): Rename from
13804         zero_extendsidi2_32.
13805         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
13806         using SWI12 mode iterator.
13807         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
13808         to define_insn_and_split pattern.
13809         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
13810         using SWI24 mode iterator.
13811         (*zero_extendqi<mode>2_and): Macroize insn from
13812         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
13813         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
13814         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
13815         SWI24 mode iterator.
13816         (*zero_extendqi<mode>2_movzbl): Ditto from
13817         *zero_extendqi{hi,si}2_movzbl.
13818         (extendsidi2_1): Rename from extendsidi2_32.
13819         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
13820         SWI12 mode iterator.
13821
13822 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
13823
13824         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
13825         general purpose registers.
13826         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
13827         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
13828         with general purpose registers and memory operands.  Add associated
13829         CCImode post-reload splitter.
13830         * config/ia64/div.md: Change BImode to CCImode throughout.
13831
13832 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
13833
13834         * config/ia64/ia64.md (cstorebi4): Fix thinko.
13835
13836 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
13837
13838         * config/picochip/picochip.c (reorder_var_tracking_notes): This
13839         function was dropping debug insns which caused PR45299.
13840
13841 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
13842
13843         * config/i386/sse.md (extsuffix): New code attribute.
13844         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
13845         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
13846         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
13847         and sse4_1_zero_extendv4qiv4si2.
13848         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
13849         and sse4_1_zero_extendv2qiv2di2.
13850         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
13851         and sse4_1_zero_extendv4hiv4si2.
13852         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
13853         and sse4_1_zero_extendv2hiv2di2.
13854         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
13855         and sse4_1_zero_extendv2siv2di2
13856
13857         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
13858         using any_extend code iterator.
13859         (*avx_<s>mulv8hi3_highpart): Macroize insn from
13860         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
13861         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
13862
13863         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
13864         gen_sse4_1_sign_extend* functions.
13865         (struct builtin_description bdesc_args): Ditto.
13866
13867 2010-08-27  Xinliang David Li  <davidxl@google.com>
13868
13869         PR/45422
13870         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
13871         (iv_ca_set_no_cp): Update used inv expr count.
13872         (iv_ca_set_cp): Ditto.
13873         (iv_ca_new): Initialize new member.
13874         (iv_ca_free): Free memory.
13875
13876 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
13877
13878         * config/sh/sh-protos.h (sh_function_arg): Delete.
13879         (sh_function_arg_advance): Delete.
13880         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
13881         (PASS_IN_REG_P): Eliminate cast.
13882         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
13883         const_tree and a bool.
13884         (sh_function_arg): Likewise.
13885         (sh_output_mi_thunk): Call sh_function_arg_advance) and
13886         sh_function_arg.
13887         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
13888
13889 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
13890             Kaz Kojima  <kkojima@gcc.gnu.org>
13891
13892         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
13893         when possible.
13894         (sh_expand_epilogue): Likewise.
13895         * config/sh/sh.md (movml_push_banked): New insn.
13896         (movml_pop_banked): Likewise.
13897
13898 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
13899
13900         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
13901         gen_regexp_oneof, gen_regexp_sequence): Use the string found
13902         in vector element 0 rather than the original string when there's
13903         only one element.
13904         (gen_regexp): Remove extra semicolon.
13905
13906         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
13907         thumb2_movsf_vfp): Set attribute "insn".
13908         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
13909         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
13910         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
13911         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
13912         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
13913         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
13914         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
13915         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
13916         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
13917         if_not_arith, if_arith_not, cond_move_not): Likewise.
13918
13919 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
13920
13921         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
13922         New declaration.
13923         (rs6000_allocate_stack_temp): Ditto.
13924         (rs6000_expand_convert_si_to_sfdf): Ditto.
13925
13926         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
13927         line.  Update the options set if power6 or power7 server/embedded
13928         type options are used.  If we give a warning for no vsx under
13929         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
13930         (rs6000_allocate_stack_temp): New function to allocate a stack
13931         tempoary and adjust the address so it meets either REG+OFFSET or
13932         REG+REG addressing requirements.
13933         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
13934         that they can be used with the LFIWAX/LFIWZX instrucitons.
13935         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
13936         converting signed/unsigned SImode to either SFmode/DFmode.
13937
13938         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
13939         whether certain instructions can be generated.
13940         (TARGET_FCTIDZ): Ditto.
13941         (TARGET_STFIWX): Ditto.
13942         (TARGET_LFIWAX): Ditto.
13943         (TARGET_LFIWZX): Ditto.
13944         (TARGET_FCFIDS): Ditto.
13945         (TARGET_FCFIDU): Ditto.
13946         (TARGET_FCFIDUS): Ditto.
13947         (TARGET_FCTIDUZ): Ditto.
13948         (TARGET_FCTIWUZ): Ditto.
13949
13950         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
13951         (UNSPEC_FCTID): Ditto.
13952         (UNSPEC_LFIWAX): Ditto.
13953         (UNSPEC_LFIWZX): Ditto.
13954         (UNSPEC_FCTIWUZ): Ditto.
13955         (rreg): Use correct constraints.
13956         (SI_CONVERT_FP): New mode attribute for floating point conversion
13957         tests.
13958         (E500_CONVERT): Ditto.
13959         (lfiwax): New insns for converting from integer to floating point
13960         utilizing newer instructions.  Attempt to optimize conversions
13961         that come from memory so that we don't load the value into a GPR,
13962         spill it to the stack and reload it into a FPR.
13963         (floatsi<mode>2_lfiwax): Ditto.
13964         (floatsi<mode>2_lfiwax_mem): Ditto.
13965         (floatsi<mode>2_lfiwax_mem2): Ditto.
13966         (lfiwzx): Ditto.
13967         (floatunssi<mode>2_lfiwzx): Ditto.
13968         (floatunssi<mode>2_lfiwzx_mem): Ditto.
13969         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
13970         (floatdidf2_mem): Ditto.
13971         (floatunsdidf2_fcfidu): Ditto.
13972         (floatunsdidf2_mem): Ditto.
13973         (floatunsdisf2): Ditto.
13974         (floatunsdisf2_fcfidus): Ditto.
13975         (floatunsdisf2_mem): Ditto.
13976         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
13977         Use FCFID on 32-bit hosts that support it.
13978         (floatsidf2_internal): Ditto.
13979         (floatunssisf2): Ditto.
13980         (floatunssidf2): Ditto.
13981         (floatunssidf2_internal): Ditto.
13982         (floatsisf2): Ditto.
13983         (floatdidf2): Ditto.
13984         (floatdidf2_fpr): Ditto.
13985         (floatunsdidf2): Ditto.
13986         (floatdisf2): Ditto.
13987         (floatdisf2_fcfids): Ditto.
13988         (floatdisf2_internal1): Ditto.
13989         (fixuns_truncsfsi2): Delete, merge into common pattern for both
13990         SF/DF.  Add power7 support.
13991         (fix_truncsfsi2): Ditto.
13992         (fixuns_truncdfsi2): Ditto.
13993         (fixuns_truncdfdi2): Ditto.
13994         (fix_truncdfsi2): Ditto.
13995         (fix_truncdfsi2_internal): Ditto.
13996         (fix_truncdfsi2_internal_gfxopt): Ditto.
13997         (fix_truncdfsi2_mfpgpr): Ditto.
13998         (fctiwz): Ditto.
13999         (btruncdf2): Ditto.
14000         (btruncdf2_fpr): Ditto.
14001         (btructsf2): Ditto.
14002         (ceildf2): Ditto.
14003         (ceildf2_fpr): Ditto.
14004         (ceilsf2): Ditto.
14005         (floordf2): Ditto.
14006         (floordf2_fpr): Ditto.
14007         (floorsf2): Ditto.
14008         (rounddf2): Ditto.
14009         (rounddf2_fpr): Ditto.
14010         (roundsf2): Ditto.
14011         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
14012         (fix_trunc<mode>di2): Ditto.
14013         (fixuns_trunc<mode>si2): Ditto.
14014         (fixuns_trunc<mode>di2): Ditto.
14015         (fctiwz_<mode>): Ditto.
14016         (btrunc<mode>2): Ditto.
14017         (btrunc<mode>2_fpr): Ditto.
14018         (ceil<mode>2): Ditto.
14019         (ceil<mode>2_fpr): Ditto.
14020         (floor<mode>2): Ditto.
14021         (float<mode>2_fpr): Ditto.
14022         (round<mode>2): Ditto.
14023         (round<mode>2_fpr): Ditto.
14024         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
14025         (fixuns_trunc<mode>si2_stfiwx): Ditto.
14026         (fix_truncdfsi2_internal): Ditto.
14027         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
14028         converted value on stack, loaded into GPR, and then stored into
14029         the final destination.
14030         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
14031         FCTIDZ.
14032         (lrint<mode>di2): New insn, provide the lrint builtin functions.
14033         (ftruncdf2): Delete, unused.
14034         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
14035
14036         * config/rs6000/vsx.md (toplevel): Update copyright year.
14037         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
14038         (VSr3): Ditto.
14039
14040 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
14041             Jeremie Salvucci  <jeremie.salvucci@free.fr>
14042
14043         * gengtype.c (output_type_enum): Test the right union member.
14044
14045 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
14046
14047         PR target/41484
14048         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
14049         operands for operand 1.
14050         (sse4_1_extendv4qiv4si2): Ditto.
14051         (sse4_1_extendv2qiv2di2): Ditto.
14052         (sse4_1_extendv4hiv4si2): Ditto.
14053         (sse4_1_extendv2hiv2di2): Ditto.
14054         (sse4_1_extendv2siv2di2): Ditto.
14055         (sse4_1_zero_extendv8qiv8hi2): Ditto.
14056         (sse4_1_zero_extendv4qiv4si2): Ditto.
14057         (sse4_1_zero_extendv2qiv2di2): Ditto.
14058         (sse4_1_zero_extendv4hiv4si2): Ditto.
14059         (sse4_1_zero_extendv2hiv2di2): Ditto.
14060         (sse4_1_zero_extendv2siv2di2): Ditto.
14061         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
14062         (*sse4_1_extendv4qiv4si2): Ditto.
14063         (*sse4_1_extendv2qiv2di2): Ditto.
14064         (*sse4_1_extendv4hiv4si2): Ditto.
14065         (*sse4_1_extendv2hiv2di2): Ditto.
14066         (*sse4_1_extendv2siv2di2): Ditto.
14067         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
14068         (*sse4_1_zero_extendv4qiv4si2): Ditto.
14069         (*sse4_1_zero_extendv2qiv2di2): Ditto.
14070         (*sse4_1_zero_extendv4hiv4si2): Ditto.
14071         (*sse4_1_zero_extendv2hiv2di2): Ditto.
14072         (*sse4_1_zero_extendv2siv2di2): Ditto.
14073
14074 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14075
14076         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
14077         (mips_function_arg): Delete.
14078         (mips_function_arg_boundary): Take a const_tree.
14079         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
14080         (mips_arg_info): Likewise.
14081         (mips_setup_incoming_varargs): Call mips_function_arg_advance
14082         instead of FUNCTION_ARG_ADVANCE.
14083         (mips_function_arg_advance): Adjust prototype.  Make static.
14084         (mips_function_arg): Likewise.
14085         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14086         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
14087
14088 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
14089
14090         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
14091         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
14092         (function_arg): Delete.
14093         (function_arg_boundary): Take a const_tree.
14094         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
14095         (rs6000_spe_function_arg): Likewise.
14096         (rs6000_parm_start): Likewise.
14097         (rs6000_arg_size): Likewise.
14098         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
14099         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
14100         (rs6000_mixed_function_arg): Likewise.
14101         (function_arg): Rename to...
14102         (rs6000_function_arg): ...this.
14103         (function_arg_advance): Rename to...
14104         (rs6000_function_arg_advance_1): ...this
14105         (rs6000_function_arg_advance): New function.  Call it.
14106         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
14107         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
14108         (rs6000_function_value): Likewise.
14109         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
14110
14111 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14112
14113         * config/arm/arm.md (enabled): Test the value of arch_enabled
14114         rather than just using it.
14115
14116 2010-08-27  Olivier Hainque  <hainque@adacore.com>
14117             Eric Botcazou  <ebotcazou@adacore.com>
14118
14119         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
14120         cover all the possible offsets from this base.
14121         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
14122
14123 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
14124
14125         PR tree-optimization/44485
14126         * calls.c (flags_from_decl_or_type): For const or pure
14127         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
14128         together with ECF_CONST resp. ECF_PURE.
14129         * builtins.c (expand_builtin): Use flags_from_decl_or_type
14130         instead of querying flags directly.
14131         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
14132         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
14133
14134 2010-08-26  Richard Guenther  <rguenther@suse.de>
14135
14136         PR tree-optimization/45255
14137         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
14138         and externals are also invariant.
14139
14140 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14141
14142         PR rtl-optimization/44858
14143         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
14144         newi2pat, make sure they don't affect newpat.
14145
14146         PR rtl-optimization/45400
14147         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
14148         SUBREG_REG if both modes are of MODE_INT class.
14149
14150 2010-08-25  Julian Brown  <julian@codesourcery.com>
14151
14152         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
14153         * config/arm/arm.md (generic_sched): No for Cortex-A5.
14154         (generic_vfp): Likewise.
14155         (cortex-a5.md): Include.
14156         * config/arm/cortex-a5.md: New.
14157
14158 2010-08-25  Richard Guenther  <rguenther@suse.de>
14159
14160         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
14161         * gimple.c (gimple_get_alias_set): Remove special handling
14162         for pointers.
14163
14164 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
14165
14166         PR middle-end/45355
14167         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
14168         dead_or_set_p when computing i0_feeds_i2_n.
14169
14170         * combine.c (find_split_point): Undo canonicalization of multiply-add
14171         to (minus x (mult)) when it seems likely that this will increase the
14172         chances of a split.
14173
14174 2010-08-25  Richard Guenther  <rguenther@suse.de>
14175
14176         PR lto/44562
14177         * lto-streamer.c (lto_record_common_node): Do not mess with
14178         TYPE_CANONICAL when not in lto.
14179         * gimple.c (gimple_register_type): Likewise.
14180
14181 2010-08-25  Richard Guenther  <rguenther@suse.de>
14182
14183         PR tree-optimization/45316
14184         * tree-ssa-pre.c (eliminate): Properly clean EH info.
14185
14186 2010-08-25  Richard Guenther  <rguenther@suse.de>
14187
14188         PR tree-optimization/45393
14189         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
14190         and clean EH info.  Avoid SSA update.
14191         (execute_cse_sincos): Cleanup the CFG if it has changed.
14192
14193 2010-08-25  Richard Guenther  <rguenther@suse.de>
14194
14195         PR middle-end/45379
14196         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
14197         TARGET_MEM_REF in alignment computation.
14198
14199 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
14200
14201         PR tree-optimization/45059
14202         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
14203         type conversions from newop{1,2}.  Assert t is a comparison and
14204         newop{1,2} after the stripping are gimple vals.
14205
14206 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
14207
14208         * config/arm/iterators.md (VU, SE, V_widen_l): New.
14209         (V_unpack, US): New.
14210         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
14211         (vec_unpack<US>_lo_<mode>): Likewise.
14212         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
14213         (neon_vec_unpack<US>_lo_<mode>): Likewise.
14214         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
14215         (vec_widen_<US>mult_hi_<mode>): Likewise.
14216         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
14217         (neon_vec_<US>mult_hi_<mode>"): Likewise.
14218         (neon_unpack<US>_<mode>): Widening move intermediate step for
14219         vectorizing without -mvectorize-with-neon-quad.
14220         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
14221         for vectorizing without -mvectorize-with-neon-quad.
14222         * config/arm/predicates.md (vect_par_constant_high): Check for
14223         high-half lanes of a vector.
14224         (vect_par_constant_low): Check for low-half lanes of a vector.
14225
14226 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14227
14228         * tree-if-conv.c (struct ifc_dr): New.
14229         (IFC_DR): New.
14230         (DR_WRITTEN_AT_LEAST_ONCE): New.
14231         (DR_RW_UNCONDITIONALLY): New.
14232         (memref_read_or_written_unconditionally): Use the cached values
14233         when possible.
14234         (write_memref_written_at_least_once): Same.
14235         (if_convertible_loop_p): Initialize and free DR->aux fields.
14236
14237 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14238
14239         * gimple.c (gimple_could_trap_p_1): Not static anymore.
14240         Pass an extra bool parameter include_mem.
14241         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
14242         (gimple_assign_rhs_could_trap_p): Same.
14243         * gimple.h (gimple_could_trap_p_1): Declared.
14244         * tree-data-ref.h (same_data_refs_base_objects): New.
14245         (same_data_refs): New.
14246         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
14247         (write_memrefs_written_at_least_once): New.
14248         (ifcvt_memrefs_wont_trap): New.
14249         (operations_could_trap): New.
14250         (ifcvt_could_trap_p): New.
14251         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
14252         Gets a vector of data refs.
14253         (if_convertible_stmt_p): Same.
14254         (if_convertible_loop_p_1): New.
14255         (if_convertible_loop_p): Call if_convertible_loop_p_1.
14256
14257 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
14258
14259         * common.opt (ftree-loop-if-convert-stores): New flag.
14260         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
14261         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
14262         the created statement before GSI.
14263         (if_convertible_phi_p): Allow virtual phi nodes when
14264         flag_loop_if_convert_stores is set.
14265         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
14266         Do not handle types that do not match is_gimple_reg_type.
14267         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
14268         when flag_loop_if_convert_stores is set, as LHS can contain
14269         memory refs.
14270         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
14271         to if_convertible_gimple_assign_stmt_p.
14272         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
14273         (replace_phi_with_cond_gimple_assign_stmt): Renamed
14274         predicate_scalar_phi.  Do not handle virtual phi nodes.
14275         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
14276         Call predicate_scalar_phi.
14277         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
14278         just after the labels for flag_loop_if_convert_stores, otherwise
14279         insert the predicate in the end of the BB.
14280         (predicate_mem_writes): New.
14281         (combine_blocks): Call predicate_all_scalar_phis.  When
14282         flag_loop_if_convert_stores is set, call predicate_mem_writes.
14283         (tree_if_conversion): Call mark_sym_for_renaming when
14284         flag_loop_if_convert_stores is set.
14285         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
14286         flag_loop_if_convert_stores is set.
14287
14288 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
14289
14290         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
14291         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
14292         (pa_function_value): Make static.
14293         (override_options): Rename to...
14294         (pa_option_override): ...this. Make static.
14295         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
14296         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
14297         TARGET_OPTION_OVERRIDE): Define.
14298         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
14299         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
14300         Remove.
14301         * config/pa/pa-protos.h (override_options): Remove.
14302
14303 2010-08-24  Richard Guenther  <rguenther@suse.de>
14304
14305         PR middle-end/45379
14306         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
14307         if addr->index is NULL or zero.
14308         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
14309         TARGET_MEM_REF more properly.
14310         (indirect_ref_may_alias_decl_p): Likewise.
14311         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
14312         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
14313
14314 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
14315
14316         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
14317         (m32c_override_options): Rename to...
14318         (m32c_option_override): ...this. Make static.
14319         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
14320         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
14321         Remove.
14322         * config/m32c/m32c-protos.h (m32c_override_options,
14323         m32c_function_value_regno_p): Remove.
14324
14325 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14326
14327         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
14328         Fix a typo in a previous commit.
14329
14330 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
14331
14332         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
14333         Pre-initialize innerloop_iters to one.
14334
14335 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
14336
14337         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
14338         existing static function global.
14339
14340         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
14341         is changed to global.
14342
14343         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
14344         may_be_nonaddressable_p on base, and don't collect this reference
14345         if the address of the base could not be taken.
14346
14347 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
14348
14349         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
14350         enable the compiler to autovectorize mathmetical functions for
14351         power7 using the Mathematical Acceleration Subsystem library.
14352
14353         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
14354         handle which vector math library we have.
14355         (rs6000_override_options): Add -mveclibabi=mass support.
14356         (rs6000_builtin_vectorized_libmass): New function to handle auto
14357         vectorizing math functions that are in the MASS library.
14358         (rs6000_builtin_vectorized_function): Call it.
14359
14360         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
14361         -mveclibabi=mass.
14362
14363 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14364
14365         PR boehm-gc/34544
14366         * gthr-posix.h (__gthread_active_init): Delete.
14367         (__gthread_active_p): Do activity check here.
14368         Don't include errno.h on hppa-hpux.  Update comment.
14369         * gthr-posix95.h (__gthread_active_init): Delete.
14370         (__gthread_active_p): Do activity check here.
14371         Don't include errno.h on hppa-hpux.  Update comment.
14372         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
14373         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
14374         add -lpthread when -mt or -pthread is specified.
14375         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
14376         (LINK_GCC_C_SEQUENCE_SPEC): Define.
14377         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
14378         (stublib.c, pthread_default_stacksize_np-stub.o,
14379         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
14380         $(T)libgcc_stub.a): Add methods.
14381         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
14382         (stublib.c, pthread_default_stacksize_np-stub.o,
14383         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
14384         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
14385         pthread_mutex_unlock): New stubs.
14386
14387 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
14388
14389         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
14390         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
14391         options.
14392         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
14393         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
14394         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
14395         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
14396         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
14397         "-l".
14398         * cppspec.c: Include opts.h.
14399         (lang_specific_driver): Use cl_decoded_option structures.
14400         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
14401         * doc/tm.texi: Regenerate.
14402         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
14403         (driver_handle_option): Allow driver options needing no special
14404         processing.
14405         (process_command): Decode options before call to
14406         lang_specific_driver.  Pass decoded options to
14407         lang_specific_driver.
14408         * gcc.h (lang_specific_driver): Update prototype.
14409         * gccspec.c: Include opts.h.
14410         (lang_specific_driver): Use cl_decoded_option structures.
14411         * opts-common.c (option_ok_for_language, generate_option,
14412         generate_option_input_file): New.
14413         (decode_cmdline_option): Use option_ok_for_language.
14414         (decode_cmdline_options_to_array): Use generate_option_input_file.
14415         (handle_generated_option): Use generate_option.
14416         * opts.h (generate_option, generate_option_input_file): Declare.
14417
14418 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
14419
14420         * config/mips/mips.c (mips_override_options): Rename to...
14421         (mips_option_override): ...this. Make static.
14422         (TARGET_OPTION_OVERRIDE): Define.
14423         (mips_in_small_data_p): Update comment.
14424         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
14425         (FIXED_REGISTERS): Update comment.
14426         * config/mips/mips-protos.h (mips_override_options): Remove.
14427
14428 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14429
14430         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
14431
14432 2010-08-21  Olivier Hainque  <hainque@adacore.com>
14433
14434         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
14435         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
14436
14437 2010-08-20  Jan Hubicka  <jh@suse.cz>
14438
14439         * tree-pass.h (pass_ipa_cdtor_merge): New function.
14440         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
14441         heap allocated.
14442         (record_cdtor_fn): Move to ipa.c; do not test for
14443         have_ctors_dtors.
14444         (build_cdtor): Move to ipa.c; add code avoiding construction
14445         when target have ctors/dtors and there is only one ctor/dtor at given
14446         priority.
14447         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
14448         sort; reverse order of constructors.
14449         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
14450         (cgraph_finalize_function): Do not call record_cdtor_fn.
14451         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
14452         (cgraph_build_static_cdtor): Move to ipa.c.
14453         * ipa.c: Include target.h and tree-iterator.h.
14454         (cgraph_build_static_cdtor, static_ctors, static_dtors,
14455         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
14456         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
14457         pass_ipa_cdtor_merge): New.
14458         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
14459         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
14460         bounds access.
14461
14462 2010-08-20  Jan Hubicka  <jh@suse.cz>
14463
14464         PR c++/45307
14465         PR c++/17736
14466         * cgraph.h (cgraph_only_called_directly_p,
14467         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
14468         static cdtors.
14469         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
14470         are not needed.
14471         (cgraph_finalize_function): Static cdtors are reachable.
14472         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
14473
14474 2010-08-20  Jan Hubicka  <jh@suse.cz>
14475
14476         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
14477         flag_wpa.
14478         * lto-streamer-out.c (lto_output): Likewise.
14479         * passes.c (ipa_write_optimization_summaries): Initialize statement
14480         uids.
14481
14482 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14483
14484         * tree.h (alias_diag_flags): New enum.
14485         (alias_pair): Add an 'emitted_diags' field.
14486         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
14487         (assemble_alias): Initialize emitted_diags of new pairs.
14488
14489 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
14490
14491         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14492         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14493         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14494         (STACK_CHECK_PROTECT): Define.
14495         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
14496         (output_probe_stack_range): Likewise.
14497         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
14498         builtin stack checking is enabled.
14499         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
14500         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14501         (probe_stack_range): New insn.
14502
14503 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
14504
14505         PR target/45336
14506         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
14507         short first.
14508
14509         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
14510         char first.
14511
14512 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14513
14514         PR target/45336
14515         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
14516         to cover zero extension into 64-bit register.
14517         (*sse2_pextrw): Likewise.
14518         (*sse4_1_pextrd_zext): New insn.
14519
14520 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14521
14522         revert r163410, partially revert r163267.
14523         * config/rs6000/darwin.h (LIB_SPEC): Remove.
14524         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
14525         Darwin versions.
14526
14527 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14528
14529         PR middle-end/44974
14530         * builtins.c (expand_builtin): Don't optimize away
14531         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
14532
14533 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
14534
14535         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
14536         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
14537         alternative 1 of operand 2.
14538
14539 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14540             Paolo Bonzini  <bonzini@gnu.org>
14541
14542         * simplify-rtx.c (simplify_unary_operation_1): Optimize
14543         (sign_extend (zero_extend (...)) and
14544         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
14545
14546 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14547
14548         PR rtl-optimization/45353
14549         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
14550         after bb_note is a BARRIER.
14551
14552 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
14553
14554         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
14555         linking libgcc.a.
14556
14557 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
14558             Michael Matz  <matz@suse.de>
14559
14560         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
14561
14562 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14563
14564         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
14565         (ggc_mark_roots): ...here.
14566
14567 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
14568
14569         * vec.h (FOR_EACH_VEC_ELT): Define.
14570         * c-decl.c: Use it.
14571         * cfgloop.c: Likewise.
14572         * cfgloopmanip.c: Likewise.
14573         * cgraph.c: Likewise.
14574         * cgraphunit.c: Likewise.
14575         * combine.c: Likewise.
14576         * config/bfin/bfin.c: Likewise.
14577         * config/mips/mips.c: Likewise.
14578         * config/rs6000/rs6000.c: Likewise.
14579         * dbxout.c: Likewise.
14580         * df-scan.c: Likewise.
14581         * dominance.c: Likewise.
14582         * dse.c: Likewise.
14583         * dwarf2out.c: Likewise.
14584         * except.c: Likewise.
14585         * expr.c: Likewise.
14586         * function.c: Likewise.
14587         * gcse.c: Likewise.
14588         * genattr.c: Likewise.
14589         * ggc-common.c: Likewise.
14590         * gimplify.c: Likewise.
14591         * graphite-blocking.c: Likewise.
14592         * graphite-clast-to-gimple.c: Likewise.
14593         * graphite-dependences.c: Likewise.
14594         * graphite-interchange.c: Likewise.
14595         * graphite-poly.c: Likewise.
14596         * graphite-scop-detection.c: Likewise.
14597         * graphite-sese-to-poly.c: Likewise.
14598         * graphite.c: Likewise.
14599         * haifa-sched.c: Likewise.
14600         * ifcvt.c: Likewise.
14601         * implicit-zee.c: Likewise.
14602         * ipa-prop.c: Likewise.
14603         * ipa-struct-reorg.c: Likewise.
14604         * ipa.c: Likewise.
14605         * ira-build.c: Likewise.
14606         * ira-color.c: Likewise.
14607         * ira-emit.c: Likewise.
14608         * lambda-code.c: Likewise.
14609         * loop-invariant.c: Likewise.
14610         * loop-unroll.c: Likewise.
14611         * lower-subreg.c: Likewise.
14612         * lto-cgraph.c: Likewise.
14613         * lto-opts.c: Likewise.
14614         * lto-streamer-in.c: Likewise.
14615         * lto-streamer-out.c: Likewise.
14616         * lto-streamer.c: Likewise.
14617         * lto-symtab.c: Likewise.
14618         * matrix-reorg.c: Likewise.
14619         * opts.c: Likewise.
14620         * predict.c: Likewise.
14621         * print-tree.c: Likewise.
14622         * sdbout.c: Likewise.
14623         * sel-sched-dump.c: Likewise.
14624         * sel-sched-ir.c: Likewise.
14625         * sel-sched.c: Likewise.
14626         * sese.c: Likewise.
14627         * stor-layout.c: Likewise.
14628         * tree-cfg.c: Likewise.
14629         * tree-cfgcleanup.c: Likewise.
14630         * tree-chrec.c: Likewise.
14631         * tree-data-ref.c: Likewise.
14632         * tree-emutls.c: Likewise.
14633         * tree-inline.c: Likewise.
14634         * tree-into-ssa.c: Likewise.
14635         * tree-loop-distribution.c: Likewise.
14636         * tree-loop-linear.c: Likewise.
14637         * tree-mudflap.c: Likewise.
14638         * tree-outof-ssa.c: Likewise.
14639         * tree-parloops.c: Likewise.
14640         * tree-predcom.c: Likewise.
14641         * tree-pretty-print.c: Likewise.
14642         * tree-scalar-evolution.c: Likewise.
14643         * tree-ssa-live.c: Likewise.
14644         * tree-ssa-loop-im.c: Likewise.
14645         * tree-ssa-loop-ivcanon.c: Likewise.
14646         * tree-ssa-loop-ivopts.c: Likewise.
14647         * tree-ssa-loop-manip.c: Likewise.
14648         * tree-ssa-loop-niter.c: Likewise.
14649         * tree-ssa-loop-prefetch.c: Likewise.
14650         * tree-ssa-phiprop.c: Likewise.
14651         * tree-ssa-pre.c: Likewise.
14652         * tree-ssa-reassoc.c: Likewise.
14653         * tree-ssa-sccvn.c: Likewise.
14654         * tree-ssa-structalias.c: Likewise.
14655         * tree-ssa.c: Likewise.
14656         * tree-vect-data-refs.c: Likewise.
14657         * tree-vect-loop-manip.c: Likewise.
14658         * tree-vect-loop.c: Likewise.
14659         * tree-vect-patterns.c: Likewise.
14660         * tree-vect-slp.c: Likewise.
14661         * tree-vect-stmts.c: Likewise.
14662         * tree-vrp.c: Likewise.
14663         * tree.c: Likewise.
14664         * value-prof.c: Likewise.
14665         * var-tracking.c: Likewise.
14666         * varasm.c: Likewise.
14667         * vmsdbgout.c: Likewise.
14668
14669 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
14670             Richard Guenther  <richard.guenther@gmail.com>
14671
14672         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
14673         copy the src value and return a copy.
14674         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
14675         (C++ Volatiles): Adjust to describe C++ semantics only.
14676
14677 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
14678
14679         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
14680         be zero or nonzero.
14681         * doc/tm.texi: Regenerate.
14682         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
14683         * df-scan.c (df_get_exit_block_use_set), reginfo.c
14684         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
14685         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
14686         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
14687         to 1.
14688
14689 2010-08-20  Olivier Hainque  <hainque@adacore.com>
14690
14691         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
14692         an extra nop past a sibling call at the very end.
14693
14694 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14695
14696         PR bootstrap/45350
14697         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
14698         a comment.
14699
14700 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14701
14702         * target.def (function_arg, function_incoming_arg): Remove const
14703         qualifier on CUMULATIVE_ARGS parameter.
14704         * targhooks.h (default_function_arg, default_function_incoming_arg):
14705         Likewise.
14706         * targhooks.c (default_function_arg, default_function_incoming_arg):
14707         Likewise.
14708         * config/i386/i386.c (ix86_function_arg): Likewise.
14709
14710 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
14711
14712         PR target/45336
14713         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
14714         SIGN_EXTENDs or ZERO_EXTENDs.
14715
14716 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
14717
14718         PR target/42172
14719         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
14720         Take its cost into account if nonnull.
14721         (insn_a_feeds_b): New static function.
14722         (combine_instructions): Look for four-insn combinations.
14723         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
14724         them into account when computing all_adjacent and looking for other
14725         uses.
14726         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
14727         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
14728         (try_combine): New arg I0.  Handle four-insn combinations.
14729         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
14730         like ELIM_I1.
14731
14732 2010-08-19  Jason Merrill  <jason@redhat.com>
14733
14734         PR c++/45307
14735         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
14736         if ctor is empty.
14737         (gimplify_modify_expr_rhs): Adjust.
14738
14739 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
14740
14741         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
14742         bitmap_bit_p.
14743         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
14744         * dominance.c (iterate_fix_dominators): Likewise.
14745         * dse.c (set_usage_bits): Likewise.
14746         (set_position_unneeded, record_store): Likewise.
14747         * gimple-fold.c (get_maxval_strlen): Likewise.
14748         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
14749         * ipa-inline.c (update_caller_keys): Likewise.
14750         * ipa-split.c (verify_non_ssa_vars): Likewise.
14751         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
14752         (close_type_exposed_parameter, close_type_full_escape): Likewise.
14753         (close_addressof_down): Likewise.
14754         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
14755         (setup_allocno_left_conflicts_size): Likewise.
14756         (ira_reassign_conflict_allocnos): Likewise.
14757         (ira_reassign_pseudos): Likewise.
14758         * ira-emit.c (change_loop): Likewise.
14759         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
14760         * lto-streamer-out.c (write_symbol): Likewise.
14761         * predict.c (expr_expected_value_1): Likewise.
14762         * regstat.c (regstat_bb_compute_ri): Likewise.
14763         * sel-sched.c (create_block_for_bookkeeping): Likewise.
14764         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
14765         * stmt.c (expand_case): Likewise.
14766         * tree-eh.c (emit_eh_dispatch): Likewise.
14767         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
14768         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
14769         Likewise.
14770         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
14771         (rdg_build_components): Likewise.
14772         * tree-object-size.c (collect_object_sizes_for): Likewise.
14773         * tree-sra.c (convert_callers): Likewise.
14774         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
14775         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
14776         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
14777
14778 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14779
14780         * config/i386/i386.md (*lea_1): Use P mode iterator.
14781         (lea add splitter): Also handle DImode operands.
14782         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
14783         predicate.  Do not use ix86_lea_for_add_ok.
14784         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
14785         (lea ashift splitter): Also handle DImode operands.
14786         (DImode lea ashift splitter): Remove splitter.
14787
14788 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
14789
14790         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
14791         ix86_binary_operator_ok.
14792
14793 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
14794
14795         PR rtl-optimization/44691
14796         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
14797         is not a register.
14798
14799 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14800
14801         PR target/45070
14802         * config/arm/arm.c (arm_output_epilogue): Ensure that return
14803          value of size 1-3 is handled correctly.
14804
14805 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
14806
14807         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
14808         type for the conditional has wide enough range.
14809
14810 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14811
14812         PR target/45327
14813         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
14814         ix86_binary_operator_ok.
14815
14816 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
14817
14818         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
14819         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
14820         code to output insn mnemonic.  Fix comment.
14821         (*addsi_1_zext): Add r-r-0 alternative 1.
14822         <TYPE_LEA>: Split insn to lea.
14823         <default>: Handle alternative 1.
14824         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
14825         multi-level if_then_else RTX to set "type" attribute.
14826         <default>: Handle alternative 2.
14827         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
14828         Use cond RTX instead of multi-level if_then_else RTX to set
14829         "type" attribute.
14830         <default>: Handle alternatives 2 and 4.
14831         (lea splitters): Update calls to ix86_lea_for_add_ok.
14832
14833         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
14834         argument.
14835         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
14836
14837 2010-08-18  Richard Guenther  <rguenther@suse.de>
14838
14839         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
14840         use operand helpers.
14841
14842 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
14843
14844         PR middle-end/45292
14845         * optabs.c (expand_bool_compare_and_swap): Expand pending
14846         pops before trying the optab.
14847
14848 2010-08-18  Yao Qi  <yao@codesourcery.com>
14849
14850         PR target/45094
14851         * config/arm/arm.c (output_move_double): Fix typo generating
14852         instructions ('ldr'->'str').
14853
14854 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
14855
14856         PR rtl-optimization/42575
14857         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
14858         live ranges.
14859
14860 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14861
14862         * config/arm/arm-protos.h (arm_expand_sync): New.
14863         (arm_output_memory_barrier, arm_output_sync_insn): New.
14864         (arm_sync_loop_insns): New.
14865         * config/arm/arm.c (FL_ARCH7): New.
14866         (FL_FOR_ARCH7): Include FL_ARCH7.
14867         (arm_arch7): New.
14868         (arm_print_operand): Support %C markup.
14869         (arm_legitimize_sync_memory): New.
14870         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
14871         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
14872         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
14873         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
14874         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
14875         (arm_process_output_sync_insn, arm_output_sync_insn): New.
14876         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
14877         * config/arm/arm.h (struct arm_sync_generator): New.
14878         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
14879         (TARGET_HAVE_MEMORY_BARRIER): New.
14880         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
14881         * config/arm/arm.md: Include sync.md.
14882         (UNSPEC_MEMORY_BARRIER): New.
14883         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
14884         (VUNSPEC_SYNC_OP):New.
14885         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
14886         (sync_result, sync_memory, sync_required_value): New attributes.
14887         (sync_new_value, sync_t1, sync_t2): Likewise.
14888         (sync_release_barrier, sync_op): Likewise.
14889         (length): Add logic to length attribute defintion to call
14890         arm_sync_loop_insns when appropriate.
14891         * config/arm/sync.md: New file.
14892
14893 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14894
14895         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
14896         ENABLE_TREE_CHECKING.
14897         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
14898         and GCC >= 4.3.
14899
14900 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
14901
14902         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
14903         or optimizing for size, always avoid lea if possible.
14904
14905         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
14906
14907 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
14908
14909         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
14910         Dunmmy function with NULL return unless the target is
14911         OSX >= 10.6 (Darwin10).
14912
14913 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
14914
14915         * gcc.c (spec_function): Add remove-outfile.
14916         (remove_outfile_spec_function): New function.
14917         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
14918         * invoke.texi (replace-outfile): Document.
14919
14920 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
14921
14922         PR target/45296
14923         * reginfo.c (globalize_reg): Reject stack registers.
14924
14925 2010-08-17  Richard Guenther  <rguenther@suse.de>
14926
14927         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
14928         list of conditional equivalences.
14929         (free_all_edge_infos): Adjust.
14930         (record_equivalences_from_incoming_edge): Likewise.
14931         (record_cond): Likewise.
14932         (build_and_record_new_cond): Likewise.
14933         (record_conditions): Likewise.
14934         (dom_opt_leave_block): Likewise.
14935
14936 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
14937
14938         * doc/invoke.texi (ms-extension): Add documentation.
14939
14940 2010-08-17  Richard Guenther  <rguenther@suse.de>
14941
14942         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
14943
14944 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
14945
14946         PR c/40563
14947         * c-decl.c (diagnose_uninitialized_cst_member): New function.
14948         (finish_decl): Use it to issue a -Wc++-compat warning about
14949         uninitialized const field in struct or union.
14950
14951         (finish_struct): Use strip_array_types.
14952
14953 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
14954
14955         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
14956         functions.
14957         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
14958         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
14959         call block_nreverse here.
14960         (blocks_nreverse): Rename decl temporary to block.
14961
14962 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
14963
14964         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
14965         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
14966         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
14967         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
14968         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
14969         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
14970         thumb2_iorsi3): Delete.
14971         (orsi_notsi_si): No longer a named pattern.
14972         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
14973         * config/arm/predicates.md (shift_amount_operand): New.
14974         (mult_operator): New.
14975         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
14976         attr enabled): New.
14977         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
14978         arch matches t2.
14979         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
14980         (not_shiftsi_compare0): Likewise, renamed from
14981         arm_notsi_shiftsi_compare0.
14982         (not_shiftsi_compare0_scratch): Likweise, renamed from
14983         arm_notsi_shiftsi_compare0_scratch.
14984         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
14985         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
14986         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
14987         so that the register alternative is disabled when the shift_operator
14988         is MULT.  Use "M" as the constraint for constants.
14989         (arith_shiftsi splitter): Enable for TARGET_32BIT.
14990         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
14991         constraint for constants.
14992         (arith_shiftsi_compare0_scratch): Likewise.
14993         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
14994         Handle Thumb2 alternative.
14995
14996 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
14997
14998         * doc/options.texi (NoDriverArg): Document.
14999         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
15000         -MDX and -MMDX.
15001         * opt-functions.awk (switch_flags): Handle NoDriverArg.
15002         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
15003         marking for CL_NO_DRIVER_ARG options when in the driver.
15004         * opts.h (CL_NO_DRIVER_ARG): Define.
15005         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15006         CL_COMMON): Update values.
15007
15008 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
15009
15010         * common.opt: Add driver options.
15011         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
15012         * doc/options.texi (Driver, RejectDriver): Document.
15013         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
15014         print_prog_name, print_multi_directory, print_sysroot,
15015         print_multi_os_directory, print_multi_lib,
15016         print_sysroot_headers_suffix, report_times, combine_flag,
15017         use_pipes, wrapper_string): Remove.
15018         (save_switch, driver_unknown_option_callback,
15019         driver_wrong_lang_callback, driver_post_handling_callback,
15020         driver_handle_option): New.
15021         (spec_lang, last_language_n_infiles): Make file-scope static
15022         instead of local to process_command.
15023         (process_command): Use decode_cmdline_options_to_array and
15024         read_cmdline_option for option processing.  Compute have_c in
15025         prescan of decoded options.
15026         * opt-functions.awk (switch_flags): Handle Driver and
15027         RejectDriver.
15028         (var_type, var_type_struct): Handle Separate options as generating
15029         const char * variables.
15030         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
15031         CL_TARGET to be passed by caller if required.
15032         (decode_cmdline_options_to_array): Update comment.
15033         * opts.c (complain_wrong_lang): Handle options only valid for the
15034         driver.
15035         (decode_options): Update call to decode_cmdline_options_to_array.
15036         (print_filtered_help): Ignore driver-only options.
15037         (print_specific_help): Ignore CL_DRIVER.
15038         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
15039         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
15040         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
15041         Update values.
15042
15043 2010-08-16  Richard Guenther  <rguenther@suse.de>
15044
15045         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15046         TARGET_MEM_REF a bit.
15047         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
15048         (create_mem_ref_raw): Always create TMR_OFFSET, store the
15049         alias pointer type via it.
15050         (copy_mem_ref_info): Adjust.
15051         (maybe_fold_tmr): Likewise.
15052         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
15053         (reference_alias_ptr_type): Likewise.
15054         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
15055         adjust documentation of TMR_OFFSET operand.
15056         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
15057         use the alias pointer type.
15058         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
15059         initialize mem attrs but the TMR itself.
15060         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
15061         similar to MEM_REF.
15062         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
15063         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
15064         (unshare_and_remove_ssa_names): Likewise.
15065         (copy_ref_info): Adjust.
15066         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
15067         TARGET_MEM_REF case.
15068         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
15069         at TMR_ORIGINAL.
15070         * tree.h (TMR_ORIGINAL): Remove.
15071         * gimple.c (get_base_address): For TARGET_MEM_REF with a
15072         symbol return that.
15073         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
15074         with a symbol.
15075         (get_addr_base_and_unit_offset): Likewise.
15076         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
15077         TARGET_MEM_REFs.
15078         (indirect_ref_may_alias_decl_p): Likewise.
15079         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
15080
15081 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
15082
15083         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
15084         with GCC version 4.6, the default setting (when not optimizing
15085         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
15086         been changed to -fomit-frame-pointer.
15087
15088 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
15089
15090         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
15091         Darwin10.  Do not link libgcc.a for Darwin >= 9.
15092
15093 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
15094
15095         * doc/invoke.texi (Warning Options): Fix terminology and markup
15096         in the description of how unknown warning options are handled.
15097
15098 2010-08-15  Ira Rosen  <irar@il.ibm.com>
15099
15100         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
15101         in basic blocks.
15102         (vect_supportable_dr_alignment): Check alignment for basic blocks.
15103         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
15104         data references.
15105         (vect_bb_vectorization_profitable_p): New function.
15106         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
15107         check if it's worthwhile to vectorize the basic block.
15108
15109 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
15110
15111         * reload.h (register_move_cost, memory_move_secondary_cost,
15112         secondary_reload_class): Adjust prototype.
15113         * rtl.h (reg_class_subset_p): Adjust prototype.
15114         * reload.c (secondary_reload_class): Change arguments type from
15115         enum reg_class to reg_class_t. Change result type to reg_class_t.
15116         * reginfo.c (register_move_cost, reg_class_subset_p): Change
15117         arguments type from enum reg_class to reg_class_t.
15118         (memory_move_secondary_cost): Change arguments type from
15119         enum reg_class to reg_class_t. Change type of saved_flags to
15120         reg_class_t.
15121
15122         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
15123         Remove macros.
15124         (mips_cost): Remove.
15125         (struct mips_rtx_cost_data): Moved to mips.c.
15126         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
15127         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
15128         (mips_cost): Make static.
15129         (mips_canonicalize_move_class): Change argument type to reg_class_t.
15130         Change result type to reg_class_t.
15131         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
15132         type from enum reg_class to reg_class_t.
15133         (mips_register_move_cost): Make static. Change arguments
15134         type from enum reg_class to reg_class_t.
15135         (mips_memory_move_cost): New function.
15136         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15137
15138 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
15139
15140         PR rtl-optimization/43358
15141         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
15142         of a single hard register, using simplify_subreg_regno to decide
15143         what that register should be.
15144
15145 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
15146
15147         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
15148         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
15149         (loongson_pmull<V_suffix>): Rename to...
15150         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
15151
15152 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
15153
15154         * configure.ac: Enable -fomit-frame-pointer on darwin
15155         which support dwarf2.
15156         * config/i386/i386.c (override_options): Same.
15157
15158 2010-08-13  Jie Zhang  <jie@codesourcery.com>
15159
15160         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
15161
15162 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
15163
15164         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
15165         -MMD.
15166
15167 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
15168
15169         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
15170         up dot_prod pattern searching if a stmt is outside the loop.
15171
15172 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
15173             Uros Bizjak  <ubizjak@gmail.com>
15174
15175         * config.gcc: Handle --enable-frame-pointer.
15176
15177         * configure.ac: Add --enable-frame-pointer.
15178         * configure: Regenerated.
15179
15180         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
15181         (override_options): If not configured with --enable-frame-pointer,
15182         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
15183         optimizing for size), -fasynchronous-unwind-tables and
15184         -maccumulate-outgoing-args by default.
15185
15186 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15187
15188         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
15189
15190         PR middle-end/45262
15191         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
15192         -a overflows.  Normalize the range.
15193
15194 2010-08-12  Richard Guenther  <rguenther@suse.de>
15195
15196         PR tree-optimization/45232
15197         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
15198         for types with undefined overflow.
15199         (reassociate_bb): Allow re-associating of bit and min/max
15200         operations for types with undefined overflow.
15201         * tree-ssa-forwprop.c (associate_plusminus): New function.
15202         (tree_ssa_forward_propagate_single_use_vars): Call it.
15203
15204 2010-08-12  Richard Guenther  <rguenther@suse.de>
15205
15206         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
15207         * tree-ssa-alias.c (get_ptr_info): Move ...
15208         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
15209         align and misalign fields conservatively.
15210         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
15211         derive alignment information.
15212         (evaluate_stmt): Derive alignment information from memory
15213         allocation functions.
15214         * tree.h (get_pointer_alignment): Make unsigned.
15215         * builtins.c (get_object_alignment): Use alignment information we
15216         have computed for pointers.
15217         (get_pointer_alignment): Likewise.  Make conservative, return
15218         and unsigned value.
15219         (expand_builtin_strlen): Adjust.
15220         (expand_builtin_memcmp): Likewise.
15221         (expand_builtin_strcmp): Likewise.
15222         (expand_builtin_strncmp): Likewise.
15223         (get_builtin_sync_mem): Use at least mode alignment.
15224         (fold_builtin_memset): Adjust.
15225         (fold_builtin_memory_op): Likewise.
15226         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
15227         information also dump pointer alignment knowledge.
15228         (dump_gimple_stmt): Likewise.
15229
15230 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
15231
15232         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
15233         (EMPTY_FIELD_BOUNDARY): Remove.
15234         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
15235
15236 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
15237
15238         PR debug/45259
15239         * caller-save.c (save_call_clobbered_regs): Only swap notes with
15240         DEBUG_INSNs if n_regs_saved.
15241
15242 2010-08-12  Wei Guozhi  <carrot@google.com>
15243
15244         PR target/44999
15245         * config/arm/arm.md (andsi3): Change to zero extension if possible.
15246         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
15247
15248 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
15249
15250         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
15251
15252         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
15253
15254 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15255
15256         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
15257         the case removed in the previous patch, when the only phi argument
15258         is defined in the same loop as the phi node itself.  Handle it
15259         separately from the invariant case by both propagating it outside
15260         the region and replacing the phi node with an assign.
15261
15262 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15263
15264         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
15265         constant phi nodes with one argument are is_gimple_min_invariant
15266         and SSA_NAME_IS_DEFAULT_DEF.
15267
15268 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15269
15270         * graphite-cloog-util.c (oppose_constraint):
15271         Extend loop counter's value range (CLOOG_ORG).
15272         (cloog_matrix_to_ppl_constraint): Same.
15273         (new_Constraint_System_from_Cloog_matrix): Same.
15274         * graphite-cloog-compat.h (matrix_num_type): New.
15275
15276 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15277
15278         * graphite.c (graphite_initialize): Do not initialize
15279         CLooG and initialize the Parma Polyhedra Library
15280         manually when using CLOOG_ORG.
15281         (graphite_finalize): Do not finalize CLooG and finalize
15282         the Parma Polyhedra Library manually when using CLOOG_ORG.
15283         * graphite-cloog-compat.h (cloog_initialize): Hide function
15284         when using CLOOG_ORG.
15285         (cloog_finalize): Same.
15286
15287 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15288
15289         * graphite-clast-to-gimple.c (free_scattering): Change
15290         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
15291         (CLOOG_ORG).
15292         (build_cloog_prog): Same.
15293         * graphite-cloog-compat.h (cloog_domain): Removed.
15294         (cloog_scattering): New.
15295         (cloog_set_domain): Removed.
15296         (cloog_set_scattering): New.
15297         (cloog_next_domain): Removed.
15298         (cloog_next_scattering): New.
15299         (cloog_set_next_domain): Removed.
15300         (cloog_set_next_scattering): New.
15301         (CloogScatteringList): New.
15302         (CloogScattering): New.
15303         (cloog_scattering_free): New.
15304         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
15305         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
15306         New.
15307
15308 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15309
15310         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
15311         CloogState.
15312         (set_cloog_options): Same.
15313         (print_clast_stmt): Same.
15314         (scop_to_clast): Same.
15315         (print_generated_program): Same.
15316         (gloog): Same.
15317         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
15318         (scop_to_clast): Extend with CloogState.
15319         * graphite-cloog-util.c: Include graphite-cloog-compat.h
15320         (new_Cloog_Domain_from_ppl_Polyhedron):
15321         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
15322         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
15323         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15324         * graphite-cloog-util.h (build_cloog_prog): Same.
15325         * graphite-cloog-copat.h (build_cloog_prog): New.
15326         (CloogState): New.
15327         (cloog_state_malloc): New.
15328         (cloog_state_free): New.
15329         (cloog_loop_malloc): New.
15330         (cloog_options_malloc): New.
15331         (cloog_statement_alloc): New.
15332         (cloog_domain_from_cloog_matrix): New.
15333         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
15334         (new_Cloog_Domain_from_ppl_Polyhedron): New.
15335
15336 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15337
15338         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
15339         type of NAME now depends on used CLooG version.
15340         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
15341         (gcc_type_for_clast_expr): Same.
15342         (print_clast_stmt): Replace pprint with clast_pprint.
15343         * graphite-cloog-compat.h: Provide compatibility macros for
15344         CLooG Legacy.
15345         (clast_name_p): New.
15346         (clast_expr_term): New.
15347         (clast_expr_red): New.
15348         (clast_expr_bin): New.
15349         (clast_pprint): New.
15350
15351 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15352
15353         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
15354         compatible to newer CLooG releases (CLOOG_ORG).
15355         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
15356         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
15357         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
15358         (build_cloog_prog) : New.
15359         (cloog_program_extract_scalars): New.
15360         (cloog_program_scatter): New.
15361
15362 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15363
15364         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
15365         conditionally (CLOOG_ORG).
15366         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
15367         (cloog_statement_usr): New.
15368         (cloog_domain): Same.
15369         (cloog_set_domain): Same.
15370         (cloog_next_domain): Same.
15371         (cloog_set_next_domain): Same.
15372         (cloog_program_nb_scattdims): Same.
15373         (cloog_program_set_nb_scattdims): Same.
15374         (cloog_program_names): Same.
15375         (cloog_program_set_names): Same.
15376         (cloog_program_set_context): Same.
15377         (cloog_program_set_loop): Same.
15378         (cloog_program_blocklist): Same.
15379         (cloog_program_set_blocklist): Same.
15380         (cloog_program_scaldims): Same.
15381         (cloog_program_set_scaldims): Same.
15382         (cloog_names_nb_parameters): Same.
15383         (cloog_names_set_nb_parameters): Same.
15384         (cloog_names_parameters): Same.
15385         (cloog_names_set_parameters): Same.
15386         (cloog_names_set_nb_iterators): Same.
15387         (cloog_names_set_iterators): Same.
15388         (cloog_names_set_nb_scattering): Same.
15389         (cloog_names_set_scattering): Same.
15390         (cloog_statement_set_usr): Same.
15391         (cloog_loop_set_next): Same.
15392         (cloog_loop_set_domain): Same.
15393         (cloog_loop_set_block): Same.
15394         (cloog_block_list_next): Same.
15395         (cloog_block_list_set_next):
15396         (cloog_block_list_set_block): Same.
15397
15398 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15399
15400         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
15401         a bool.
15402         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
15403         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
15404         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
15405         when something has been changed.
15406         (rewrite_commutative_reductions_out_of_ssa): Same.
15407
15408 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15409
15410         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
15411         handle the case when def is in the sese region.
15412         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
15413         for invariant expressions.
15414         (rewrite_cross_bb_phi_deps): Removed.
15415         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
15416         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
15417         rewrite_cross_bb_phi_deps.
15418
15419 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15420
15421         * graphite-sese-to-poly.c
15422         (rewrite_commutative_reductions_out_of_ssa_loop): Call
15423         scev_analyzable_p only on is_gimple_reg
15424
15425 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15426
15427         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
15428         (rewrite_close_phi_out_of_ssa): Propagate constant values or
15429         parametric expressions outside the scop region.
15430         (rewrite_cross_bb_scalar_deps): Same.
15431         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
15432
15433 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15434
15435         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
15436         SSA_NAME_DEF_STMT only on SSA_NAMEs.
15437
15438 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15439
15440         * tree-scalar-evolution.c (instantiate_scev_name): Do not
15441         instantiate default definitions.
15442
15443 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
15444             Sebastian Pop  <sebastian.pop@amd.com>
15445
15446         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
15447         (loop_exits_from_bb_p): New.
15448         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
15449         (loop_exits_from_bb_p): Declared.
15450         * graphite-scop-detection.c (scopdet_basic_block_info): Call
15451         loop_exits_to_bb_p.
15452
15453 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15454
15455         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
15456         extra parameter for the region.  Call scev_analyzable_p.
15457         (rewrite_reductions_out_of_ssa): Update call to
15458         rewrite_close_phi_out_of_ssa.
15459         (rewrite_cross_bb_phi_deps): Same.
15460         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
15461         parameter for the region.  Call scev_analyzable_p.
15462         (rewrite_commutative_reductions_out_of_ssa): Update call to
15463         rewrite_commutative_reductions_out_of_ssa_loop.
15464
15465 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15466
15467         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
15468
15469 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15470
15471         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
15472         SSA scalar phi nodes that can be scev_analyzable_p.
15473
15474 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15475
15476         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
15477         handle SSA_NAME_IS_DEFAULT_DEF.
15478
15479 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15480
15481         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
15482
15483 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15484
15485         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
15486         case non close-phi nodes with one argument.
15487
15488 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15489
15490         * sese.h (scev_analyzable_p): Scevs could be expressions without
15491         chrecs and still be scev_analyzable_p.
15492
15493 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15494
15495         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
15496
15497 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15498
15499         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
15500         * cfgloop.h (struct loop): Remove single_iv field.
15501         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
15502         (scop_canonicalize_loops): Removed.
15503         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
15504         over all the loop phi nodes in loop->header.
15505         (build_poly_scop): Remove use of scop_canonicalize_loops.
15506
15507 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15508
15509         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
15510         handle GIMPLE_CALL.
15511
15512 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15513
15514         * tree-chrec.c (chrec_apply): Should only apply to the specified
15515         variable.  Also handle multivariate chains of recurrences that
15516         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
15517
15518 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15519
15520         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
15521         (debug_clast_name_indexes_1): Removed.
15522         (debug_clast_name_indexes): Removed.
15523         (pbb_to_depth_to_oldiv): Removed.
15524         (build_iv_mapping): Replace the use of rename_map with iv_map.
15525         (translate_clast_user): Remove uses of rename_map.  Allocate and
15526         free iv_map.
15527         (translate_clast_for_loop): Remove uses of rename_map.
15528         (translate_clast_for): Same.
15529         (translate_clast_guard): Same.
15530         (translate_clast): Same.
15531         (gloog): Same.
15532         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
15533         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
15534         * sese.c (set_rename): Now static.
15535         (rename_variables_in_stmt): Removed.
15536         (rename_uses): New.
15537         (is_parameter): Removed.
15538         (is_iv): Removed.
15539         (expand_scalar_variables_call): Removed.
15540         (expand_scalar_variables_ssa_name): Removed.
15541         (expand_scalar_variables_expr): Removed.
15542         (expand_scalar_variables_stmt): Removed.
15543         (expand_scalar_variables): Removed.
15544         (rename_variables): Removed.
15545         (remove_condition): Removed.
15546         (get_true_edge_from_guard_bb): Removed.
15547         (get_false_edge_from_guard_bb): Removed.
15548         (struct igp): Removed.
15549         (default_before_guard): Removed.
15550         (convert_for_phi_arg): Removed.
15551         (add_guard_exit_phis): Removed.
15552         (insert_guard_phis): Removed.
15553         (graphite_copy_stmts_from_block): Now also uses iv_map and a
15554         region.  Do not copy conditions.  Do not copy induction variables.
15555         Call rename_uses.
15556         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
15557         the translated statement.  Use the iv_map for the induction
15558         variable renaming.
15559         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15560         (set_rename): Removed declaration.
15561         (scev_analyzable_p): ...here.
15562         * tree-chrec.c (chrec_apply_map): New.
15563         * tree-chrec.h (chrec_apply_map): Declared.
15564
15565 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15566
15567         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
15568         insert_loop_close_phis.
15569         * sese.c (name_defined_in_loop_p): Removed.
15570         (expr_defined_in_loop_p): Removed.
15571         (alive_after_loop): Removed.
15572         (close_phi_not_yet_inserted_p): Removed.
15573         (struct alep): Removed.
15574         (add_loop_exit_phis): Removed.
15575         (insert_loop_close_phis): Removed.
15576
15577 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15578
15579         * graphite-cloog-util.c
15580         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
15581         * graphite-poly.c
15582         (psct_scattering_dim_for_loop_depth): Same.
15583
15584 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15585
15586         * graphite-cloog-util.h: Added cloog.h.
15587         * graphite-blocking.c: Removed cloog.h.
15588         * graphite-dependences.c: Same.
15589         * graphite-interchange.c: Same.
15590         * graphite-poly.c: Same.
15591         * graphite-ppl.c: Same.
15592         * graphite-scop-detection.c: Same.
15593         * graphite-sese-to-poly.c:
15594         Removed cloog.h.
15595         Removed graphite-clast-to-gimple.h.
15596         (check_poly_representation): Removed (unused).
15597         * graphite-sese-to-poly.h
15598         (check_poly_representation): Removed (unused).
15599
15600 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15601
15602         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
15603         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
15604         (graphite-cloog-util.o): New.
15605         (graphite-ppl.o): Added graphite-cloog-util.h.
15606         * graphite-clast-to-gimple.c:
15607         Added graphite-cloog-util.h to include statements.
15608         * graphite-cloog-util.c: New.
15609         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
15610         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15611         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15612         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15613         (insert_constraint_into_matrix): Same.
15614         (ppl_Constrain_System_number_of_constraints): Same.
15615         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15616         (oppose_constraint): Same.
15617         (cloog_matrix_to_ppl_constraint): Same.
15618         (new_Constraint_System_from_Cloog_Matrix): Same.
15619         * graphite-cloog-util.h: New.
15620         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
15621         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15622         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15623         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15624         (insert_constraint_into_matrix): Same.
15625         * graphite-ppl.c:
15626         Added graphite-cloog-util.h to include statements.
15627         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
15628         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15629         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15630         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15631         (insert_constraint_into_matrix): Same.
15632         (ppl_Constrain_System_number_of_constraints): Same.
15633         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
15634         (oppose_constraint): Same.
15635         (cloog_matrix_to_ppl_constraint): Same.
15636         (new_Constraint_System_from_Cloog_Matrix): Same.
15637         * graphite-ppl.h:
15638         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
15639         graphite-cloog-util.h.
15640         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
15641         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
15642         (new_C_Polyhedron_from_Cloog_Matrix): Same.
15643         (insert_constraint_into_matrix): Same.
15644
15645 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
15646
15647         * graphite-clast-to-gimple.c
15648         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
15649         (precision_for_interval): Same.
15650         (gcc_type_for_interval): Same.
15651         (compute_type_for_level): Same.
15652         * graphite-interchange.c
15653         (lst_interchange_profitable_p): Same.
15654         * graphite-poly.c
15655         (psct_scattering_dim_for_loop_depth): Same.
15656         * graphite-ppl.c
15657         (ppl_max_for_le_pointset): Same.
15658         (ppl_min_for_le_pointset): Same.
15659
15660 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15661
15662         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
15663         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
15664
15665 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15666
15667         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
15668         rewrite_close_phi_out_of_ssa.
15669
15670 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15671
15672         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
15673
15674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15675
15676         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
15677         rename_map.
15678         * sese.c (debug_rename_map): Same.
15679         (get_rename): Same.
15680         (set_rename): Same.
15681         (rename_variables_in_stmt): Same.
15682         (expand_scalar_variables_call): Same.
15683         (expand_scalar_variables_ssa_name): Same.
15684         (expand_scalar_variables_expr): Same.
15685         (expand_scalar_variables_stmt): Same.
15686         (expand_scalar_variables): Same.
15687         (rename_variables): Same.
15688         (graphite_copy_stmts_from_block): Same.
15689         (copy_bb_and_scalar_dependences): Same.
15690
15691 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15692
15693         * graphite-clast-to-gimple.c (copy_renames): Removed.
15694         (translate_clast_for): Do not call copy_renames.
15695         (translate_clast_guard): Same.
15696
15697 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15698
15699         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
15700         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
15701         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
15702         before rewrite_cross_bb_scalar_deps.
15703
15704 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15705
15706         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
15707         Early return in when flag_associative_math is not set.
15708
15709 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15710
15711         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
15712         of SSA copies on edges except for loop->latch.
15713
15714 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15715
15716         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
15717         Split out of rewrite_reductions_out_of_ssa.
15718         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
15719         Declared.
15720         * graphite.c (graphite_transform_loops): Call it.
15721
15722 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15723
15724         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
15725
15726 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
15727
15728         * dbgcnt.def (graphite_scop): New counter.
15729         * graphite.c: Include dbgcnt.h.
15730         (graphite_transform_loops): Use new counter to limit transformations.
15731         * Makefile.in (graphite.o): Depend on DBGCNT_H.
15732
15733 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15734
15735         * passes.c (init_optimization_passes): Add pass_graphite.
15736         Schedule a pass_copy_prop before pass_graphite_transforms.
15737         * timevar.def (TV_GRAPHITE): Declared.
15738         * tree-pass.h (pass_graphite): Declared.
15739         * tree-ssa-loop.c (pass_graphite): New.
15740
15741 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15742
15743         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
15744         Remove calls to rename_nb_iterations and rename_sese_parameters.
15745         * graphite-clast-to-gimple.h (gloog): Update declaration.
15746         * graphite.c (graphite_transform_loops): Update call to gloog.
15747         * sese.c (rename_variables_in_expr): Removed.
15748         (rename_nb_iterations): Removed.
15749         (rename_sese_parameters): Removed.
15750         * sese.h (rename_nb_iterations): Removed.
15751         (rename_sese_parameters): Removed.
15752
15753 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15754
15755         * graphite-clast-to-gimple.c (gloog): Remove call to
15756         sese_adjust_liveout_phis.
15757         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
15758         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
15759         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
15760         rewrite_phi_out_of_ssa.
15761         * sese.c (get_vdef_before_sese): Removed.
15762         (sese_adjust_vphi): Removed.
15763         (sese_adjust_liveout_phis): Removed.
15764         * sese.h (sese_adjust_liveout_phis): Removed.
15765
15766 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15767
15768         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
15769         argument for the place after which to insert the out of SSA copy.
15770         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
15771         (rewrite_phi_out_of_ssa): Same.
15772         (rewrite_cross_bb_scalar_deps): Same.
15773         (insert_copyout): Removed.
15774         (insert_copyin): Removed.
15775         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
15776         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
15777         insert_copyin.
15778
15779 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15780
15781         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
15782         (rewrite_reductions_out_of_ssa): Same.
15783         (rewrite_commutative_reductions_out_of_ssa): Same.
15784         (build_poly_scop): Do not call these functions.
15785         * graphite-sese-to-poly.h (build_poly_scop): Declared.
15786         (rewrite_reductions_out_of_ssa): Declared.
15787         (rewrite_commutative_reductions_out_of_ssa): Declared.
15788         * graphite.c (graphite_transform_loops): Call on every scop
15789         rewrite_commutative_reductions_out_of_ssa before calling
15790         rewrite_reductions_out_of_ssa and build_scop_bbs.
15791
15792 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15793
15794         * graphite-dependences.c (dot_deps): Make system call to dotty run
15795         in background.
15796         (dot_deps_stmt): Same.
15797         * graphite-poly.c (dot_lst): Same.
15798
15799 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
15800
15801         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
15802         phi_arg_in_outermost_loop.
15803         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
15804         (remove_invariant_phi): Same.
15805
15806 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
15807
15808         * target.def (output_addr_const_extra): New hook.
15809         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
15810         * doc/tm.texi: Regenerate.
15811         * targhooks.c (default_asm_output_addr_const_extra): New function.
15812         * targhooks.h (default_asm_output_addr_const_extra): Declare.
15813         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
15814         target hook.
15815
15816         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
15817         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
15818         * config/i386/i386.h (output_addr_const_extra): Rename to...
15819         (i386_asm_output_addr_const_extra): ...this. Make static.
15820         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
15821
15822 2010-08-11  Richard Henderson  <rth@redhat.com>
15823
15824         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
15825
15826 2010-08-11  Nick Clifton  <nickc@redhat.com>
15827
15828         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
15829         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
15830         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15831         stormy16-lib2-cmpsi.c.
15832
15833         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
15834         -O2.
15835
15836 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
15837
15838         * opts.h (struct cl_option_handler_func): Make handler take
15839         cl_decoded_option structure as parameter, not individual elements.
15840         (struct cl_option_handlers): Make callbacks take cl_decoded_option
15841         structure as parameter, not individual elements.
15842         (handle_option): Take cl_decoded_option structure as parameter,
15843         not individual elements.
15844         (handle_generated_option): Declare.
15845         * opts-common.c (handle_option): Take cl_decoded_option structure
15846         as parameter, not individual elements.  Update calls to callback
15847         and handler functions.
15848         (handle_generated_option): New.
15849         (read_cmdline_option): Update calls to callback functions and
15850         handle_option.
15851         * opts.c (common_handle_option, complain_wrong_lang,
15852         unknown_option_callback, post_handling_callback,
15853         lang_handle_option, target_handle_option): Take cl_decoded_option
15854         structure as parameter, not individual elements.
15855         (lang_handle_option, target_handle_option, common_handle_option):
15856         Assert option has at most one argument.
15857         (enable_warning_as_error): Call handle_generated_option instead of
15858         handle_option.  Do not pass -Werror argument as argument of
15859         generated option.
15860
15861 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15862
15863         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
15864         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
15865         (SUBWORD_BOOL_CAS): Likewise.
15866         (SUBWORD_SYNC_OP): Likewise.
15867         (SUBWORD_TEST_AND_SET): Likewise.
15868         (FETCH_AND_OP_WORD): Parenthesise INF_OP
15869         (SUBWORD_SYNC_OP): Likewise.
15870         (OP_AND_FETCH_WORD): Likewise.
15871
15872 2010-08-10  Xinliang David Li  <davidxl@google.com>
15873
15874         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
15875         compute max/min offset in address.
15876
15877 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
15878
15879         * ira-live.c: Include sbitmap.h.
15880         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
15881         Compress live ranges even more.
15882
15883 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15884
15885         * coverage.c (ctr_labels): Delete.
15886
15887 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15888
15889         PR bootstrap/45177
15890         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
15891         test here from arm_gen_load_multiple_1.
15892         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
15893         multiple_operation_profitable_p.
15894
15895 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15896
15897         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
15898         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
15899
15900 2010-08-10  Richard Henderson  <rth@redhat.com>
15901
15902         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
15903         after saving registers.  Assert that SSE registers are only saved
15904         with a sufficiently aligned frame.
15905         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
15906         remove stack_realign_fp handling.
15907         (ix86_expand_prologue): Save int registers before stack_realign_fp,
15908         and do not mark the stack alignment as frame related.
15909         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
15910
15911         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
15912         saves when re-aligning the stack.
15913
15914 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15915
15916         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
15917         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
15918         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
15919
15920 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
15921
15922         * dwarf2out.c (struct die_struct): Move die_tag to the end.
15923
15924 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
15925
15926         * config/arm/iterators.md: New file.
15927         * config/arm/arm.md: Include iterators.md.
15928         (QHSI): Move to new file.
15929         (LTUGEU, cnb, optab, ior_xor): Likewise.
15930         * config/arm/iwmmxt.md (VMMX): Move to new file.
15931         (VSHFT, MMX_char): Likewise.
15932         * config/arm/neon.md (VD): Move to new file.
15933         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
15934         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
15935         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
15936         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
15937         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
15938         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
15939         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
15940         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
15941         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
15942         (Is_d_reg, V_mode_nunits): Likewise.
15943         * config/arm/vec-common.md (VALL): Move to new file.
15944         (VALLW, VINT, VINTW): Likewise.
15945
15946 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
15947
15948         PR middle-end/45182
15949         * combine.c (make_compound_operation): Don't try to convert
15950         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
15951
15952 2010-08-10  Richard Guenther  <rguenther@suse.de>
15953
15954         * tree.h (get_object_alignment): Adjust prototype.
15955         * builtins.c (get_object_alignment): Return unsigned int,
15956         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
15957         and TARGET_MEM_REF properly.
15958         (get_pointer_alignment): Adjust.
15959         * emit-rtl.c (get_mem_align_offset): Adjust comment.
15960         (set_mem_attributes_minus_bitpos): Adjust.
15961         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
15962
15963 2010-08-10  Richard Guenther  <rguenther@suse.de>
15964
15965         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
15966         (copy_prop_visit_assignment): Simplify.
15967         (copy_prop_visit_stmt): Also visit assignments from
15968         constants.
15969         (copy_prop_visit_phi_node): Use operand_equal_p.
15970
15971 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15972
15973         * ipa-split.c (find_split_points): Free stack.
15974
15975 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
15976
15977         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
15978         * tree.c (tree_node_kind): Delete corresponding entries.
15979
15980 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15981
15982         * alias.c (may_alias_p): Remove unused ret.
15983
15984 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
15985
15986         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
15987         alias_sets_conflict_p.
15988         (walk_mems_1): Moved from alias.c.
15989         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
15990         in alias.c.
15991         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
15992         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
15993         * alias.c (walk_mems_2): Moved to ddg.c.
15994         (walk_mems_1): Ditto.
15995         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
15996         to ddg.c.
15997         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
15998         disambiguation.
15999         *(may_alias_p): New function to check whether two memory expression
16000         may alias or not. Currently used in buidling inter-iteration memory
16001         dependence.
16002         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
16003         (insn_alias_sets_conflict_p): Removed
16004         *rtl.h (may_alias_p): New function prototype.
16005
16006 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16007
16008         * tree.c (nreverse): Assert that we don't have a BLOCK.
16009
16010 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
16011
16012         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
16013         * config/arm/arm.c (arm_get_pcs_model): Likewise.
16014         * config/avr/avr.c (init_cumulative_args): Likewise.
16015         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16016         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
16017         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
16018         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
16019         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
16020         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16021         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
16022         * dwarf2out.c (gen_subprogram_die): Likewise.
16023         * function.c (allocate_struct_function): Likewise.
16024         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
16025         (deserves_ellipsis): Delete.
16026
16027 2010-08-09  Richard Guenther  <rguenther@suse.de>
16028
16029         * tree-ssa-copy.c (cached_last_copy_of): Remove.
16030         (valueize_val): New function.
16031         (get_last_copy_of): Remove.
16032         (set_copy_of_val): Simplify.
16033         (dump_copy_of): Likewise.
16034         (copy_prop_visit_cond_stmt): Use valueize_val.
16035         (copy_prop_visit_phi_node): Properly handle unvisited names.
16036         Drop code managing copy-of chains.
16037         (init_copy_prop): Adjust.
16038         (fini_copy_prop): Likewise.
16039         (execute_copy_prop): Remove obsolete comment.
16040
16041 2010-08-09  Richard Guenther  <rguenther@suse.de>
16042
16043         PR middle-end/44632
16044         * function.c (gimplify_parameters): Do not clear addressable
16045         bit of the original parameter.
16046
16047 2010-08-09  Richard Guenther  <rguenther@suse.de>
16048
16049         PR middle-end/45212
16050         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
16051         alignment from MEM_REF offset only if we took it from the
16052         base object.
16053
16054 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
16055
16056         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
16057
16058 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16059
16060         * c-tree.h (build_arg_info): Declare.
16061         * c-decl.c (build_arg_info): Define.
16062         (get_parm_info): Call it.  Delete initialization code.
16063         * c-parser.c (c_parser_parms_declarator): Likewise.
16064         (c_parser_parms_list_declaractor): Likewise.
16065
16066 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16067
16068         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
16069         (struct c_arg_info): Change type of tags field.
16070         * c-decl.c (grokdeclarator): Update for changed type of tags field.
16071         (get_parm_info): Likewise.
16072         (store_parm_decls_newstyle): Likewise.
16073
16074 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
16075
16076         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
16077         (branch_island_list): Delete.
16078         (branch_islands): Declare.
16079         (add_compiler_branch_island): Adjust for branch_islands instead of
16080         branch_island_list.
16081         (macho_branch_islands): Likewise.
16082         (no_previous_def): Likewise.
16083         (get_prev_label): Likewise.
16084
16085 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16086
16087         PR boehm-gc/34544
16088         * gthr-posix.h (__gthread_start): Delete.
16089         (__gthread_active_init): Use pthread_default_stacksize_np instead of
16090         pthread_create to determine if hpux pthreads are active.
16091         * gthr-posix95.h (__gthread_start): Delete.
16092         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
16093
16094 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
16095
16096         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
16097         _WIN64 not expanded.
16098
16099 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
16100             H.J. Lu  <hongjiu.lu@intel.com>
16101
16102         PR target/45213
16103         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
16104         to output 32bit SFmode immediate as 8 byte sign extended value.
16105
16106 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16107
16108         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
16109         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
16110         (SUBWORD_BOOL_CAS): Likewise.
16111         (SUBWORD_SYNC_OP): Likewise.
16112         (SUBWORD_TEST_AND_SET): Likewise.
16113         (FETCH_AND_OP_WORD): Parenthesise INF_OP
16114         (SUBWORD_SYNC_OP): Likewise.
16115         (OP_AND_FETCH_WORD): Likewise.
16116
16117 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16118
16119         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
16120         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
16121         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
16122         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
16123         generic part.
16124         (cortex_a9_sched_adjust_cost): New function.
16125         (xscale_sched_adjust_cost): New function.
16126         * config/arm/arm-protos.h (struct tune_params): New field
16127         sched_adjust_cost.
16128         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
16129
16130 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
16131
16132         PR target/44942
16133         * config/sparc/sparc.c (function_arg_advance): Always take into account
16134         the padding, if any.
16135
16136 2010-08-06  Richard Guenther  <rguenther@suse.de>
16137
16138         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
16139         (dump_lattice_value): Dump it.
16140         (get_default_value): Adjust.
16141         (get_constant_value): Likewise.
16142         (set_value_varying): Likewise.
16143         (set_lattice_value): Make sure to not go up the lattice
16144         with bitwise constant values.
16145         (get_value_for_expr): Handle ADDR_EXPRs.
16146         (value_to_double_int): New function.
16147         (get_value_from_alignment): Likewise.
16148         (do_dbg_cnt): Adjust.
16149         (ccp_lattice_meet): Handle partially constant values.
16150         (bit_value_unop_1): New function.
16151         (bit_value_binop_1): Likewise.
16152         (bit_value_unop): Likewise.
16153         (bit_value_binop): Likewise.
16154         (evaluate_stmt): Track partially constant values if
16155         flag_tree_bit_ccp is set.
16156         (ccp_fold_stmt): Dump if we folded a predicate.
16157         (ccp_visit_stmt): Adjust.
16158         * common.opt (ftree-bit-ccp): New flag.
16159         * doc/invoke.texi (ftree-bit-ccp): Document.
16160         * opts.c (decode_options): Enable bit-CCP at -O1.
16161
16162 2010-08-06  Alan Modra  <amodra@gmail.com>
16163
16164         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
16165         and -mrelocatable-lib description.
16166
16167 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
16168
16169         From Martin Thuresson  <martint@google.com>
16170         * postreload.c (reload_cse_simplify_operands): Use
16171         SET_REGNO_RAW instead of SET_REGNO.
16172         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
16173         SET_REGNO.
16174         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
16175         instead of SET_REGNO.
16176         * rtl.h (SET_REGNO_RAW): New macro.
16177
16178 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
16179
16180         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
16181         computations.  Fix formatting issues.
16182         (num_sign_bit_copies1): Likewise.
16183         (canonicalize_condition): Likewise.
16184
16185 2010-08-05  Richard Henderson  <rth@redhat.com>
16186
16187         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
16188         (floor_log2): Use clz_hwi.
16189         (exact_log2): Use ctz_hwi.
16190         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
16191         * builtins.c (fold_builtin_bitop): Use them.
16192         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
16193         * combine.c (get_pos_from_mask): Use ctz_hwi.
16194         * double-int.c (double_int_ctz): Likewise.
16195         * explow.c (force_reg): Likewise.
16196         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
16197
16198 2010-08-05  Richard Henderson  <rth@redhat.com>
16199
16200         PR target/45189
16201         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
16202         the alignment constant is properly sign-extended.
16203
16204 2010-08-05  Richard Guenther  <rguenther@suse.de>
16205
16206         * expr.c (store_expr): Use emit_block_move only if both
16207         source and target are MEMs.  Use store_bit_field if only
16208         the target is a MEM.
16209
16210 2010-08-05  Richard Henderson  <rth@redhat.com>
16211
16212         PR debug/45188
16213         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
16214         (INCOMING_RETURN_ADDR_RTX): Likewise.
16215         (dwarf2out_do_frame): Remove conditional compilation.
16216         (dwarf2out_frame_init): Likewise.
16217
16218 2010-08-05  Nicolas Setton  <setton@adacore.com>
16219
16220         * gcov.c (flag_display_progress): New static variable.
16221         (main): Display progress info on standard output if requested.
16222         (options): Add -d/--display-progress.
16223         (print_usage): Print them.
16224         (process_args): Handle them.
16225         * doc/gcov.texi: Document them.
16226
16227 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16228
16229         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
16230         (ipcp_insert_stage): Redirect only edges not flagged with
16231         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
16232         discovered constants.
16233
16234 2010-08-05  Martin Jambor  <mjambor@suse.cz>
16235
16236         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
16237         (struct ipa_param_descriptor): New fields types and
16238         cannot_devirtualize.
16239         (ipa_param_cannot_devirtualize_p): New function.
16240         (ipa_param_types_vec_empty): Likewise.
16241         (ipa_make_edge_direct_to_target): Declare.
16242         * ipa-cp.c: Fixed first stage driver name in initial comment,
16243         described devirtualization there too.
16244         (ipcp_analyze_node): Call ipa_analyze_params_uses.
16245         (ipcp_print_all_lattices): Print devirtualization info.
16246         (ipa_set_param_cannot_devirtualize): New function.
16247         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
16248         lattice to BOTTOM.
16249         (ipcp_init_stage): Merged into...
16250         (ipcp_generate_summary): ...its caller.
16251         (ipcp_change_tops_to_bottom): Also process type lists.
16252         (ipcp_add_param_type): New function.
16253         (ipcp_copy_types): Likewise.
16254         (ipcp_propagate_types): Likewise.
16255         (ipcp_propagate_stage): Also propagate types.
16256         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
16257         Also return true if propagated types require it.
16258         (ipcp_update_callgraph): Dump redirection info.
16259         (ipcp_process_devirtualization_opportunities): New function.
16260         (ipcp_const_param_count): Include known type information.
16261         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
16262         on new node.  Fixed formatting.
16263         * ipa-prop.c (make_edge_direct_to_target): Renamed to
16264         ipa_make_edge_direct_to_target and changed all callers.  Made
16265         externally visible.
16266         (ipa_node_duplication_hook): Duplicate types vector.
16267         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
16268         redirect outgoing calls for which we can't get a decl from the
16269         statement.  Check that we can get a decl from the call statement.
16270         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16271         ipa_analyze_params_uses only when ipa-cp is disabled.
16272         * tree-inline.c (get_indirect_callee_fndecl): Removed.
16273         (expand_call_inline): Do not call get_indirect_callee_fndecl.
16274         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
16275         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
16276
16277 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16278
16279         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
16280         temporary. Emit move from temporary to accum, so REG_EQUAL note will
16281         be attached to this insn in correct mode.
16282
16283 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
16284
16285         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
16286         using REGNO of base_reg directly.
16287
16288 2010-08-05  Jie Zhang  <jie@codesourcery.com>
16289
16290         PR tree-optimization/45144
16291         * tree-sra.c (type_consists_of_records_p): Return false
16292         if the record contains bit-field.
16293
16294 2010-08-04  Richard Henderson  <rth@redhat.com>
16295
16296         * config/i386/i386.c (struct ix86_frame): Remove padding and
16297         to_allocate members.
16298         (ix86_compute_frame_layout): Don't store them.
16299         (ix86_can_use_return_insn_p): Use a more direct and more obviously
16300         correct condition for the position of the stack pointer.
16301         (ix86_expand_prologue): Compute remaining stack allocation based
16302         on the ultimate stack pointer offset.
16303         (ix86_expand_epilogue): Use more obvious expressions testing for
16304         the stack pointer already pointing to the saved registers.
16305
16306         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
16307         duplication deconstructing the frame pointer.  Simplify
16308         deallocation of the local stack frame.
16309
16310         * reg-notes.def (CFA_EXPRESSION): New.
16311         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
16312         (dwarf2out_frame_debug_cfa_expression): New.
16313         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
16314
16315         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
16316         * config/i386/i386.c (ix86_expand_prologue): Set it.
16317         (ix86_expand_epilogue): Clear it.
16318         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
16319         context, add REG_CFA_EXPRESSION notes.
16320
16321         * config/i386/i386.h (struct machine_frame_state): Rename from
16322         machine_cfa_state.  Add members tracking SP and FP regardless
16323         of the current CFA register.
16324         (ix86_cfa_state): Remove.
16325         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
16326         and sse_reg_save_offset members.
16327         (ix86_compute_frame_layout): Set them.
16328         (gen_push): Increment sp_offset too.
16329         (choose_baseaddr_len, choose_baseaddr): New.
16330         (ix86_emit_save_reg_using_mov): New.
16331         (ix86_emit_save_regs_using_mov): Use it.
16332         (ix86_emit_save_sse_regs_using_mov): Likewise.
16333         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
16334         compare vs the saved red_zone_offset.
16335         (pro_epilogue_adjust_stack): Adjust sp_offset.
16336         (ix86_adjust_stack_and_probe): Likewise.
16337         (ix86_expand_prologue): Set up, use, and validate the new
16338         frame_state_info members.  Use gen_frame_mem.
16339         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
16340         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
16341         new frame_state_info members.
16342         (ix86_emit_leave): Likewise.
16343         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
16344         out-of-range stack pointer offsets here.
16345         (ix86_emit_restore_sse_regs_using_mov): Likewise.
16346         (ix86_expand_epilogue): Use and validate the new frame_state_info
16347         members.  Break up and simplify the logic selecting the
16348         restore_regs_via_mov code path.  Ensure that there will be no
16349         out-of-range stack pointer offsets.
16350
16351         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
16352
16353         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
16354         argument name to reflect the expected tree; fix indentation.
16355         (ix86_asm_output_function_label): Output the entire 32-bit
16356         ms_hook here as bytes ...
16357         (ix86_expand_prologue): ... not here as insns.  Attach the
16358         unwind info for the ms_hook to a blockage insn.
16359         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
16360         (ix86_ms_bitfield_layout_p): Fix indentation.
16361         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
16362
16363         * config/i386/i386.c (ix86_using_red_zone): New.
16364         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
16365         ix86_expand_prologue, ix86_force_to_memory): Use it.
16366
16367         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
16368         saving the int registers.
16369
16370         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
16371         and DWARF2_UNWIND_INFO conditional compilation.
16372
16373 2010-08-04  Richard Henderson  <rth@redhat.com>
16374
16375         PR debug/45171
16376         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
16377         an is_naming_typedef_decl.
16378
16379 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
16380
16381         PR rtl-optimization/45162
16382         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
16383         * dce.c (word_dce_process_block): Likewise.
16384
16385 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
16386
16387         PR target/44583
16388         * config/ia64/constraints.md (Z): New.
16389         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
16390         (xfreg_or_signed_fp01_operand): New.
16391         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
16392         with fr_reg_or_signed_fp01_operand and constraint G with Z.
16393         (subsf3): Ditto.
16394         (*maddsf4): Ditto.
16395         (*msubsf4): Ditto.
16396         (adddf3): Ditto.
16397         (adddf3_trunc): Ditto.
16398         (subdf3): Ditto.
16399         (*subdf3_trunc): Ditto.
16400         (*madddf4): Ditto.
16401         (*madddf4_trunc): Ditto.
16402         (*msubdf4): Ditto.
16403         (*msubdf4_trunc): Ditto.
16404         (addxf3): Replace xfreg_or_fp01_operand with
16405         xfreg_or_signed_fp01_operand and constraint G with Z.
16406         (*addxf3_truncsf): Ditto.
16407         (*addxf3_truncdf): Ditto.
16408         (subxf3): Ditto.
16409         (*subxf3_truncsf): Ditto.
16410         (*subxf3_truncdf): Ditto.
16411         (*maddxf4): Ditto.
16412         (*maddxf4_truncsf): Ditto.
16413         (*maddxf4_truncdf): Ditto.
16414         (*msubxf4): Ditto.
16415         (*msubxf4_truncsf): Ditto.
16416         (*msubxf4_truncdf): Ditto.
16417
16418 2010-08-04  Richard Guenther  <rguenther@suse.de>
16419
16420         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
16421         if either alias-set is zero.
16422
16423 2010-08-04  Richard Guenther  <rguenther@suse.de>
16424
16425         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
16426         * tree-ssa-ccp.c: ... here.
16427         * tree-ssa-copy.c: ... and here.
16428         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
16429         value_range_t): Move ...
16430         * tree-vrp.c: ... here.
16431         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
16432         (substitute_and_fold): Adjust prototype.
16433         * tree-ssa-propagate.c (replace_uses_in): Adjust.
16434         (replace_phi_args_in): Likewise.
16435         (substitute_and_fold): Take callback to query lattice instead
16436         of pointer to lattice.  Replace SSA name defs with lattice
16437         values first.
16438         * tree-ssa-ccp.c (ccp_finalize): Adjust.
16439         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
16440         (get_value): New function.
16441         (fini_copy_prop): Adjust.
16442         * tree-vrp.c (vrp_finalize): Adjust.
16443
16444 2010-08-04  Richard Guenther  <rguenther@suse.de>
16445
16446         PR middle-end/45176
16447         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
16448         points-to set for original MEM_REF.
16449
16450 2010-08-04  Richard Guenther  <rguenther@suse.de>
16451
16452         * tree-ssa-ccp.c (get_constant_value): New function.
16453         (get_rhs_assign_op_for_ccp): Remove.
16454         (valueize_op): New function.
16455         (ccp_fold): Use get_constant_value and valueize_op.
16456         (fold_const_aggregate_ref): Likewise.
16457         (ccp_fold_stmt): Likewise.
16458         (visit_assignment): Simplify.
16459
16460 2010-08-04  Richard Guenther  <rguenther@suse.de>
16461
16462         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
16463         * double-int.h (double_int_ctz): Declare.
16464         * double-int.c (double_int_ctz): New function.
16465
16466 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
16467
16468         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
16469         Define.
16470         picochip_expand_movmemhi : Expand movmem pattern.
16471         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
16472         Declare.
16473         * config/picochip/picochip.md (movmemhi) : New pattern.
16474
16475 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16476
16477         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
16478
16479 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
16480
16481         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
16482         NEG as operand of a MULT by merging it with the other operand.
16483         * combine.c (make_compound_operation): Use trunc_int_for_mode when
16484         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
16485         MULT.
16486         * config/arm/constraints.md (M): Examine only 32 bits of a
16487         HOST_WIDE_INT.
16488         * config/arm/predicates.md (power_of_two_operand): Likewise.
16489
16490 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16491
16492         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
16493         non-NOTE insns.
16494
16495 2010-08-03  Jan Hubicka  <jh@suse.cz>
16496
16497         * ipa-split.c (struct split_point): Add split_part_set_retval.
16498         (find_retval): Forward declare.
16499         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
16500         (consider_split): Compute current->split_part_set_retval.
16501         (visit_bb): Do not look into return value.
16502         (split_function): Handle !split_part_set_retval
16503
16504 2010-08-03  Martin Jambor  <mjambor@suse.cz>
16505
16506         * tree-sra.c (completely_scalarize_record): New parameter REF, create
16507         its own access->expr intead of using build_ref_for_offset.
16508
16509 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
16510
16511         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
16512         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
16513         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
16514         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
16515         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
16516         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
16517         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
16518         DEFAULT_SWITCH_TAKES_ARG.
16519         * config/rx/rx.opt (-patch=): Remove option.
16520         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
16521         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
16522         * doc/invoke.texi (RX Options): Remove -patch=.
16523         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
16524         (option_map): Remove --profile-blocks, --quiet and --silent.
16525
16526 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
16527
16528         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
16529         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
16530         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
16531         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16532         Update calls to ix86_expand_compare and ix86_expand_branch.
16533         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
16534         ix86_expand_compare.
16535         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
16536         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
16537         Make static.
16538         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
16539         and ix86_compare_op1.  Update calls to ix86_expand_compare.
16540         (ix86_expand_int_movcc): Ditto.
16541         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
16542         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
16543         (ix86_expand_setcc): Ditto.
16544         (ix86_expand_compare): Remove prototype.
16545         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
16546         ix86_compare_op0 and ix86_compare_op1.  Update calls
16547         to ix86_expand_branch to directly pass operands[1] and operands[2].
16548         (cbranchxf4): Ditto.
16549         (cbranch<MODEF:mode>4): Ditto.
16550         (cbranchcc4): Ditto.
16551         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
16552         Update calls to ix86_expand_setcc to directly pass operands[2] and
16553         operands[3].
16554         (cstorexf4): Ditto.
16555         (cstore<MODEF:mode>4): Ditto.
16556         (cstorecc4): Ditto.
16557
16558 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16559
16560         PR target/45063
16561         * caller-save.c (save_call_clobbered_regs): Remove regs from
16562         hard_regs_saved when they are set.
16563
16564 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
16565
16566         PR target/41089
16567         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
16568         as volatile.
16569
16570 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
16571
16572         * common.opt (ftree-loop-distribute-patterns): New.
16573         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
16574         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
16575         at -O3.
16576         * tree-data-ref.c (stores_zero_from_loop): New.
16577         * tree-data-ref.h (stores_zero_from_loop): Declared.
16578         * tree-loop-distribution.c (tree_loop_distribution): Call
16579         stores_zero_from_loop.
16580         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
16581
16582 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
16583
16584         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
16585         into account.
16586
16587         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
16588         * config/arm/arm.c (thumb1_code): New variable.
16589         (arm_override_options): Set it.
16590         (thumb1_final_prescan_insn): Keep track of condition code status.
16591         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
16592         jumps that depend on them.
16593         * config/arm/arm.h (thumb1_code): Declare variable.
16594         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
16595         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
16596         thumb1_cc_mode.
16597         (CC_STATUS_INIT): New macro.
16598         * config/arm/constraints.md (Pd): New constraint.
16599         * config/arm/predicates.md (noov_comparison_operator): New predicate.
16600         * config/arm/arm.md (is_thumb1): New define_attr.
16601         (conds): Set default to "clob" when generating Thumb1 code.
16602         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
16603         code are set.  Use two-operand assembly syntax.
16604         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
16605         pattern.
16606         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
16607         codes are set.  Use two-operand assembly syntax.
16608         (zero_extendhisi splitter): Remove constraints.
16609         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
16610         thumb1_movsf_insn): Set conds attribute as appropriate.
16611         (cbranchsi4_insn): Use condition code status from struct
16612         machine_function to determine whether the comparison can be eliminated.
16613         Discourage the alternative using high registers.
16614         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
16615         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
16616         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
16617         subsi3_cbranch): Delete.
16618         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
16619         one subtract and one cbranch insn.
16620
16621         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
16622         thumb2_movdf_soft_insn): Delete patterns.
16623         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
16624         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
16625         (pool_range, neg_pool_range): Use them to define defaults.
16626         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
16627         and allow for TARGET_32BIT.
16628
16629         PR target/40457
16630         * config/arm/arm.h (arm_regs_in_sequence): Declare.
16631         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
16632         load_multiple_sequence, store_multiple_sequence): Delete
16633         declarations.
16634         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
16635         declarations.
16636         * config/arm/ldmstm.md: New file.
16637         * config/arm/arm.c (arm_regs_in_sequence): New array.
16638         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
16639         CHECK_REGS.  All callers changed.
16640         If SAVED_ORDER is nonnull, copy the computed order into it.
16641         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
16642         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
16643         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
16644         If SAVED_ORDER is nonnull, copy the computed order into it.
16645         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
16646         like REGS.  Handle Thumb mode.
16647         (arm_gen_load_multiple_1): New function, broken out of
16648         arm_gen_load_multiple.
16649         (arm_gen_store_multiple_1): New function, broken out of
16650         arm_gen_store_multiple.
16651         (arm_gen_multiple_op): New function, with code from
16652         arm_gen_load_multiple and arm_gen_store_multiple moved here.
16653         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
16654         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
16655         changed.
16656         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
16657         * config/arm/predicates.md (commutative_binary_operator): New.
16658         (load_multiple_operation, store_multiple_operation): Handle more
16659         variants of these patterns with different starting offsets.  Handle
16660         Thumb-1.
16661         * config/arm/arm.md: Include "ldmstm.md".
16662         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
16663         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
16664         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
16665         peepholes): Delete.
16666         * config/arm/ldmstm.md: New file.
16667         * config/arm/arm-ldmstm.ml: New file.
16668
16669         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
16670         if statement which adds extra costs to frame-related expressions.
16671
16672 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16673
16674         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
16675
16676 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
16677
16678         PR target/45142
16679         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
16680         alternative 2.
16681         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
16682         split V4SI operands.
16683
16684 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
16685
16686         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16687         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
16688         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
16689         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
16690
16691 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
16692
16693         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
16694         LOCAL_INCLUDE_DIR.
16695
16696 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
16697
16698         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
16699         used in the call to optab_for_tree_code.  Fix the second
16700         is_widening_mult_p call.  Check that both unwidened operands
16701         have the same sign.
16702
16703 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
16704
16705         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
16706
16707 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
16708
16709         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
16710
16711 2010-07-30  DJ Delorie  <dj@redhat.com>
16712
16713         * config/rx/predicates.md (rx_constshift_operand): New.
16714         * config/rx/rx.md (zs_cond): New.
16715         (cbranchsi4): Remove mode.
16716         (*cbranchsi4_<code>): Likewise.
16717         (*tstbranchsi4_<code>): New.
16718         (*tstbranchsi4r_<code>): New.
16719         (*tstbranchsi4m_eq): New.
16720         (*tstbranchsi4m_ne): New.
16721         (cbranchsf4): Remove mode.
16722         (*cbranchsf4_<code>): Likewise.
16723
16724 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
16725
16726         * rtlanal.c (simplify_subreg_regno): Don't treat
16727         HARD_FRAME_POINTER_REGNUM specially.
16728
16729 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
16730
16731         * common.opt (-G): Don't define option here.
16732         * config/g.opt: New.
16733         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
16734         rs6000/powerpc and score targets.
16735         * opts.c (common_handle_option): Don't handle -G here.
16736         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
16737         * config/frv/frv.c (frv_handle_option): Handle -G.
16738         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
16739         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
16740         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
16741         * config/mips/mips.c (mips_handle_option): Handle -G.
16742         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
16743         * config/score/score.c (score_handle_option): Handle -G.
16744
16745 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
16746
16747         * config/mmix/mmix.c: Include basic-block.h.
16748
16749 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
16750
16751         PR debug/45055
16752         PR rtl-optimization/45137
16753         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
16754         prototypes.
16755         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
16756         New functions.
16757         * combine.c (next_nonnote_nondebug_insn): Removed.
16758         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
16759         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
16760         * sched-deps.c (sched_analyze_insn): Likewise.
16761         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
16762         * rtlanal.c (canonicalize_condition): Likewise.
16763         * postreload.c (reload_combine_recognize_pattern): Likewise.
16764         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
16765
16766 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
16767
16768         * config/i386/i386.md (int_cond): Remove code iterator.
16769         (fp_cond): Ditto.
16770         (cbranch<mode>4): Use ordered_comparison_operator predicate
16771         for operator0.
16772         (cstore<mode>4): Ditto for operator1.
16773         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
16774         (add<mode>cc): ditto.
16775
16776 2010-07-30  Richard Guenther  <rguenther@suse.de>
16777
16778         PR middle-end/45141
16779         * expr.c (expand_expr_real_1): Check for not handled base address.
16780
16781 2010-07-30  Richard Guenther  <rguenther@suse.de>
16782
16783         * ipa-prop.c (ipa_modify_formal_parameters): Use
16784         build_distinct_type_copy.
16785
16786 2010-07-30  Anthony Green  <green@moxielogic.com>
16787
16788         * config/moxie/rtems.h: New file.
16789         * config.gcc: Add moxie-rtems support.
16790
16791 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16792
16793         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
16794         df flags as in run_fast_df_dce.
16795
16796 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16797
16798         Revert:
16799         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
16800
16801         * rtl.def (NOTE): Swap operands 4 and 5.
16802         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
16803         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
16804         Adjust accordingly.
16805         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
16806
16807 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
16808
16809         PR debug/45110
16810         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
16811         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
16812         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
16813         formal parameters.
16814         (gen_decl_die): Change return type to dw_die_ref, return what
16815         gen_formal_parameter_die returned.
16816
16817 2010-07-29  Martin Jambor  <mjambor@suse.cz>
16818
16819         * dbgcnt.def (eipa_sra): New counter.
16820         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
16821
16822 2010-07-29  Xinliang David Li  <davidxl@google.com>
16823
16824         PR bootstrap/45119
16825         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
16826         in revision 162652.
16827
16828 2010-07-29  Richard Guenther  <rguenther@suse.de>
16829
16830         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
16831         (TV_TREE_STORE_CCP): Likewise.
16832         (TV_TREE_REDPHI): Likewise.
16833
16834 2010-07-29  Richard Guenther  <rguenther@suse.de>
16835
16836         * double-int.h (double_int_and_not): New function.
16837         * combine.c (try_combine): Use it.
16838         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
16839
16840 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
16841
16842         PR rtl-optimization/42575
16843         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
16844         Argument AU removed.  All callers changed.  Ignore artificial refs.
16845         Use return value of df_word_lr_simulate_defs to decide whether an insn
16846         is necessary.
16847         (fast_dce): Rename arg to WORD_LEVEL.
16848         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
16849         static.
16850         (pass_fast_rtl_byte_dce): Delete.
16851         * dce.h (run_word_dce): Declare.
16852         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
16853         All callers changed.  Simplify code to only deal with two-word regs.
16854         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
16855         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
16856         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
16857         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
16858         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
16859         (df_word_lr_mark_ref): Declare.
16860         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
16861         df_word_lr_simulate_uses): Declare or rename from byte variants.
16862         (df_byte_lr_simulate_artificial_refs_at_top,
16863         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16864         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
16865         declarations.
16866         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
16867         (enum df_mm): Delete.
16868         * df-byte-scan.c: Delete file.
16869         * df-problems.c (df_word_lr_problem_data): Renamed from
16870         df_byte_lr_problem_data, all members deleted except for
16871         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
16872         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
16873         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
16874         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
16875         df_byte_lr_confluence_0): Delete functions.
16876         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
16877         callers changed.
16878         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
16879         Don't initialize members that were deleted, don't try to discover data
16880         about registers.  Ignore hard regs.
16881         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
16882         (df_word_lr_mark_ref): New function.
16883         (df_word_lr_bb_local_compute): Renamed from
16884         df_byte_bb_lr_local_compute; all callers changed.  Use
16885         df_word_lr_mark_ref.  Assert that artificial refs don't include
16886         pseudos.  Ignore hard registers.
16887         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
16888         Assert that exit block uses don't contain pseudos.
16889         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
16890         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
16891         callers changed.  Ignore hard regs.
16892         (df_word_lr_transfer_function): Renamed from
16893         df_byte_lr_transfer_function; all callers changed.
16894         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
16895         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
16896         changed.
16897         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
16898         callers changed.
16899         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
16900         confluence operator 0 set to NULL.
16901         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
16902         callers changed.
16903         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
16904         Return bool, true if bitmap changed or insn otherwise necessary.
16905         All callers changed.  Simplify using df_word_lr_mark_ref.
16906         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
16907         all callers changed.  Simplify using df_word_lr_mark_ref.
16908         * lower-subreg.c: Include "dce.h"
16909         (decompose_multiword_subregs): Call run_word_dce if df available.
16910         * Makefile.in (lower-subreg.o): Adjust dependencies.
16911         (df-byte-scan.o): Delete.
16912         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
16913
16914 2010-07-29  Richard Guenther  <rguenther@suse.de>
16915
16916         * tree.c (build_vector): Assert that the vector constant
16917         has enough elements.
16918         (build_vector_from_ctor): Pad with trailing zeros.
16919
16920 2010-07-29  Richard Guenther  <rguenther@suse.de>
16921
16922         PR tree-optimization/45120
16923         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16924         Handle offset in DEREFs properly.
16925         (get_constraint_for_1): Handle MEM_REF offset properly.
16926
16927 2010-07-29  Richard Guenther  <rguenther@suse.de>
16928
16929         PR middle-end/45034
16930         * convert.c (convert_to_integer): Always use an unsigned
16931         type for narrowed negate and bitwise not.
16932
16933 2010-07-29  Ira Rosen  <irar@il.ibm.com>
16934
16935         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
16936         to outer loop when creating reduction epilogue for double reduction,
16937         and switch back to the inner loop when updating the phi nodes.
16938         Update uses of outer loop exit phi nodes in double reduction (instead
16939         of uses of reduction).
16940
16941 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
16942
16943         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
16944         popcount on power7 and parity on power6 systems.
16945         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
16946         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
16947         instructions.
16948
16949         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
16950         (UNSPEC_PARITY): Ditto.
16951         (SFDF): New iterator for SF/DF.
16952         (rreg2): New mode attribute for floating register constraint.
16953         (TARGET_FLOAT): New mode attribute for whether single/double float
16954         is supported.
16955         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
16956         pattern.
16957         (parity<mode>2_cmpb): New insn for parity on power6 and newer
16958         machines.
16959         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
16960         pattern.  Add support for fcpsgn instruction added in power6.
16961         (copysignsf3): Delete.
16962         (copysigndf3): Delete.
16963         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
16964         instead of if_then_else in RTL to avoid problems with -0.
16965
16966         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
16967         of if_then_else to mirror scalar code.
16968         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
16969         rs6000.md.
16970
16971         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
16972         instead of if_then_else.
16973
16974 2010-07-28  Xinliang David Li  <davidxl@google.com>
16975
16976         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
16977         (dump_cand): Dump var_before/after.
16978         (htab_inv_expr_eq): New function.
16979         (htab_inv_expr_hash): New function.
16980         (tree_ssa_iv_optimize_init): Support pseudo invariants.
16981         (add_candidate_1): consider base type precision.
16982         (set_use_iv_cost): New parameter.
16983         (adjust_setup_cost): Use profile information.
16984         (get_address_cost): Do not hard code width in computing address
16985         offset limits.
16986         (compare_aff_trees): New function.
16987         (get_loop_invariant_expr_id): New function.
16988         (get_computation_cost_at): New parameter and use profile information.
16989         (get_computation_cost): New parameter.
16990         (determine_use_iv_cost_generic): Pass new parameter.
16991         (determine_use_iv_cost_address): Ditto.
16992         (determine_use_iv_cost_condition): Ditto.
16993         (autoinc_possible_for_pair): Ditto.
16994         (determine_use_iv_costs): More dumps.
16995         (iv_ca_get_num_inv_exprs): New function.
16996         (iv_ca_recount_cost): Consider loop invariants in register pressure
16997         cost.
16998         (iv_ca_add_use): New parameter.
16999         (iv_ca_dump): Better dumping.
17000         (iv_ca_extend): New parameter.
17001         (try_add_cand_for): Attempt to get better partial solution.
17002         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
17003         (create_new-ivs): More dumps.
17004         (rewrite_use_compare): Ditto.
17005         (free_loop_data): More cleanup.
17006         (treee_ssa_iv_optimize_finalize): Ditto.
17007
17008 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
17009
17010         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
17011         * config/i386/i386.c (ix86_profile_before_prologue): New.
17012         (override_options): Add special handling for -mfentry.
17013         (ix86_function_regparm): Likewise.
17014         (ix86_function_sseregparm): Likewise.
17015         (ix86_frame_pointer_required): Likewise.
17016         (ix86_expand_prologue): Check for ms_hook_prologue.
17017         (x86_function_profiler): Adjust mcount output.
17018         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
17019         * config/i386/i386.opt (mfentry): New.
17020         * doc/invoke.texi (mfentry): Add documentation.
17021         * doc/tm.texi: Regenerated..
17022         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
17023         * final.c (final_start_function): Replace macro
17024         PROFILE_BEFORE_PROLOGUE by target hook.
17025         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17026         * target.def (profile_before_prologue): New hook.
17027         * targhooks.c (default_profile_before_prologue): New.
17028         * targhooks.h (default_profile_before_prologue): New.
17029
17030 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
17031
17032         PR debug/45105
17033         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
17034
17035         PR debug/45103
17036         * dwarf2out.c (dwarf2out_var_location): Always consider
17037         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
17038
17039 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17040
17041         PR rtl-optimization/45107
17042         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
17043
17044 2010-07-28  Richard Guenther  <rguenther@suse.de>
17045
17046         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
17047         (set_lattice_value): Do not query an old default value.
17048         (get_value_for_expr): New function.  Properly canonicalize
17049         float values.
17050         (ccp_visit_phi_node): Use it.
17051
17052 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
17053
17054         * config/arm/arm.c (arm_pcs_default): Remove static.
17055         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
17056         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
17057         (arm_pcs_default): Declare.
17058
17059 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
17060
17061         * config/rs6000/rs6000.c (rs6000_override_options):
17062         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
17063         ... to darwin_rs6000_override_options.
17064         (rs6000_return_in_memory): Update preceding comment for darwin
17065         64 bit ABI.  Use TARGET_MACHO inline.
17066         (rs6000_darwin64_struct_check_p): New.
17067         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
17068         (function_arg): Likewise.
17069         (rs6000_arg_partial_bytes): Likewise.
17070         (rs6000_function_value): Likewise.
17071
17072 2010-07-28  Andi Kleen  <ak@linux.intel.com>
17073
17074         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
17075
17076 2010-07-28  Richard Guenther  <rguenther@suse.de>
17077
17078         PR middle-end/44903
17079         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
17080         targets try harder to not generate unaligned accesses.
17081
17082 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
17083
17084         PR rtl-optimization/45101
17085         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
17086         for gcse-las.
17087
17088 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17089
17090         PR tree-optimization/44885
17091         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
17092         with non-aliased component.
17093
17094 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
17095
17096         * config/darwin-driver.c (SWITCH_TAKES_ARG,
17097         WORD_SWITCH_TAKES_ARG): Remove.
17098         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
17099         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
17100         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
17101         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
17102         definitions from gcc.c.
17103         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
17104         defaults.h.
17105         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
17106         Move to defaults.h.
17107         * opts-common.c: Include tm.h.
17108         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
17109         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
17110         Handle more than one argument.  Set canonical_option_num_elements.
17111         (decode_cmdline_options_to_array): Set
17112         canonical_option_num_elements and trailing elements of
17113         canonical_option.
17114         * opts.h (struct cl_decoded_option): Allow four elements in
17115         canonical_option.  Add field canonical_option_num_elements.
17116         * Makefile.in (opts-common.o): Update dependencies.
17117
17118 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17119
17120         PR middle-end/44790
17121         PR middle-end/44993
17122         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
17123         sure the base has address_mode before adding the offset.
17124
17125 2010-07-27  Xinliang David Li  <davidxl@google.com>
17126
17127         * tree-flow.h (create_mem_ref): Add one new parameter.
17128         * tree-ssa-address.c (create_mem_ref): New parameter.
17129         (addr_to_parts): Ditto.
17130         (move_variant_to_index): New function.
17131         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
17132
17133 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17134
17135         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
17136         4 and 5.
17137         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
17138         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
17139         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
17140         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
17141         CODE_LABELs and NOTEs.
17142         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
17143         * combine.c (try_combine): Likewise.
17144         * ira.c (setup_prohibited_mode_move_regs): Likewise.
17145         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
17146
17147 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17148
17149         * coretypes.h (struct cl_option_handlers): Declare.
17150         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
17151         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
17152         * langhooks-def.h (lhd_handle_option): Declare.
17153         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
17154         * langhooks.c (lhd_handle_option): New.
17155         * langhooks.h (struct lang_hooks): Update prototype and return
17156         value type of handle_option hook.
17157         * optc-gen.awk: Generate target_flags_explicit definition for the
17158         driver.
17159         * opts-common.c: Include diagnostic.h.
17160         (handle_option): Move from opts.c.  Update prototype and return
17161         value type.  Use handlers structure.
17162         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
17163         handlers structure.
17164         (set_option): Move from opts.c.
17165         * opts.c (common_handle_option): Update prototype and return value
17166         type.  Update calls to handle_option and enable_warning_as_error.
17167         (unknown_option_callback, post_handling_callback,
17168         lang_handle_option, target_handle_option): New.
17169         (handle_option, read_cmdline_option): Move to opts-common.c.
17170         (read_cmdline_options): Update prototype.  Update call to
17171         read_cmdline_option.
17172         (decode_options): Initialize and use handlers structure.
17173         (set_option): Move to opts-common.c.
17174         (enable_warning_as_error): Update prototype.  Update call to
17175         handle_option.
17176         * opts.h (struct cl_option_handler_func, struct
17177         cl_option_handlers): New.
17178         (handle_option, enable_warning_as_error): Update prototypes.
17179         (read_cmdline_option): Declare.
17180         * Makefile.in (opts-common.o): Update dependencies.
17181
17182 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17183
17184         * config/arm/arm.c (params.h): Include.
17185         (arm_override_options): Tune gcse-unrestricted-cost.
17186         * config/arm/t-arm (arm.o): Define dependencies.
17187
17188 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17189
17190         PR target/42495
17191         PR middle-end/42574
17192         * basic-block.h (get_dominated_to_depth): Declare.
17193         * dominance.c (get_dominated_to_depth): New function, use
17194         get_all_dominated_blocks as a base.
17195         (get_all_dominated_blocks): Use get_dominated_to_depth.
17196
17197         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
17198         (hoist_exprs): Remove.
17199         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
17200         (compute_code_hoist_vbeinout): Add debug print outs.
17201         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
17202
17203         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
17204         quadratic behavior.
17205         * params.h (MAX_HOIST_DEPTH): New macro.
17206         * doc/invoke.texi (max-hoist-depth): Document.
17207
17208 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17209
17210         PR rtl-optimization/40956
17211         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
17212         constants.
17213
17214 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17215
17216         PR target/42495
17217         PR middle-end/42574
17218         * config/arm/arm.c (legitimize_pic_address): Use
17219         gen_calculate_pic_address pattern to emit calculation of PIC address.
17220         (will_be_in_index_register): New function.
17221         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
17222         (thumb1_legitimate_address_p): Use it provided !strict_p.
17223         * config/arm/arm.md (calculate_pic_address): New expand and split.
17224
17225 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17226
17227         PR target/42495
17228         PR middle-end/42574
17229         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
17230         * config/arm/arm.md (define_split "J", define_split "K"): Make
17231         IRA/reload friendly.
17232
17233 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17234
17235         * gcse.c (insert_insn_end_basic_block): Update signature, remove
17236         unused checks.
17237         (pre_edge_insert, hoist_code): Update.
17238
17239 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17240
17241         PR target/42495
17242         PR middle-end/42574
17243         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
17244
17245 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17246
17247         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
17248
17249 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17250
17251         PR rtl-optimization/40956
17252         PR target/42495
17253         PR middle-end/42574
17254         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
17255         for hoisting.
17256         (hoist_code): Count occurences in current block too.
17257
17258 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17259
17260         * gcse.c (struct expr:max_distance): New field.
17261         (doing_code_hoisting_p): New static variable.
17262         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
17263         simple expressions, don't change behavior for PRE.  Set max_distance.
17264         (insert_expr_in_table): Set new max_distance field.
17265         (hash_scan_set): Update.
17266         (hoist_expr_reaches_here_p): Stop search after max_distance
17267         instructions.
17268         (find_occr_in_bb): New static function.  Use it in ...
17269         (hoist_code): Calculate sizes of basic block before any changes are
17270         done.  Pass max_distance to hoist_expr_reaches_here_p.
17271         (one_code_hoisting_pass): Set doing_code_hoisting_p.
17272
17273         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
17274         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
17275         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
17276         macros.
17277         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
17278         Document.
17279
17280 2010-07-27  Jeff Law  <law@redhat.com>
17281             Maxim Kuvyrkov  <maxim@codesourcery.com>
17282
17283         * gcse.c (compute_transpout, transpout): Remove, move logic
17284         to prune_expressions.
17285         (compute_pre_data): Move pruning of trapping expressions ...
17286         (prune_expressions): ... here.  New static function.
17287         (compute_code_hoist_data): Use it.
17288         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
17289
17290 2010-07-27  Xinliang David Li  <davidxl@google.com>
17291
17292         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
17293         (rewrite_use_address): Adjust iv update position when needed.
17294
17295 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
17296
17297         * dbgcnt.def (hoist_insn): New debug counter.
17298         * gcse.c (hoist_code): Use it.
17299
17300 2010-07-27  Xinliang David Li  <davidxl@google.com>
17301
17302         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
17303         (niter_for_single_dom_exit): Passes additional parameter.
17304         (iv_period): Fix comments.
17305         (may_eliminate_iv): Handles multiple exit loops properly.
17306         (free_tree_niter_desc): New function.
17307         (free_loop_data): Frees up loop iteration descriptors.
17308
17309 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17310
17311         PR target/44542
17312         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
17313         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
17314         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
17315         (expand_one_var): Don't consider DECL_ALIGN for variables for
17316         which expand_one_stack_var_at has been already called.
17317
17318         PR testsuite/44701
17319         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
17320         constraints on IA-64.
17321
17322 2010-07-27  Jie Zhang  <jie@codesourcery.com>
17323
17324         PR target/44290
17325         Revert:
17326         2010-07-23  Jie Zhang  <jie@codesourcery.com>
17327
17328         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17329         false if ! tree_versionable_function_p.
17330
17331 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17332
17333         * dwarf2out.c (add_data_member_location_attribute): Use
17334         add_AT_unsigned instead of add_AT_int if offset is non-negative.
17335
17336 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17337
17338         * postreload.c (try_replace_in_use): New static function.
17339         (reload_combine_recognize_const_pattern): Use it here.  Allow
17340         substituting into a final add insn, and substituting into a memory
17341         reference in an insn that sets the reg.
17342
17343 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17344
17345         * common.opt (o): Add MissingArgError.
17346         * doc/options.texi (MissingArgError): Document.
17347         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
17348         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
17349         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
17350         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
17351         * langhooks.h (struct lang_hooks): Remove missing_argument.
17352         * optc-gen.awk: Handle MissingArgError and output new structure
17353         field initializers.
17354         * opts.c (read_cmdline_option): Use missing_argument_error field
17355         instead of missing_argument langhook.
17356         * opts.h (struct cl_option): Add missing_argument_error field.
17357         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
17358
17359 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17360
17361         PR target/29090
17362         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
17363         Darwin64 ABI, for zero-sized objects.
17364
17365 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
17366
17367         PR target/35491
17368         PR target/29090
17369
17370         Merge from Apple local 4.2.1.
17371         2005-05-11  Stan Shebs  <shebs@apple.com>
17372         Fix 64-bit varargs for Darwin (Radar 4028089).
17373         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
17374         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
17375         Add argument, add case for 8-byte register half-filled with a float.
17376         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
17377         single-precision floats specially.
17378
17379 2010-07-27  Ira Rosen  <irar@il.ibm.com>
17380
17381         PR tree-optimization/44152
17382         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
17383         complex numbers for further check.
17384         (vect_supported_load_permutation_p): Check nodes with
17385         complex numbers.
17386
17387 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
17388
17389         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
17390         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
17391         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
17392         (LANG_HOOKS_INITIALIZER): Add new hooks.
17393         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
17394         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
17395         and complain_wrong_lang_p.  Update init_options prototype.
17396         * c-objc-common.c (c_initialize_diagnostics): First call
17397         c_common_initialize_diagnostics.
17398         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
17399         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
17400         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
17401         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
17402         (hook_uint_void_0): New.
17403         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
17404         (hook_uint_void_0): New.
17405         * opts-common.c (decode_cmdline_option,
17406         decode_cmdline_options_to_array): Also fill in canonical_option field.
17407         * opts.c (complain_wrong_lang): Use langhook to determine whether
17408         to complain instead of special-casing LTO.
17409         (decode_options): Separate lang_mask determination with
17410         option_lang_mask hook from call of init_options hook.
17411         * opts.h (struct cl_decoded_option): Add canonical_option.
17412
17413 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
17414
17415         PR tree-optimization/45083
17416         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
17417
17418 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
17419
17420         * postreload.c (reload_combine_recognize_const_pattern): Move test
17421         for limiting the insn movement to the right scope.
17422
17423         PR rtl-optimization/45051
17424         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
17425         than reg_mentioned_p.
17426
17427 2010-07-26  Richard Henderson  <rth@redhat.com>
17428
17429         PR target/44132
17430         * tree-emutls.c: New file.
17431         * Makefile.in (OBJS-common): Add it.
17432         * tree-pass.h (pass_ipa_lower_emutls): Declare.
17433         * passes.c (init_optimization_passes): Add it.
17434
17435         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
17436         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
17437         * expr.c (emutls_var_address): Delete.
17438         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
17439         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
17440         (emutls_finish): Delete.
17441         * toplev.c (compile_file): Don't call it.
17442         * tree.h (emutls_decl): Delete.
17443         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
17444         (emutls_finish, emutls_finalize_control_var): Delete.
17445         (emutls_object_type): Move to tree-emutls.c.
17446         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
17447         default_emutls_var_fields, get_emutls_object_type,
17448         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
17449         default_emutls_var_init): Likewise.
17450         (get_variable_section): Don't special case emutls.
17451         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
17452         default_elf_select_section, default_unique_section,
17453         default_encode_section_info): Likewise.
17454         * varpool.c (decide_is_variable_needed): Likewise.
17455         * gimple-iterator.c (update_call_edge_frequencies): New
17456         (gsi_insert_on_edge_immediate): Use it.
17457         (gsi_insert_seq_on_edge_immediate): Likewise.
17458         (gsi_commit_one_edge_insert): Likewise.
17459
17460         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
17461         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
17462         (x86_64_elf_unique_section): Likewise.
17463
17464 2010-07-26  Jan Hubicka  <jh@suse.cz>
17465
17466         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
17467         GTY((skip)).
17468
17469 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
17470
17471         * target.def (output_source_filename): New hook.
17472         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
17473         * doc/tm.texi: Regenerate.
17474         * toplev.c (output_file_directive) Remove function.
17475         * toplev.h (output_file_directive) Remove.
17476         * output.h (default_asm_output_source_filename,
17477         output_file_directive): Declare.
17478         * varasm.h (default_asm_output_source_filename,
17479         output_file_directive): New functions.
17480
17481         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
17482         * config/mips/mips-protos.h (mips_output_filename): Remove.
17483         * config/mips/mips.c (mips_output_filename): Make Static.
17484         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
17485
17486 2010-07-26  Richard Guenther  <rguenther@suse.de>
17487
17488         PR tree-optimization/43784
17489         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
17490         if the destination is used by the call.
17491
17492 2010-07-26  Richard Guenther  <rguenther@suse.de>
17493
17494         PR middle-end/45073
17495         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
17496         SSA updating on being in SSA form.
17497
17498 2010-07-26  Richard Guenther  <rguenther@suse.de>
17499
17500         PR middle-end/45056
17501         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
17502
17503 2010-07-26  Richard Guenther  <rguenther@suse.de>
17504
17505         PR tree-optimization/45071
17506         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
17507         adjust op->opcode.
17508
17509 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
17510
17511         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
17512         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
17513         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
17514         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
17515         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
17516         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
17517         save_r31, return_r31, save_interrupt, return_interrupt,
17518         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
17519         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
17520         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
17521         new ABI requirements.
17522         (save_r6_r9, L_callt_save_r6_r9): Remove.
17523         * config/v850/predicates.md (even_reg_operand, disp23_operand,
17524         const_float_1_operand const_float_0_operand): New Predicates.
17525         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
17526         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
17527         * config/v850/t-v850: Update multilibs for new target variants.
17528         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
17529         * config/v850/t-v850e: Likewise.
17530         * config/v850/v850.c (v850_issue_rate): New.
17531         (v850_strict_argument_naming): New.
17532         (function_arg): Modify to generate a different ABI.
17533         (print_operand): Update case 'z' to support float modes.
17534         (output_move_single): Modify to generate appropriate and better
17535         assembly.
17536         (v850_float_z_comparison_operator, v850_select_cc_mode,
17537         v850_float_nz_comparison_operator,  v850_gen_float_compare,
17538         v850_gen_compare): New functions to support comparison of float values.
17539         (ep_memory_offset): Add support for V850E2 targets.
17540         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
17541         (INTERRUPT_REGPARM_NUM): Remove.
17542         (compute_register_save_size): Add extra case to save/restore long call.
17543         (use_prolog_function): New function to support prologue.
17544         (expand_prologue): Add support for V850E2 targets and modified
17545         as per the current ABI requirements.
17546         (expand_epilogue): Likewise.
17547         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
17548         (construct_save_jarl): Likewise.
17549         (construct_dispose_instruction): Update as per the current ABI
17550         requirements.
17551         (construct_prepare_instruction): Likewise.
17552         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
17553         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
17554         (CPP_SPEC): Updated to support v850e2 targets.
17555         (STRICT_ALIGNMENT): Modified.
17556         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
17557         (FIXED_REGISTERS): Likewise.
17558         (CALL_USED_REGISTERS): Likewise.
17559         (CONDITIONAL_REGISTER_USAGE): Updated.
17560         (HARD_REGNO_MODE_OK): Updated.
17561         (reg_class): Updated to add even registers.
17562         (REG_CLASS_NAMES): Likewise.
17563         (REG_CLASS_CONTENTS): Likewise.
17564         (REGNO_REG_CLASS): Updated for CC registers.
17565         (REG_CLASS_FROM_LETTER): Added support for even registers.
17566         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
17567         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
17568         ARG_POINTER_REGNUM): Updated.
17569         (FUNCTION_ARG_ADVANCE): Define.
17570         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
17571         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
17572         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
17573         (GO_IF_LEGITIMATE_ADDRESS): Updated.
17574         (SELECT_CC_MODE): Define.
17575         (REGISTER_NAMES): Updated to add psw and fcc registers.
17576         (ADDITIONAL_REGISTER_NAMES): Updated.
17577         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
17578         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
17579         * config/v850/v850.md (define_constants): Define new constants.
17580         (type): Update store,bit1,macc,div,fpu and single attributes.
17581         (cpu): New attribute.
17582         (cc): Add set_z attribute.
17583         (unsign23byte_load, sign23byte_load, unsign23hword_load,
17584         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
17585         23word_store): New instructions for 23-bit displacement load and store.
17586         (movqi_internal, movhi_internal): Update the attributes.
17587         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
17588         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
17589         the attributes.
17590         (v850_tst1): Modified using CC_REGNUM.
17591         (tstsi): Remove.
17592         (cmpsi): Modified as define_expand from define_insn.
17593         (cmpsi_insn, cmpsf, cmpdf): New instructions.
17594         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
17595         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
17596         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
17597         one_cmplsi2): Clobber the CC_REGNUM register.
17598         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
17599         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
17600         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
17601         (setf_insn, set_z_insn, set_nz_insn): New instructions for
17602         v850e2v3 target.
17603         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
17604         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
17605         targets.
17606         (sasf_1, sasf_2): Remove.
17607         (sasf): New instruction.
17608         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
17609         targets. CC_REGNUM register is clobbered and attributes are
17610         updated.
17611         (branch_z_normal, branch_z_invert, branch_nz_normal,
17612         branch_nz_invert): New branch related instructions.
17613         (jump): Updated the attributes.
17614         (switch): Update to support new targets. CC_REGNUM register is
17615         clobbered and attributes are updated.
17616         (call_internal_short, call_internal_long, call_value_internal_short,
17617         call_value_internal_long): Updated the attributes.
17618         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
17619         clobbered and attributes are updated.
17620         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
17621         Update to support new targets. CC_REGNUM register is clobbered.
17622         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
17623         instructions.
17624         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
17625         are updated.
17626         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
17627         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
17628         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
17629         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
17630         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
17631         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
17632         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
17633         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
17634         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
17635         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
17636         point instructions defined for V850e2v3 target.
17637         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
17638         Add support for V850E2 targets and CC_REGNUM register is clobbered.
17639         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
17640         support for new targets.
17641         * config/v850/v850-modes.def: New file.
17642         * config/v850/v850.opt(mstrict-align): Remove.
17643         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
17644         mv850e2v3): New command line options for V850.
17645         * config.gcc: Update the newly added files.
17646         * doc/invoke.texi: Update the newly added command line options for
17647         V850 target.
17648
17649 2010-07-26  Richard Guenther  <rguenther@suse.de>
17650
17651         PR tree-optimization/45052
17652         * ipa-pure-const.c (check_stmt): Check volatileness.
17653
17654 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17655
17656         PR target/44707
17657         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
17658         * config/sparc/sparc.c: Include reload.h.
17659         (legitimize_tls_address): Rename into...
17660         (sparc_legitimize_tls_address): ...this.
17661         (legitimize_pic_address): Rename into...
17662         (sparc_legitimize_pic_address): ...this.
17663         (sparc_expand_move): Adjust to above renaming.
17664         (sparc_tls_referenced_p): Likewise.
17665         (sparc_legitimize_tls_address): Likewise.
17666         (sparc_legitimize_pic_address): Likewise.
17667         (sparc_legitimize_address): Likewise.
17668         (sparc_output_mi_thunk): Likewise.
17669         (sparc_legitimize_reload_address): New global function.  Recognize
17670         (lo_sum (high ...) ...) patterns generated by earlier passes.
17671         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
17672
17673 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
17674
17675         PR target/44484
17676         * config/sparc/predicates.md (memory_reg_operand): Delete.
17677         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
17678         (*sync_compare_and_swap): Encode the address form in the pattern.
17679         (*sync_compare_and_swapdi_v8plus): Likewise.
17680
17681 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
17682
17683         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
17684         Streamline paragraph on compatibility with the system compiler.
17685
17686 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
17687
17688         PR middle-end/45035
17689         * alias.c (true_dependence_1): Fix thinko in merge of old
17690         true_dependence and canon_true_dependence.
17691
17692 2010-07-23  Jan Hubicka  <jh@suse.cz>
17693
17694         * lto-streamer-out.c (write_symbol): Fix visibilities of external
17695         references.
17696
17697 2010-07-23  Le-Chun Wu  <lcwu@google.com>
17698
17699         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
17700         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
17701         and an unnecessary assignment.
17702         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
17703         self-assign warning.
17704         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
17705         unnecessary self-init.
17706
17707 2010-07-23  Richard Guenther  <rguenther@suse.de>
17708
17709         PR lto/43071
17710         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
17711         for -flto and -fwhopr.
17712
17713 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
17714
17715         PR target/41943
17716         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
17717         (stmp-int-hdrs): Prefix/postfix headers by include_next.
17718         * config.gcc (user_headers_inc_next_pre): New.
17719         (user_headers_inc_next_post): Likewise.
17720         (*-w64-mingw*): Use for float.h post-fixing, and for
17721         stddef.h/stdarg.h pre-fixing by include_next.
17722         * configure.ac (user_headers_inc_next_post): New.
17723         (user_headers_inc_next_pre): New.
17724         * configure: Regenerated.
17725
17726 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17727
17728         * configure.ac: Don't disable TLS on Solaris 8/9 by default
17729         Set tga_func for Solaris 2/x86 resp. SPARC.
17730         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
17731         (LIB_THREAD_LDFLAGS_SPEC): Define.
17732         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
17733         * configure: Regenerate.
17734         * config.in: Regenerate.
17735         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
17736         -pthread, -threads, LIB_TLS_SPEC with -pthread.
17737         * doc/install.texi (Specific, *-*-solaris2*): Document use of
17738         alternate thread libraries on Solaris 8.
17739         Document TLS patch requirements.
17740         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
17741         Document tls.
17742
17743         PR target/18788
17744         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
17745         -shared.
17746
17747 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
17748
17749         * tree.h (struct tree_base): Add nameless_flag bitfield.
17750         (TYPE_NAMELESS, DECL_NAMELESS): Define.
17751         * omp-low.c (create_omp_child_function, scan_omp_parallel,
17752         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
17753         DECL_ARTIFICIAL where needed.
17754         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
17755         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
17756         has DECL_NAMELESS set.
17757
17758 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17759
17760         PR tree-optimization/44915
17761         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
17762         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
17763         (analyze_function): Likewise.
17764
17765 2010-07-23  Martin Jambor  <mjambor@suse.cz>
17766
17767         PR tree-optimization/44914
17768         * tree-sra.c (sra_modify_function_body): Return true if CFG was
17769         changed, add purging dead eh edges.
17770         (ipa_sra_modify_function_body): Return true if CFG was changed,
17771         simplify purging dead eh edges.
17772         (modify_function): Return true if CFG was changed.
17773         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
17774         was changed.
17775         (ipa_early_sra): Likewise.
17776
17777 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17778
17779         PR target/44290
17780         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
17781         if "naked".
17782         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
17783         false if ! tree_versionable_function_p.
17784
17785 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
17786
17787         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
17788         * ipa-pure-const.c (special_builtlin_state): Remove
17789         BUILT_IN_ARGS_INFO case.
17790         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
17791         * builtins.c (expand_builtin): Likewise.
17792         (expand_builtin_args_info): Remove.
17793         * doc/tm.texi (__builtin_args_info): Remove.
17794         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
17795         * doc/tm.text.in: Likewise.
17796
17797 2010-07-23  Richard Guenther  <rguenther@suse.de>
17798
17799         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
17800         (lto_symtab_merge_decls_2): Likewise.
17801         * tree-ssa.c (useless_type_conversion_p): Likewise.
17802         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17803         * gimple.c (gtc_visited2, gtc_ob2): Remove.
17804         (struct type_pair_d): Make same_p an array indexed by mode.
17805         Update comment.
17806         (lookup_type_pair): Update initialization.
17807         (struct sccs): Adjust same_p type.
17808         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
17809         Adjust.
17810         (print_gimple_types_stats): Likewise.
17811         * gimple.h (enum gtc_mode): New.
17812         (gimple_types_compatible_p): Adjust prototype.
17813
17814 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
17815
17816         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
17817         again after processing insn.
17818
17819 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17820
17821         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
17822         proper words when !tree_versionable_function_p.
17823
17824 2010-07-23  Richard Guenther  <rguenther@suse.de>
17825
17826         PR tree-optimization/45037
17827         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
17828
17829 2010-07-23  Jie Zhang  <jie@codesourcery.com>
17830
17831         * doc/extend.texi: Remove IP2K from the description of naked attribute.
17832         Add MCORE instead.
17833
17834 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17835
17836         PR lto/44992
17837         * lto-opts.c (lto_write_options): Add NULL file_data argument to
17838         lto_get_section_name.
17839         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
17840         * lto-streamer-out.c (produce_asm): Likewise.
17841         (copy_function): Likewise.
17842         (produce_symtab): Likewise.
17843         (produce_asm_for_decls): Likewise.
17844         * lto-streamer.c (lto_get_section_name): Add file_data argument.
17845         Rewrite to add random postfix to LTO sections.
17846         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
17847         (lto_get_section_name): Add file_data argument to prototype.
17848
17849 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17850
17851         * lto-section-in.c (lto_section_name): Synchronize names
17852         with lto_get_section_name.
17853
17854 2010-07-10  Andi Kleen  <ak@linux.intel.com>
17855
17856         * lto-opts.c (lto_read_file_options): Check for missing section.
17857
17858 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17859
17860         * ira.c (check_allocation): Correctly handle the case where an allocno
17861         with two objects was allocated to a single reg.
17862
17863 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
17864
17865         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
17866         (is_widening_mult_p): Likewise.
17867         (convert_to_widen): Use them.
17868         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
17869         well as integer ones.
17870
17871 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
17872
17873         * alias.c (true_dependence_1): New function, merged version of
17874         true_dependence and canon_true_dependence.
17875         (true_dependence): Simplify.
17876         (canon_true_dependence): Simplify.
17877
17878 2010-07-22  Richard Henderson  <rth@redhat.com>
17879
17880         PR target/45027
17881         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
17882         of V4SFmode for the SSE saves; increase stack alignment if needed.
17883         (ix86_gimplify_va_arg): Don't increase stack alignment here.
17884
17885 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
17886
17887         PR bootstrap/45028
17888         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
17889         call cprop_find_used_regs again via note_uses.
17890
17891 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
17892
17893         * alias.c (get_alias_set): Fix formatting issues.
17894
17895 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
17896
17897         PR middle-end/44878
17898         * stmt.c (expand_value_return):  Call promote_function_mode with
17899         a for_return argument of 2 when returning by reference.
17900
17901 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
17902
17903         PR debug/45024
17904         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
17905         unit DIE if we can find the scope DIE.
17906
17907 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17908
17909         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
17910         changed.  Initialize OBJECT_SUBWORD.
17911         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
17912         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
17913         all callers changed.
17914         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
17915         (finish_allocno): Likewise.
17916         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
17917         (remove_low_level_allocnos): Likewise.
17918         (update_bad_spill_attribute): Likewise.
17919         (setup_min_max_allocno_live_range_point): Likewise.
17920         (sort_conflict_id_map): Likewise.
17921         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
17922         (ior_hard_reg_conflicts): New function.
17923         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
17924         (compress_conflict_vecs): Iterate over objects, not allocnos.
17925         (ira_add_live_range_to_object): New function.
17926         (object_range_compare_func): Renamed from allocno_range_compare_func.
17927         All callers changed.
17928         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
17929         subobjects, widen the min/max range of the lowest-order object to
17930         potentially include all other such low-order objects.
17931         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
17932         (check_allocation): Likewise.  Use more fine-grained tests for register
17933         conflicts.
17934         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
17935         allocno subobjects.
17936         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
17937         choices about which bits to set in each set.  Don't use
17938         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
17939         using the multiple sets we computed.
17940         (push_allocno_to_stack): Iterate over allocno subobjects.
17941         (all_conflicting_hard_regs_coalesced): New static function.
17942         (setup_allocno_available_regs_num): Use it.
17943         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
17944         subobjects.
17945         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
17946         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
17947         by ALLOCNO_NUM_OBJECTS.
17948         (calculate_spill_cost): Likewise.
17949         (color_pass): Express if statement in a more normal way.
17950         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
17951         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
17952         (setup_slot_coalesced_allocno_live_ranges): Likewise.
17953         (allocno_reload_assign): Likewise.
17954         (ira_reassign_pseudos): Likewise.
17955         (fast_allocation): Likewise.
17956         * ira-conflicts.c (build_conflict_bit_table): Likewise.
17957         (print_allocno_conflicts): Likewise.
17958         (ira_build_conflicts): Likewise.
17959         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
17960         callers changed.  Test subword 0 of each allocno for conflicts.
17961         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
17962         callers changed.  Iterate over allocno subobjects.
17963         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
17964         * ira-int.h (struct ira_allocno): New member: num_objects.
17965         Rename object to objects and change it into an array.
17966         (ALLOCNO_OBJECT): Add new argument N.
17967         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
17968         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
17969         (ior_hard_reg_conflicts): Declare.
17970         (ira_add_live_range_to_object): Declare.
17971         (ira_allocno_object_iterator): New.
17972         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
17973         (FOR_EACH_ALLOCNO_OBJECT): New macro.
17974         * ira-lives.c (objects_live): Renamed from allocnos_live; all
17975         uses changed.
17976         (allocnos_processed): New sparseset.
17977         (make_object_born): Renamed from make_allocno_born; take an
17978         ira_object_t argument.  All callers changed.
17979         (make_object_dead): Renamed from make_allocno_dead; take an
17980         ira_object_t argument.  All callers changed.
17981         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
17982         All callers changed.
17983         (mark_pseudo_regno_live): Iterate over allocno subobjects.
17984         (mark_pseudo_regno_dead): Likewise.
17985         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
17986         functions.
17987         (mark_ref_live): Detect subword accesses and call
17988         mark_pseudo_regno_subword_live as appropriate.
17989         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
17990         (process_bb_nodes_live): Deal with object-related updates first; set
17991         and test bits in allocnos_processed to avoid computing allocno
17992         statistics more than once.
17993         (create_start_finish_chains): Iterate over objects, not allocnos.
17994         (print_object_live_ranges): New function.
17995         (print_allocno_live_ranges): Use it.
17996         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
17997         and objects_live.
17998
17999 2010-07-22  Richard Guenther  <rguenther@suse.de>
18000
18001         PR lto/42451
18002         * gimple.c (gtc_next_dfs_num): New global.
18003         (struct sccs): Make value a union, add integer same_p member.
18004         (gtc_visit): New function.
18005         (gimple_types_compatible_p_1): New function, split out from ...
18006         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
18007         (iterative_hash_gimple_type): Adjust for sccs change.
18008
18009 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18010
18011         PR tree-optimization/44891
18012         * tree-sra.c: Include gimple-pretty-print.h.
18013         (replace_uses_with_default_def_ssa_name): Renamed to
18014         get_repl_default_def_ssa_name, return the new SSA name instead of
18015         replacing the old one.
18016         (sra_modify_assign): Dump a message when removing a load, if the LHS
18017         is an SSA_NAME, do not do any propagation, just set the RHS to a
18018         default definition SSA NAME, type convert if necessary.
18019         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
18020
18021 2010-07-22  Richard Guenther  <rguenther@suse.de>
18022
18023         PR tree-optimization/45017
18024         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
18025         TYPE_PRECISION of integral types in addition to size.
18026
18027 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
18028
18029         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
18030         when no C library is specified.
18031
18032 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18033
18034         * ipa-prop.h (struct ipa_node_params): Updated comment.
18035         (struct ipa_edge_args): Likewise.
18036         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
18037
18038 2010-07-22  Martin Jambor  <mjambor@suse.cz>
18039
18040         * cgraphunit.c (verify_edge_count_and_frequency): New function.
18041         (verify_cgraph_node): Verify frequencies of indirect edges.
18042         * tree-inline.c (tree_function_versioning): Update frequencies of
18043         indirect edges.
18044
18045 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18046
18047         PR target/43698
18048         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
18049         Set *arm_rev to be predicable.
18050
18051 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18052
18053         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
18054         (LINK_COMMAND_SPEC_A): New.
18055         (DSYMUTIL): New.
18056         (DSYMUTIL_SPEC): New.
18057         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
18058         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
18059
18060 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
18061
18062         * calls.c (load_register_parameters): Move check for zero
18063         sized items so that only the call to
18064         mem_overlaps_already_clobbered_arg_p () is protected.
18065
18066 2010-07-22  Jan Hubicka  <jh@suse.cz>
18067
18068         * ipa-pure-const.c (varying_state): Break out from ...
18069         (get_function_state): ... here; always return varying_state
18070         when state would be NULL otherwise.
18071         (remove_node_data): Do not free varying state.
18072
18073 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
18074
18075         PR bootstrap/44970
18076         PR middle-end/45009
18077         * postreload.c: Include "target.h".
18078         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
18079         into account.
18080         (fixup_debug_insns): Don't copy the rtx.
18081         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
18082         Don't copy when replacing.  Call fixup_debug_insns in the case where
18083         we merged one add with another.
18084         (reload_combine_recognize_pattern): Fail if there aren't any uses.
18085         Try harder to determine whether we're picking a valid index register.
18086         Don't set store_ruid for an insn we're going to scan in the
18087         next iteration.
18088         (reload_combine): Remove unused code.
18089         (reload_combine_note_use): When updating use information for
18090         an old insn, ignore a use that occurs after store_ruid.
18091         * Makefile.in (postreload.o): Update dependencies.
18092
18093         * function.c (record_hard_reg_sets): Restrict the previous change
18094         to cases where the incoming nominal mode is the same as the
18095         incoming promoted mode and everything happens in MODE_INT.
18096
18097 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18098
18099         PR debug/45015
18100         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
18101         ASM_OPERANDS_OUTPUT_IDX.
18102         (adjust_insn): For inline asm with multiple sets ensure first
18103         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
18104         the insn.
18105
18106 2010-07-21  Richard Henderson  <rth@redhat.com>
18107
18108         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
18109         comparison for avoiding xmm register saves.  Emit the xmm register
18110         saves explicitly.
18111         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
18112         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
18113         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
18114         Remove patterns and the associated splitters.
18115
18116 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
18117
18118         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
18119         and imagine parts of a complex, so that they can have the same
18120         base and fall into the same group.
18121
18122 2010-07-21  Richard Guenther  <rguenther@suse.de>
18123
18124         PR lto/45018
18125         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
18126         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
18127         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
18128
18129 2010-07-21  Martin Jambor  <mjambor@suse.cz>
18130
18131         PR tree-optimization/44900
18132         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
18133         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
18134
18135 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
18136
18137         PR middle-end/44738
18138         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
18139
18140 2010-07-21  Richard Guenther  <rguenther@suse.de>
18141
18142         PR middle-end/45013
18143         * tree-ssa.c (useless_type_conversion_p): Dispatch to
18144         gimple_types_compatible_p only when in lto.
18145         * gimple.c (gimple_types_compatible_p): Use canonical types
18146         to speed up comparison.
18147
18148 2010-07-21  Richard Guenther  <rguenther@suse.de>
18149
18150         * tree-flow.h (referenced_var): Move define ...
18151         * tree-flow-inline.h (referenced_var): ... here as an inline
18152         function.  Assert here ...
18153         * tree-dfa.c (referenced_var_lookup): ... instead of here.
18154         * tree-ssa.c (maybe_optimize_var): Check if the variable
18155         is in referenced vars.
18156         (execute_update_addresses_taken): Remove old broken check.
18157         * gimple-pretty-print.c (pp_points_to_solution): Use
18158         referenced_var_lookup.
18159         * tree-into-ssa.c (dump_decl_set): Likewise.
18160
18161 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
18162
18163         PR debug/45003
18164         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
18165         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
18166         ZERO_EXTEND here.
18167
18168 2010-07-20  Richard Henderson  <rth@redhat.com>
18169
18170         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
18171
18172 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18173
18174         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
18175         computing the sum of the stack pointer and a large constant.
18176         * config/arm/constraints.md (M): Remove superfluous parentheses.
18177         (Pc): New constraint.
18178
18179 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18180
18181         PR debug/45006
18182         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
18183         operand's type if exp is tcc_unary class tree.
18184
18185 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18186
18187         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
18188         Reverse sense of if_then_else condition.
18189
18190 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
18191
18192         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
18193         * config/rs6000/rs6000.c (rs6000_override_options): Set
18194         rs6000_block_move_inline_limit appropriately.
18195         (expand_block_move): Use rs6000_block_move_inline_limit.
18196         * doc/invoke.texi (mblock-move-inline-limit): Document.
18197
18198 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
18199
18200         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
18201         FROM and TO.  All callers changed.  Don't look for tracked uses,
18202         just scan the RTL for DEBUG_INSNs and substitute.
18203         (reload_combine_recognize_pattern): Call fixup_debug_insns.
18204         (reload_combine): Ignore DEBUG_INSNs.
18205
18206 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
18207
18208         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
18209         depth to 8 from 5.
18210
18211         PR debug/45003
18212         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
18213         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
18214         instead of the result's type.
18215
18216 2010-07-20  Richard Guenther  <rguenther@suse.de>
18217
18218         PR tree-optimization/44977
18219         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
18220         SSA form.
18221
18222 2010-07-20  Richard Guenther  <rguenther@suse.de>
18223
18224         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
18225         (lto_symtab_merge_decls_2): Likewise.
18226         * gimple.h (gimple_types_compatible_p): Declare.
18227         * gimple.c (gimple_queue_type_fixup): Remove.
18228         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
18229         (gimple_compatible_complete_and_incomplete_type_p): New function.
18230         (gimple_types_compatible_p): Adjust.
18231         (gimple_register_type): Remove type fixup code.
18232         (print_gimple_types_stats): Adjust.
18233         (free_gimple_type_tables): Likewise.
18234         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
18235         * tree-ssa.c (useless_type_conversion_p): Likewise.
18236
18237 2010-07-20  Richard Guenther  <rguenther@suse.de>
18238
18239         PR middle-end/44971
18240         PR middle-end/44988
18241         * tree-ssa.c (maybe_optimize_var): New function split out from ...
18242         (execute_update_addresses_taken): ... here.
18243         (non_rewritable_mem_ref_base): Likewise.
18244         (execute_update_addresses_taken): Do not iterate over all referenced
18245         vars but just all local decls and parms.
18246         Properly check call and asm arguments and rewrite call arguments.
18247
18248 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
18249
18250         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
18251         to top level.
18252         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
18253         definitions ...
18254         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
18255         New macro.
18256         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
18257
18258 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
18259
18260         * gengtype.c (start_root_entry): New function, split out from
18261         write_root.  Check whether V is null and raise an error if so.
18262         (write_field_root): Check for V being null.  Don't raise an error here;
18263         set V to null instead.
18264         (write_root): Update comment above function.  Use start_root_entry.
18265
18266 2010-07-19  Xinliang David Li  <davidxl@google.com>
18267
18268         PR testsuite/44932
18269         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
18270         def edges.
18271         (find_uninit_use): Add dump.
18272         (is_use_properly_guarded): Ditto.
18273         (warn_uninitialized_phi): Ditto.
18274         (execute_late_warn_uninitialized): Ditto.
18275
18276 2010-07-19  Richard Guenther  <rguenther@suse.de>
18277
18278         PR middle-end/44941
18279         * expr.c (emit_block_move_hints): Move zero size check first.
18280         Move asserts to more useful places.
18281         * calls.c (load_register_parameters): Check for zero size.
18282
18283 2010-07-19  Richard Henderson  <rth@redhat.com>
18284
18285         * tree-optimize.c (execute_all_early_local_passes): New.  Change
18286         cgraph_state here ...
18287         (execute_early_local_optimizations): ... not here.  Remove.
18288         (pass_early_local_passes, pass_all_early_optimizations): Update.
18289
18290 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
18291
18292         * postreload.c (reload_combine_closest_single_use): Ignore the
18293         number of uses for DEBUG_INSNs.
18294         (fixup_debug_insns): New static function.
18295         (reload_combine_recognize_const_pattern): Use it.  Don't let the
18296         main loop be affected by DEBUG_INSNs.
18297         Really disallow moving adds past a jump insn.
18298         (reload_combine_recognize_pattern): Don't update use_ruid here.
18299         (reload_combine_note_use): Do it here.
18300         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
18301
18302 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
18303
18304         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
18305         of a loop.
18306         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
18307
18308 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
18309
18310         * config/i386/darwin.h: Define darwin_emit_branch_islands.
18311         (TARGET_MACHO_BRANCH_ISLANDS): New.
18312         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
18313         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
18314         default value.
18315         * config/i386/i386.c (output_pic_addr_const): Do not emit
18316         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
18317         (x86_output_mi_thunk): Adjust symbol creation.
18318         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
18319         Remove out of date comment.
18320         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
18321         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18322         (DARWIN_GENERATE_ISLANDS): Ditto.
18323         (output_call):  Do not emit branch islands unless
18324         darwin_emit_branch_islands is set.
18325         * config/darwin.c: Declare darwin_emit_branch_islands.
18326         (machopic_indirect_data_reference): Do not emit unless
18327         darwin_emit_branch_islands is set.
18328         (darwin_override_options): Set darwin_emit_branch_islands
18329         where it is needed.
18330         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
18331
18332 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18333
18334         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18335         sse_runtime, sse2_runtime.
18336
18337 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
18338
18339         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
18340         low half of a single-register SCmode return value before ORing
18341         it with the high half.
18342         * config/mips/mips16.S (MERGE_GPRf): Likewise.
18343
18344 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18345
18346         PR target/44805
18347         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
18348         on all targets.
18349
18350 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
18351
18352         PR target/42235
18353         * postreload.c (reload_cse_move2add): Return bool, true if anything.
18354         changed.  All callers changed.
18355         (move2add_use_add2_insn): Likewise.
18356         (move2add_use_add3_insn): Likewise.
18357         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
18358         reload_combine.
18359         (RELOAD_COMBINE_MAX_USES): Bump to 16.
18360         (last_jump_ruid): New static variable.
18361         (struct reg_use): New members CONTAINING_MEM and RUID.
18362         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
18363         (reload_combine_split_one_ruid, reload_combine_split_ruids,
18364         reload_combine_purge_insn_uses, reload_combine_closest_single_use
18365         reload_combine_purge_reg_uses_after_ruid,
18366         reload_combine_recognize_const_pattern): New static functions.
18367         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
18368         is true for our reg and that we have available index regs.
18369         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
18370         callers changed.  Use them to initialize fields in struct reg_use.
18371         (reload_combine): Initialize last_jump_ruid.  Be careful when to
18372         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
18373         Call reload_combine_recognize_const_pattern.
18374         (reload_combine_note_store): Update REAL_STORE_RUID field.
18375
18376 2010-07-16  Jason Merrill  <jason@redhat.com>
18377
18378         * Makefile.in (opts-common.o): Depend on options.h.
18379
18380 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18381
18382         * tree.c (build_common_builtin_nodes): Use build_function_type_list
18383         instead of build_function_type.
18384         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
18385         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
18386
18387 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
18388
18389         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
18390         do all the work.
18391         (rs6000_emit_int_cmove): Use function pointers for insn generation.
18392         Don't force values into registers unnecessarily.
18393         (output_isel): Assert that we're not given conditions we can't handle.
18394         Delete corresponding code.
18395         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
18396         scc_comparison_operator constraint.  Permit 0 for the consequent
18397         operand.  Permit any GPR for the alternative operand.
18398         (isel_unsigned_<mode>): Likewise.
18399
18400 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
18401
18402         PR target/44942
18403         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
18404         argument to const_tree.
18405         * config/i386/i386.c (function_arg_advance): If padding needs to be
18406         inserted before argument, increment cum->words by number of padding
18407         words as well.
18408         (contains_aligned_value_p): Change argument to const_tree.
18409         (ix86_function_arg_boundary): Change second argument to const_tree.
18410
18411 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
18412
18413         PR target/42235
18414         * function.c (record_hard_reg_sets): New static function.
18415         (assign_parm_setup_reg): If an optab for extending exists and the
18416         generated code clobbbers no hard regs, emit the insn directly and
18417         create a REG_EQUIV note.
18418
18419 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18420
18421         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
18422         TREE_CHAIN.
18423         * c-typeck.c (push_init_level): Likewise.
18424         (process_init_element): Likewise.
18425
18426 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
18427
18428         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
18429         (integer_three_node): Add.
18430         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
18431         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
18432         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
18433         of call build_int_cst.
18434         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
18435         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
18436         (find_interesting_uses_address): Ditto.
18437         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
18438         * tree-eh.c (lower_eh_constructs_2): Ditto.
18439         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
18440         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
18441         * expmed.c (expand_divmod): Ditto.
18442         * tree-mudflap.c (mx_register_decls): Ditto.
18443         * varasm.c (array_size_for_constructor): Ditto.
18444         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
18445         * c-parser.c (c_parser_postfix_expression): Ditto.
18446
18447 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18448
18449         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
18450         New static variables.
18451         (reload_combine_recognize_pattern): New static function, broken out
18452         of reload_combine.
18453         (reload_combine): Use it.  Only initialize first_index_reg and
18454         last_index_reg once.
18455
18456 2010-07-15  Richard Henderson  <rth@redhat.com>
18457
18458         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
18459         when done.
18460
18461 2010-07-15  Jan Hubicka  <jh@suse.cz>
18462
18463         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
18464         comdats for broken gold.
18465         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
18466
18467 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18468
18469         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
18470
18471 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
18472
18473         * tree.h (DECL_CHAIN): Define.
18474         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
18475         * c-decl.c: Likewise.
18476         * c-parser.c: Likewise.
18477         * c-typeck.c: Likewise.
18478         * cfgexpand.c: Likewise.
18479         * cgraph.c: Likewise.
18480         * cgraphunit.c: Likewise.
18481         * combine.c: Likewise.
18482         * config/alpha/alpha.c: Likewise.
18483         * config/arm/arm.c: Likewise.
18484         * config/frv/frv.c: Likewise.
18485         * config/i386/i386.c: Likewise.
18486         * config/i386/winnt-cxx.c: Likewise.
18487         * config/ia64/ia64.c: Likewise.
18488         * config/iq2000/iq2000.c: Likewise.
18489         * config/mep/mep.c: Likewise.
18490         * config/mips/mips.c: Likewise.
18491         * config/pa/som.h: Likewise.
18492         * config/rs6000/rs6000.c: Likewise.
18493         * config/s390/s390.c: Likewise.
18494         * config/sh/sh.c: Likewise.
18495         * config/sh/symbian-cxx.c: Likewise.
18496         * config/sparc/sparc.c: Likewise.
18497         * config/spu/spu.c: Likewise.
18498         * config/stormy16/stormy16.c: Likewise.
18499         * config/vxworks.c: Likewise.
18500         * config/xtensa/xtensa.c: Likewise.
18501         * coverage.c: Likewise.
18502         * dbxout.c: Likewise.
18503         * dwarf2out.c: Likewise.
18504         * emit-rtl.c: Likewise.
18505         * expr.c: Likewise.
18506         * function.c: Likewise.
18507         * gimple-low.c: Likewise.
18508         * gimple-pretty-print.c: Likewise.
18509         * gimplify.c: Likewise.
18510         * integrate.c: Likewise.
18511         * ipa-inline.c: Likewise.
18512         * ipa-prop.c: Likewise.
18513         * ipa-split.c: Likewise.
18514         * ipa-struct-reorg.c: Likewise.
18515         * ipa-type-escape.c: Likewise.
18516         * langhooks.c: Likewise.
18517         * lto-cgraph.c: Likewise.
18518         * omp-low.c: Likewise.
18519         * stor-layout.c: Likewise.
18520         * tree-cfg.c: Likewise.
18521         * tree-complex.c: Likewise.
18522         * tree-dfa.c: Likewise.
18523         * tree-dump.c: Likewise.
18524         * tree-inline.c: Likewise.
18525         * tree-mudflap.c: Likewise.
18526         * tree-nested.c: Likewise.
18527         * tree-object-size.c: Likewise.
18528         * tree-pretty-print.c: Likewise.
18529         * tree-sra.c: Likewise.
18530         * tree-ssa-live.c: Likewise.
18531         * tree-ssa-loop-niter.c: Likewise.
18532         * tree-ssa-math-opts.c: Likewise.
18533         * tree-ssa-reassoc.c: Likewise.
18534         * tree-ssa-sccvn.c: Likewise.
18535         * tree-ssa-structalias.c: Likewise.
18536         * tree-tailcall.c: Likewise.
18537         * tree-vrp.c: Likewise.
18538         * tree.c: Likewise.
18539         * var-tracking.c: Likewise.
18540         * varasm.c: Likewise.
18541
18542 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18543
18544         PR target/44877
18545         * config/spu/spu.c (spu_expand_builtin_1): Allow references
18546         (as well as pointers) as argument to mask_for_load builtins.
18547
18548 2010-07-15  Richard Guenther  <rguenther@suse.de>
18549
18550         PR tree-optimization/44946
18551         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
18552         with accessing only padding properly.
18553
18554 2010-07-15  Jan Hubicka  <jh@suse.cz>
18555
18556         * ipa.c (function_and_variable_visibility): Variables marked as used
18557         should not be localized.
18558
18559 2010-07-15  Jan Hubicka  <jh@suse.cz>
18560
18561         * cgraph.c: Include lto-streamer.h
18562         (change_decl_assembler_name): Work when assembler name hash is at place.
18563         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
18564         be sure to rename it to avoid name clash.
18565         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
18566         Localize hidden symbols only when locally defined.
18567
18568 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
18569
18570         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
18571
18572 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
18573             Kevin F. Quinn  <kevquinn@gentoo.org>
18574
18575         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
18576         * common.opt: Add -Wtrampolines.
18577         * doc/invoke.texi: Add -Wtrampolines.
18578
18579 2010-07-15  Jie Zhang  <jie@codesourcery.com>
18580
18581         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
18582         cortex_a8_issue_ls.
18583
18584 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
18585
18586         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
18587         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
18588
18589 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18590
18591         * config/spu/spu.c (reg_names): Remove prototype.
18592         (call_used_regs): Likewise.
18593
18594 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
18595
18596         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
18597         "unused" with attribute "used".
18598         (__JCR_END__): Likewise.
18599         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
18600         "used" attribute.
18601         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
18602
18603 2010-07-14  Richard Guenther  <rguenther@suse.de>
18604
18605         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
18606         (maybe_fixup_decls): Likewise.
18607         (input_gimple_stmt): Do not fixup anything.
18608         * lto-streamer-out.c (output_gimple_stmt): Make sure all
18609         non-automatic variable uses are wrapped inside a MEM_REF.
18610
18611 2010-07-14  Richard Henderson  <rth@redhat.com>
18612
18613         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
18614         for functions.
18615         * varasm.c (assemble_variable): Remove early exit for functions;
18616         assert that we're given a variable.
18617
18618 2010-07-14  Jie Zhang  <jie@codesourcery.com>
18619
18620         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
18621         cortex_a8_default when neon_type is not none.
18622
18623 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18624
18625         * lower-subreg.c (subreg_context): New static bitmap.
18626         (decompose_multiword_subregs): Allocate and free it.
18627         (find_decomposable_subregs): Set a bit in it for a register that
18628         occurs in a subreg that changes mode but not size.
18629         (can_decompose_p): Test it instead of non_decomposable_context.
18630
18631 2010-07-14  Richard Guenther  <rguenther@suse.de>
18632
18633         PR tree-optimization/44824
18634         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
18635         is_gimple_mem_ref_addr.
18636         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
18637         non-decl_address_invariant_p addresses.
18638
18639 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18640
18641         * reload.c (find_reloads): Revert code to penalize small register
18642         classes that was brought in with the IRA merge.
18643
18644 2010-07-14  Richard Guenther  <rguenther@suse.de>
18645
18646         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
18647         as base of ARRAY_REFs.
18648
18649 2010-07-14  Richard Guenther  <rguenther@suse.de>
18650
18651         PR middle-end/44930
18652         * tree-pretty-print.c (do_niy): Do not print a newline.
18653
18654 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
18655
18656         * ira-int.h (struct ira_object): New.
18657         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
18658         (struct ira_allocno): Remove members min, max,
18659         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
18660         conflict_allocnos_num and conflict_vec_p.  Add new member object.
18661         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
18662         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
18663         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
18664         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
18665         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
18666         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
18667         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
18668         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
18669         an ira_object_t rather than ira_allocno_t.  All uses changed.
18670         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18671         contains a vector of ira_object_t; all uses changed.
18672         (ira_objects_num): Declare variable.
18673         (ira_create_allocno_object): Declare function.
18674         (ira_conflict_vector_profitable_p): Adjust prototype.
18675         (ira_allocate_conflict_vec): Renamed from
18676         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
18677         (ira_allocate_object_conflicts): Renamed from
18678         ira_allocate_allocno_conflicts; first arg now ira_object_t.
18679         (struct ira_object_iterator): New.
18680         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
18681         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
18682         to conflict_vec_p.  All uses changed.
18683         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
18684         Changed to take into account that conflicts are now tracked for
18685         objects.
18686         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
18687         Args changed to accept ira_object_t.  All uses changed.
18688         (allocnos_conflict_p): New static function.
18689         (collected_conflict_objects): Renamed from collected_allocno_objects;
18690         now a vector of ira_object_t.  All uses changed.
18691         (build_conflict_bit_table): Changed to take into account that
18692         conflicts are now tracked for objects.
18693         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
18694         (print_allocno_conflicts, ira_build_conflicts): Likewise.
18695         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
18696         setup_allocno_left_conflicts_size, allocno_reload_assign,
18697         fast_allocation): Likewise.
18698         * ira-lives.c (make_hard_regno_born, make_allocno_born)
18699         process_single_reg_class_operands, process_bb_node_lives): Likewise.
18700         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
18701         Likewise.
18702         * ira-build.c (ira_objects_num): New variable.
18703         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
18704         contains a vector of ira_object_t; all uses changed.
18705         (ira_object_id_map_vec): Corresponding change.
18706         (object_pool): New static variable.
18707         (initiate_allocnos): Initialize it.
18708         (finish_allocnos): Free it.
18709         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
18710         New functions.
18711         (ira_create_allocno): Don't set members that were removed.
18712         (ira_set_allocno_cover_class): Don't change conflict hard regs.
18713         (merge_hard_reg_conflicts): Changed to take into account that
18714         conflicts are now tracked for objects.
18715         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
18716         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
18717         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
18718         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
18719         setup_min_max_conflict_allocno_ids, ):  Likewise.
18720         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
18721         to ira_object_t; all callers changed.
18722         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
18723         to ira_object_t, all callers changed.
18724         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
18725         to ira_object_t, all callers changed.
18726         (conflict_check, curr_conflict_check_tick): Renamed from
18727         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
18728         changed.
18729         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
18730         arg changed to ira_object_t, all callers changed.
18731         (create_cap_allocno): Call ira_create_allocno_object.
18732         (finish_allocno): Free the corresponding object.
18733         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
18734         callers changed.  Adjusted for dealing with objects.
18735         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
18736         dealing with objects.
18737         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
18738
18739         * ira-int.h (struct live_range): Rename allocno member to object
18740         and change type to ira_object_t.
18741         (struct ira_object): New member live_ranges.
18742         (struct ira_allocno): Remove member live_ranges.
18743         (ALLOCNO_LIVE_RANGES): Remove.
18744         (OBJECT_LIVE_RANGES): New macro.
18745         (ira_create_live_range, ira_copy_live_range_list,
18746         ira_merge_live_range_list, ira_live_ranges_intersect_p,
18747         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
18748         * ira-build.c (ira_create_object): Initialize live ranges here.
18749         (ira_create_allocno): Not here.
18750         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
18751         changed to ira_object_t, all callers changed.
18752         (copy_live_range): Rename from copy_allocno_live_range, all callers
18753         changed.
18754         (ira_copy_live_range_list): Rename from
18755         ira_copy_allocno_live_range_list, all callers changed.
18756         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
18757         all callers changed.
18758         (ira_live_ranges_intersect_p): Rename from
18759         ira_allocno_live_ranges_intersect_p, all callers changed.
18760         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
18761         callers changed.
18762         (ira_finish_live_range_list): Rename from
18763         ira_finish_allocno_live_range_list, all callers changed.
18764         (change_object_in_range_list): Rename from change_allocno_in_range_list,
18765         last arg changed to ira_object_t, all callers changed.
18766         (finish_allocno): Changed to expect live ranges in the allocno's object.
18767         (move_allocno_live_ranges, copy_allocno_live_ranges,
18768         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
18769         ira_flattening, ira_build): Likewise.
18770         * ira-color.c (allocnos_have_intersected_live_ranges_p,
18771         slot_coalesced_allocno_live_ranges_intersect,
18772         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
18773         * ira-conflicts.c (build_conflict_bit_table): Likewise.
18774         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
18775         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
18776         make_allocno_dead, create_start_finish_chains,
18777         remove_some_program_points_and_update_live_ranges,
18778         ira_debug_live_range_list): Likewise.
18779
18780         * ira-int.h (ira_object_conflict_iterator): Rename from
18781         ira_allocno_conflict_iterator.
18782         (ira_object_conflict_iter_init): Rename from
18783         ira_allocno_conflict_iter_init, second arg changed to
18784         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
18785         FOR_EACH_ALLOCNO_CONFLICT.
18786         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
18787         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
18788         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
18789         * ira-conflicts.c (print_allocno_conflicts): Likewise.
18790
18791 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
18792
18793         PR other/44874
18794         * tree-dump.c (dump_options): Add enumerate_locals entry.
18795         Add TDF_NOID exclusion to all entry.
18796         * tree-dump.h (dump_enumerated_decls): Declare.
18797         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
18798         Don't display type uid.
18799         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
18800         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
18801         * tree-ssa-live.c: Include gimple.h.
18802         (numbered_tree_d): New struct.
18803         (numbered_tree): New typedef.
18804         (DEF_VEC_O (numbered_tree): New.
18805         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
18806         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
18807         (dump_enumerated_decls): Likewise.
18808         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
18809         debug info and flag_dump_final_insns, call dump_enumerated_decls.
18810         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
18811         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
18812
18813 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
18814
18815         * expmed.h (MAX_BITS_PER_WORD): Move to...
18816         * defaults.h (MAX_BITS_PER_WORD): ...here.
18817
18818 2010-07-13  DJ Delorie  <dj@redhat.com>
18819
18820         * config/h8300/h8300.c (h8300_init_once): Default to
18821         -fstrict_volatile_bitfields.
18822
18823         * config/sh/sh.c (sh_override_options): Default to
18824         -fstrict_volatile_bitfields.
18825
18826         * config/rx/rx.c (rx_option_override): New.
18827
18828         * config/m32c/m32c.c (m32c_override_options): Default to
18829         -fstrict_volatile_bitfields.
18830
18831 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
18832
18833         * tree.h (build_function_call_expr): Delete.
18834         (build_call_expr_loc_array): New function.
18835         (build_call_expr_loc_vec): New function.
18836         * tree-flow.h (struct omp_region): Change type of ws_args field
18837         to a VEC.
18838         * builtins.c (build_function_call_expr): Delete.
18839         (build_call_expr_loc_array): New function.
18840         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
18841         (build_call_expr): Likewise.
18842         (build_call_expr_loc_vec): New function.
18843         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
18844         build_function_call_expr.
18845         * expr.c (emutls_var_address): Likewise.
18846         * varasm.c (emutls_common_1): Likewise.
18847         * omp-low.c (expand_omp_atomic_mutex): Likewise.
18848         (expand_omp_taskreg): Adjust for new type of region->ws_args.
18849         (get_ws_args_for): Return a VEC instead of a tree.
18850         (expand_parallel_call): Call build_call_expr_loc_vec instead of
18851         build_function_call_expr.
18852         * stor-layout.c (self_referential_size): Likewise.
18853
18854 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18855
18856         PR testsuite/44701
18857         * recog.c (constrain_operands): Allow side-effects in memory
18858         operands if either < or > constraint is used, rather than if
18859         both < and > is used.
18860
18861 2010-07-13  Richard Guenther  <rguenther@suse.de>
18862
18863         PR middle-end/44911
18864         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
18865         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
18866         without name.
18867
18868 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
18869
18870         PR target/44761
18871         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
18872         to variable emited.
18873         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
18874         * config/sh/sh.md (symGOT_load): Likewise.
18875         (symDTPOFF2reg): Likewise.
18876         (symTPOFF2reg): Likewise.
18877
18878 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18879
18880         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
18881         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
18882
18883 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18884
18885         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
18886         explanation.
18887         Find ucontext_t * on Solaris 11.
18888         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
18889         Handle new Solaris 11 __sighndlr patterns.
18890
18891 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
18892
18893         PR debug/44901
18894         * vec.h (VEC_block_remove): Fix comment.
18895         * tree-ssa-live.c (remove_unused_locals): Don't use
18896         VEC_unordered_remove on local_decls, instead replace a single
18897         vector element in each iteration if at least one element had
18898         to be removed and VEC_truncate at the end.
18899         * omp-low.c (expand_omp_taskreg): Likewise.
18900
18901 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18902
18903         * c-decl.c (finish_function): Fix typo in comment.
18904
18905 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
18906
18907         PR bootstrap/44921
18908         * postreload.c (move2add_use_add3_insn): Silence gcc warning
18909         on min_regno.
18910
18911 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
18912
18913         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
18914         (simplify_stmt_using_ranges): Use it.
18915
18916 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18917
18918         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
18919         member.  Do not mark as GTY(()).
18920         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
18921         (spu_builtin_decls): New static variable.
18922         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
18923         (spu_init_builtins): Likewise.
18924         (spu_builtin_mul_widen_even): Likewise.
18925         (spu_builtin_mul_widen_odd): Likewise.
18926         (spu_builtin_mask_for_load): Likewise.
18927         (spu_builtin_vec_perm): Likewise.
18928         * config/spu/spu-c.c: Include "target.h".
18929         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
18930         of using spu_builtins[].fndecl.
18931
18932 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18933
18934         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
18935         imply -minterlink-mips16.
18936
18937 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18938
18939         * config/mips/mips.h (mips16_globals): Declare.
18940         (SWITCHABLE_TARGET): Define.
18941         * config/mips/mips.c: Include target-globals.h.
18942         (mips16_globals): New variable.
18943         (mips_set_mips16_mode): Use save_target_globals and
18944         restore_target_globals instead of target_reinit.
18945
18946 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18947
18948         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
18949         to say that the function can be called more than once.
18950         * target-globals.c (save_target_globals): Call init_reg_sets.
18951
18952 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18953
18954         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
18955         * bb-reorder.h: New file.
18956         * bb-reorder.c (default_target_bb_reorder): New variable.
18957         (this_target_bb_reorder): New conditional variable.
18958         (uncond_jump_length): Redefine as a macro.
18959         * target-globals.h (this_target_bb_reorder): Declare.
18960         (target_globals): Add a bb_reorder field.
18961         (restore_target_globals): Copy the bb_reorder field to
18962         this_target_bb-reorder.
18963         * target-globals.c: Include bb-reorder.h.
18964         (default_target_globals): Initialize the bb_reorder field.
18965         (save_target_globals): Likewise.
18966
18967 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18968
18969         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
18970         * gcse.h: New file.
18971         * gcse.c: Include gcse.h.
18972         (default_target_gcse): New variable.
18973         (this_target_gcse): New conditional variable.
18974         (can_copy): Redefine as a macro.
18975         (can_copy_init_p): New macro.
18976         (can_copy_p): Remove can_copy_init_p.
18977         * target-globals.h (this_target_gcse): Declare.
18978         (target_globals): Add a gcse field.
18979         (restore_target_globals): Copy the gcse field to this_target_gcse.
18980         * target-globals.c: Include gcse.h.
18981         (default_target_globals): Initialize the gcse field.
18982         (save_target_globals): Likewise.
18983
18984 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18985
18986         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
18987         and x_ira_prohibited_mode_move_regs_initialized_p.
18988         (ira_prohibited_mode_move_regs): Redefine as a macro.
18989         * ira.c (ira_prohibited_mode_move_regs): Delete.
18990         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
18991
18992 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
18993
18994         * reload.h (target_reload): Add x_cached_reg_save_code and
18995         x_cached_reg_restore_code.
18996         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
18997         Redefine as macros.
18998
18999 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19000
19001         * Makefile.in (target-globals.o): Depend on builtins.h.
19002         * builtins.h: New file.
19003         * builtins.c: Include builtins.h.
19004         (default_target_builtins): New variable.
19005         (this_target_builtins): New conditional variable.
19006         (apply_args_mode, apply_result_mode): Redefine as macros.
19007         * target-globals.h (this_target_builtins): Declare.
19008         (target_globals): Add a builtins field.
19009         (restore_target_globals): Copy the builtins field to
19010         this_target_builtins.
19011         * target-globals.c: Include builtins.h.
19012         (default_target_globals): Initialize the builtins field.
19013         (save_target_globals): Likewise.
19014
19015 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19016
19017         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
19018         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
19019         from expmed.c.
19020         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
19021         (alg_hash, alg_hash_used_p): New macros.
19022         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
19023         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
19024         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
19025
19026 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19027
19028         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
19029         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
19030         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
19031         (this_op_costs, costs_classes): Redefine as macros.
19032         (record_reg_classes): Don't take op_costs as a parameter.
19033         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
19034         (scan_one_insn): Update call to record_operand_costs.
19035
19036 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19037
19038         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
19039         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
19040         (target_ira_int): New structure.
19041         (default_target_ira_int): Declare.
19042         (this_target_ira_int): Declare as a variable or define as a macro.
19043         (ira_reg_mode_hard_regset, ira_register_move_cost)
19044         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
19045         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
19046         (prohibited_class_mode_regs, ira_important_classes_num)
19047         (ira_important_classes, ira_reg_class_intersect)
19048         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
19049         (ira_reg_class_union): Redefine as macros.
19050         * ira.h (target_ira): New structure.
19051         (default_target_ira): Declare.
19052         (this_target_ira): Declare as a variable or define as a macro.
19053         (ira_available_class_regs, ira_hard_regno_cover_class)
19054         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
19055         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
19056         (ira_class_hard_regs_num): Redefine as macros.
19057         * ira.c (default_target_ira, default_target_ira_int): New variables.
19058         (this_target_ira, this_target_ira_int): New conditional variables.
19059         (ira_reg_mode_hard_regset, ira_memory_move_cost)
19060         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
19061         (ira_class_subset_p): Delete.
19062         (no_unit_alloc_regs): Redefine as a macro.
19063         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
19064         (ira_class_hard_regs_num, ira_class_hard_reg_index)
19065         (ira_available_class_regs): Delete.
19066         (alloc_reg_class_subclasses): Redefine as a macro.
19067         (ira_reg_class_cover_size, ira_reg_class_cover)
19068         (ira_important_classes_num, ira_important_classes)
19069         (ira_important_class_nums, ira_class_translate): Delete.
19070         (cover_class_order): Document the variable's lifetime.
19071         (reorder_important_classes): Don't set ira_important_class_nums.
19072         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
19073         (ira_reg_class_super_classes, ira_reg_class_union)
19074         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
19075         Delete.
19076         (setup_reg_class_nregs): Don't set ira_max_regs.
19077         (prohibited_class_mode_regs): Delete.
19078         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
19079         (target_globals): Add ira and ira_int fields.
19080         (restore_target_globals): Copy the ira field to this_target_ira
19081         and the ira_int field to this_target_ira_int.
19082         * target-globals.c: Include ira-int.h.
19083         (default_target_globals): Initialize the ira and ira_int fields.
19084         (save_target_globals): Likewise.
19085
19086 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19087
19088         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
19089         * cfgloop.h (target_cfgloop): New structure.
19090         (default_target_cfgloop): Declare.
19091         (this_target_cfgloop): Declare as a variable or define as a macro.
19092         (target_avail_regs, target_clobbered_regs, target_res_regs)
19093         (target_reg_cost, target_spill_cost): Redefine as macros.
19094         * cfgloopanal.c (default_target_cfgloop): New variable.
19095         (this_target_cfgloop): New conditional variable.
19096         (target_avail_regs, target_clobbered_regs, target_res_regs)
19097         (target_reg_cost, target_spill_cost): Delete.
19098         * target-globals.h (this_target_cfgloop): Declare.
19099         (target_globals): Add a cfgloop field.
19100         (restore_target_globals): Copy the cfgloop field to
19101         this_target_cfgloop.
19102         * target-globals.c: Include cfgloop.h.
19103         (default_target_globals): Initialize the cfgloop field.
19104         (save_target_globals): Likewise.
19105
19106 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19107
19108         * regs.h (target_regs): Add x_direct_load, x_direct_store and
19109         x_float_extend_from_mem.
19110         (direct_load, direct_store, float_extend_from_mem): New macros.
19111         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
19112
19113 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19114
19115         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
19116         (target-globals.o): Depend on $(LIBFUNCS_H).
19117         * libfuncs.h: Include hashtab.h.
19118         (libfunc_entry): Moved from optabs.c.
19119         (target_libfuncs): New structure.
19120         (default_target_libfuncs): Declare.
19121         (this_target_libfuncs): Declare as a variable or define as a macro.
19122         (libfunc_table): Redefine as a macro.
19123         * optabs.c (default_target_libfuncs): New variable.
19124         (this_target_libfuncs): New conditional variable.
19125         (libfunc_table): Delete.
19126         (libfunc_entry): Moved to optabs.h.
19127         (libfunc_hash): Redefine as a macro.
19128         (hash_libfunc, eq_libfunc): Fix comments.
19129         (init_optabs): Use libfunc_hash to detect cases where the function
19130         has already been called.  Clear the hash table instead of
19131         recreating it.
19132         * target-globals.h (this_target_libfuncs): Declare.
19133         (target_globals): Add a libfuncs field.
19134         (restore_target_globals): Copy the libfuncs field to
19135         this_target_libfuncs.
19136         * target-globals.c: Include libfuncs.h.
19137         (default_target_globals): Initialize the libfuncs field.
19138         (save_target_globals): Likewise.
19139
19140 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19141
19142         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
19143         in all dependency lists.
19144
19145 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19146
19147         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
19148         * optabs.h (target_optabs): New structure.
19149         (default_target_optabs): Declare.
19150         (this_target_optabs): Declare as a variable or define as a macro.
19151         (optab_table, convert_optab_table, direct_optab_table): Redefine
19152         as macros.
19153         * optabs.c (default_target_optabs): New variable.
19154         (this_target_optabs): New conditional variable.
19155         (optab_table, convert_optab_table, direct_optab_table): Delete.
19156         * target-globals.h (this_target_optabs): Declare.
19157         (target_globals): Add a optabs field.
19158         (restore_target_globals): Copy the optabs field to
19159         this_target_optabs.
19160         * target-globals.c: Include expr.h and optabs.h.
19161         (default_target_globals): Initialize the optabs field.
19162         (save_target_globals): Likewise.
19163
19164 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19165
19166         * flags.h (target_flagstate): Add x_flag_excess_precision.
19167         (flag_excess_precision): Redefine as a macro.
19168         * toplev.c (flag_excess_precision): Delete.
19169
19170 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19171
19172         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
19173         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
19174         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
19175         (no_caller_save_reg_set): Redefine as a macro.
19176         * reload.h (target_reload): Add x_caller_save_initialized_p and
19177         x_regno_save_mode.
19178         (caller_save_initialized_p): Redefine as a macro.
19179         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
19180         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
19181         (regno_save_mode): Redefine as a macro.
19182
19183 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19184
19185         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
19186         * expmed.h: New file.
19187         * expmed.c (default_target_costs): New variable.
19188         (this_target_costs): New conditional variable.
19189         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
19190         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
19191         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
19192         * target-globals.h (this_target_expmed): Declare.
19193         (target_globals): Add a expmed field.
19194         (restore_target_globals): Copy the expmed field to
19195         this_target_expmed.
19196         * target-globals.c: Include expmed.h.
19197         (default_target_globals): Initialize the expmed field.
19198         (save_target_globals): Likewise.
19199
19200 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19201
19202         * Makefile.in (target-globals.o): Depend on reload.h.
19203         * reload.h (target_reload): New structure.
19204         (default_target_reload): Declare.
19205         (this_target_reload): Declare as a variable or define as a macro.
19206         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
19207         * reload1.c (default_target_reload): New variable
19208         (this_target_reload): New conditional variable.
19209         (indirect_symref_ok, double_reg_address_ok): Delete.
19210         (spill_indirect_levels): Redefine as a macro.
19211         * target-globals.h (this_target_reload): Declare.
19212         (target_globals): Add a reload field.
19213         (restore_target_globals): Copy the reload field to
19214         this_target_reload.
19215         * target-globals.c: Include hard-reg-set.h.
19216         (default_target_globals): Initialize the reload field.
19217         (save_target_globals): Likewise.
19218
19219 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19220
19221         * rtl.h (target_rtl): Add x_static_reg_base_value.
19222         * alias.c (static_reg_base_value): Redefine as a macro.
19223
19224 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19225
19226         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
19227         (GTFILES): Remove reginfo.c.
19228         * rtl.h (target_rtl): Add x_top_of_stack.
19229         (top_of_stack): New macro.
19230         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
19231         (top_of_stack): Delete.
19232
19233 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19234
19235         * regs.h (target_regs): Add x_hard_regs_of_mode,
19236         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
19237         x_may_move_out_cost and x_last_mode_for_init_move_cost.
19238         (have_regs_of_mode, contains_reg_of_mode, move_cost)
19239         (may_move_in_cost, may_move_out_cost): Redefine as macros.
19240         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
19241         (may_move_in_cost, may_move_out_cost): Delete.
19242         (last_mode_for_init_move_cost): Redefine as a macro.
19243
19244 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19245
19246         * hard-reg-set.h (target_hard_regs): New structure.
19247         (default_target_hard_regs): Declare.
19248         (this_target_hard_regs): Declare as a variable or define as a macro.
19249         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
19250         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
19251         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
19252         (reg_class_size, reg_class_subclasses, reg_class_subunion)
19253         (reg_class_superunion, reg_names): Redefine as macros.
19254         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
19255         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
19256         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
19257         (reg_class_contents, reg_class_size, reg_class_subclasses)
19258         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
19259         (default_target_hard_regs): New variable
19260         (this_target_hard_regs, initial_call_really_used_regs)
19261         (initial_reg_alloc_order): New conditional variables.
19262         (initial_reg_names): New variable.
19263         (init_reg_sets): Assert that initial_call_really_used_regs,
19264         initial_reg_alloc_order and initial_reg_names
19265         are all the same size as their variable counterparts.  Use them to
19266         initialize those counterparts.
19267         * target-globals.h (this_target_hard_regs): Declare.
19268         (target_globals): Add a hard_regs field.
19269         (restore_target_globals): Copy the hard_regs field to
19270         this_target_hard_regs.
19271         * target-globals.c: Include hard-reg-set.h.
19272         (default_target_globals): Initialize the hard_regs field.
19273         (save_target_globals): Likewise.
19274
19275 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19276
19277         * Makefile.in (target-globals.o): Depend on $(RTL_H).
19278         * rtl.h (target_rtl): New structure.
19279         (default_target_rtl): Declare.
19280         (this_target_rtl): Declare as a variable or define as a macro.
19281         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
19282         Redefine as macros.
19283         * emit-rtl.c (default_target_rtl): New variable.
19284         (this_target_rtl): New conditional variable.
19285         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
19286         (return_address_pointer_rtx): Delete.
19287         (initial_regno_reg_rtx): New macro.
19288         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
19289         (init_emit_regs): Likewise.
19290         * target-globals.h (this_target_rtl): Declare.
19291         (target_globals): Add a rtl field.
19292         (restore_target_globals): Copy the rtl field to this_target_rtl.
19293         * target-globals.c: Include rtl.h.
19294         (default_target_globals): Initialize the rtl field.
19295         (save_target_globals): Likewise.
19296
19297 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19298
19299         * Makefile.in (target-globals.o): Depend on $(REGS_H).
19300         * regs.h (target_reg_modes): New structure.
19301         (default_target_reg_modes): Declare.
19302         (this_target_reg_modes): Declare as a variable or define as a macro.
19303         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
19304         * reginfo.c (default_target_reg_modes): New variable.
19305         (this_target_reg_modes): New conditional variable.
19306         (hard_regno_nregs, reg_raw_mode): Delete.
19307         * target-globals.h (this_target_regs): Declare.
19308         (target_globals): Add a regs field.
19309         (restore_target_globals): Copy the regs field to this_target_regs.
19310         * target-globals.c: Include regs.h.
19311         (default_target_globals): Initialize the regs field.
19312         (save_target_globals): Likewise.
19313
19314 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
19315
19316         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
19317         * doc/tm.texi: Regenerate.
19318         * Makefile.in (OBJS-common): Add target-globals.o.
19319         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
19320         and target-globals.h.
19321         (target-globals.o): New rule.
19322         (GTFILES): Include $(srcdir)/target-globals.h.
19323         * defaults.h (SWITCHABLE_TARGET): Define.
19324         * gengtype.c (open_base_files): Add target-globals.h to the
19325         list of includes.
19326         * target-globals.h: New file.
19327         * target-globals.c: Likewise.
19328
19329         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
19330         * flags.h (target_flag_state): New structure.
19331         (default_target_flag_state): Declare.
19332         (this_target_flag_state): Declare as a variable or define as a macro.
19333         (align_loops_log): Redefine as a macro.
19334         (align_loops_max_skip, align_jumps_log): Likewise.
19335         (align_jumps_max_skip, align_labels_log): Likewise.
19336         (align_labels_max_skip, align_functions_log): Likewise.
19337         * toplev.c (default_target_flag_state): New variable.
19338         (this_target_flag_state): New conditional variable.
19339         (align_loops_log): Delete.
19340         (align_loops_max_skip, align_jumps_log): Likewise.
19341         (align_jumps_max_skip, align_labels_log): Likewise.
19342         (align_labels_max_skip, align_functions_log): Likewise.
19343         * target-globals.h (this_target_flag_state): Declare.
19344         (target_globals): Add a flag_state field.
19345         (restore_target_globals): Copy the flag_state field to
19346         this_target_flag_state.
19347         * target-globals.c: Include flags.h.
19348         (default_target_globals): Initialize the flag_state field.
19349         (save_target_globals): Likewise.
19350
19351 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19352
19353         * postreload.c (reg_symbol_ref[]): New.
19354         (move2add_use_add2_insn): New.
19355         (move2add_use_add3_insn): New.
19356         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
19357         (move2add_note_store): Likewise.
19358
19359 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
19360
19361         PR rtl-optimization/44752
19362         * genautomata.c (main): Don't emit an empty file even if there
19363         is no automaton.
19364
19365 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19366
19367         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
19368         ix86_solaris_return_in_memory.
19369         * config/i386-protos.h: Reflect this.
19370         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19371         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
19372         Move ...
19373         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
19374
19375 2010-07-12  Jie Zhang  <jie@codesourcery.com>
19376
19377         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
19378         align the stack when it's going to be saved.
19379
19380 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19381
19382         PR pch/14940
19383         * config/host-solaris.c (mmap_fixed): New function.
19384         (sol_gt_pch_get_address): Use it.
19385         (sol_gt_pch_use_address): Likewise.
19386
19387 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19388
19389         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
19390         pentiumpro on Solaris 8 and 9/x86.
19391         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
19392         Document SSE/SSE2 support.
19393         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
19394
19395 2010-07-12  Andi Kleen  <ak@linux.intel.com>
19396
19397         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
19398         instead of gcc_assert to print better error message for multiple
19399         prevailing defs.
19400
19401 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
19402
19403         * config/i386/i386.c (ix86_asm_output_function_label): Change format
19404         string placeholder from 0x%x to %#x.
19405         (ix86_code_end): Use putc to output '\n'.
19406         (ix86_print_operand) <case ';'>: Use putc to output ';'.
19407
19408 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
19409
19410         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
19411         in directive -export.
19412
19413 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
19414
19415         * reginfo.h (reg_classes_intersect_p): Change arguments type to
19416         reg_class_t.
19417         * rtl.h (reg_classes_intersect_p): Adjust prototype.
19418
19419         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19420         Remove macros.
19421         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
19422         rs6000_memory_move_cost): Remove
19423         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
19424         TARGET_MEMORY_MOVE_COST): Define.
19425         (rs6000_register_move_cost): Make static. Change arguments type from
19426         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
19427         (rs6000_memory_move_cost): Make static. Change arguments type from
19428         'enum reg_class' to reg_class_t.
19429
19430 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
19431
19432         PR middle-end/42505
19433         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
19434         lookup code into....
19435         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
19436         new functions.
19437         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
19438         * cfgloopanal.c (target_clobbered_regs): Define.
19439         (init_set_costs): Initialize target_clobbered_regs.
19440         (estimate_reg_pressure_cost): Add call_p argument.  When true,
19441         adjust the number of available registers to exclude the
19442         call-clobbered registers.
19443         * cfgloop.h (target_clobbered_regs): Declare.
19444         (estimate_reg_pressure_cost): Adjust declaration.
19445         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
19446         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
19447         (determine_set_costs): Dump target_clobbered_regs.
19448         (loop_body_includes_call): New function.
19449         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
19450         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
19451         call_p flag through.
19452         (best_gain_for_invariant): Likewise.
19453         (find_invariants_to_move): Likewise.
19454         (move_single_loop_invariants): Likewise, using already-computed
19455         has_call field.
19456
19457 2010-07-10  Richard Guenther  <rguenther@suse.de>
19458             Joern Rennecke  <joern.rennecke@embecosm.com>
19459
19460         PR debug/44832
19461         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
19462         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
19463         unless they have DECL_IGNORED_P set.
19464
19465 2010-07-10  Richard Guenther  <rguenther@suse.de>
19466
19467         PR lto/44889
19468         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
19469         helper function.
19470         (gimple_types_compatible_p): Similar to pointed-to
19471         types allow and merge a mix of complete and incomplete aggregate.
19472         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
19473         (iterative_hash_gimple_type): Adjust for that.
19474
19475 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
19476
19477         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
19478
19479 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
19480
19481         PR objc/44140
19482         * config/darwin.c (output_objc_section_asm_op): Save and restore
19483         section when outputting ObjC section list.
19484
19485 2010-07-09  Jan Hubicka  <jh@suse.cz>
19486
19487         * lto-streamer-out.c (produce_symtab): Do not write alias
19488         cgraph/varpool nodes.
19489
19490 2010-07-09  Jan Hubicka  <jh@suse.cz>
19491
19492         * tree-inline.c (declare_return_variable): Fix ICE while
19493         inlining DECL_BY_VALUE function not in SSA form
19494
19495 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
19496
19497         PR tree-optimization/44576
19498         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
19499         New.  Pull out from is_loop_prefetching_profitable to implement
19500         the trip count to ahead ratio heuristic.
19501         (mem_ref_count_reasonable_p): New.  Pull out from
19502         is_loop_prefetching_profitable to implement the instruction to
19503         memory reference ratio heuristic.  Also consider not reasonable if
19504         the memory reference count is above a threshold (to avoid
19505         explosive compilation time.
19506         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
19507         is_loop_prefetching_profitable to implement the instruction to
19508         prefetch ratio heuristic.
19509         (is_loop_prefetching_profitable): Removed.
19510         (loop_prefetch_arrays): Distribute the cost analysis across the
19511         function to allow early exit of the prefetch analysis.
19512         is_loop_prefetching_profitable is splitted into three functions,
19513         with each one called as early as possible.
19514         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
19515         number of memory references in a loop is considered too many.
19516
19517 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19518
19519         * reload.c (find_reloads): Don't clear badop if we have a winreg
19520         alternative, but not win, and the class only has fixed regs.
19521         * hard-reg-set.h (class_only_fixed_regs): Declare.
19522         * reginfo.c (class_only_fixed_regs): New array.
19523         (init_reg_sets_1): Initialize it.
19524         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
19525         discourage alternatives using the stack pointer.
19526
19527         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
19528
19529         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
19530
19531         * config/arm/arm.md (cbranchqi4): Fix array size.
19532         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
19533         calculating length.
19534
19535 2010-07-09  Richard Guenther  <rguenther@suse.de>
19536
19537         * gimple.c (struct type_fixup_s): New struct and VEC type.
19538         (gimple_register_type_fixups): New static global.
19539         (gimple_queue_type_fixup): New function.
19540         (gimple_types_compatible_p): Queue type fixups instead of
19541         applying them here.
19542         (gimple_register_type): Apply queued fixups for the
19543         canonical type.  Empty the type fixup queue.
19544
19545 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19546
19547         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
19548         * configure: Regenerate.
19549         * config.in: Ditto.
19550
19551 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19552             Denys Vlasenko  <dvlasenk@redhat.com>
19553             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19554
19555         PR tree-optimization/28632
19556         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
19557         (extract_range_from_binary_expr): Further optimize
19558         BIT_AND_EXPR and BIT_IOR_EXPR.
19559
19560 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
19561
19562         * tree-if-conv.c (fold_or_predicates): New.
19563         (add_to_predicate_list): Call it.
19564
19565 2010-07-09  Richard Guenther  <rguenther@suse.de>
19566
19567         PR middle-end/44890
19568         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
19569         if base is a pointer.
19570         * tree-cfg.c (verify_expr): Update MEM_REF checking.
19571
19572 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
19573
19574         PR target/44877
19575         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
19576         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
19577         builtin mask for load/store builtins.
19578
19579 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19580
19581         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
19582         for "lock addl".
19583         * configure: Regenerate.
19584         * config/i386/i386.c (ix86_print_operand) <case ';'>:
19585         Remove TARGET_MACHO.
19586
19587 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
19588
19589         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
19590         default ISA flags.
19591         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
19592
19593 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
19594
19595         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
19596
19597 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
19598
19599         * config/picochip/picochip.md (commsTestPort): Emit more
19600         efficient sequence for tstport instruction.
19601
19602 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
19603
19604         * config/i386/i386.c (ix86_veclib_handler): Make static.
19605
19606 2010-07-09  Richard Guenther  <rguenther@suse.de>
19607
19608         PR tree-optimization/44852
19609         * tree-ssa-alias.c: Include toplev.h for exact_log2.
19610         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
19611         in MEM_REF.
19612         (indirect_refs_may_alias_p): Likewise.
19613         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
19614
19615 2010-07-09  Richard Guenther  <rguenther@suse.de>
19616
19617         PR tree-optimization/44882
19618         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
19619         sets do conflict.
19620         (vectorizable_load): Likewise.
19621
19622 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
19623
19624         PR target/40657
19625         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
19626         All callers changed.
19627         Handle the case when we're called for the epilogue.
19628         (thumb_unexpanded_epilogue): Use it.
19629         (thumb1_expand_epilogue): Likewise.
19630
19631 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
19632
19633         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
19634         both ranges are range_int_cst_p with non-negative minimum,
19635         try harder to derive smaller range.
19636
19637 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19638
19639         * genrecog.c: Include diagnostic-core.h before toplev.h.
19640         * genoutput.c: Likewise.
19641         * genextract.c: Likewise.
19642         * genautomata.c: Likewise.
19643         * genemit.c: Likewise.
19644         * genpeep.c: Likewise.
19645         * genattrtab.c: Likewise.
19646         * genconditions.c: Likewise.
19647         * genpreds.c: Likewise.
19648
19649 2010-07-08  Andi Kleen  <ak@linux.intel.com>
19650
19651         * lto-section-in.c (lto_section_name): Add missing comma.
19652
19653 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
19654
19655         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
19656         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
19657         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
19658         (ia64_override_options): Rename to...
19659         (ia64_option_override): ... this one. Make static.
19660
19661 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19662
19663         PR middle-end/44843
19664         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
19665         pointed-to type of the offset in a MEM_REF to compute the alignment.
19666
19667 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
19668
19669         * final.c (final_scan_insn): Replace
19670         TARGET_UNWIND_INFO macro check by unwind_emit
19671         hook NULL check.
19672         * targhooks.c (default_unwind_emit): Removed.
19673         * targhooks.h (default_unwind_emit): Likewise.
19674         * target.def (unwind_emit): Set default value to NULL.
19675
19676         * config/i386/i386-protos.h (ix86_asm_output_function_label):
19677         New prototype.
19678         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
19679         for NULL fntype argument and allow 64-bit targets.
19680         (ix86_asm_output_function_label): New function.
19681         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
19682         (ix86_handle_fndecl_attribute): Likewise.
19683         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
19684         * doc/doc/tm.texi: Regenerated.
19685         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
19686         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
19687         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
19688         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
19689         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19690         * config/elfos.h: Likewise.
19691         * config/i386/cygming.h: Likewise.
19692         * config/netbsd-aout.h: Likewise.
19693         * config/openbsd.h: Likewise.
19694         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
19695         by ix86_asm_output_function_label function call.
19696         * varasm.c (assemble_start_function): Use
19697         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
19698
19699 2010-07-08  Jan Hubicka  <jh@suse.cz>
19700
19701         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
19702         New function.
19703         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
19704         Declare.
19705         * ipa-cp.c (ipcp_estimate_growth): Use it.
19706         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
19707         Likewise.
19708
19709 2010-07-08  Jan Hubicka  <jh@suse.cz>
19710
19711         * tree-inline.c (declare_return_variable): Allocate annotation for new
19712         temporary.
19713
19714 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19715
19716         PR tree-optimization/44710
19717         * tree-if-conv.c (parse_predicate): New.
19718         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
19719         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
19720
19721 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
19722
19723         * common.opt (ftree-loop-if-convert): New flag.
19724         * doc/invoke.texi (ftree-loop-if-convert): Documented.
19725         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
19726         when flag_tree_loop_if_convert is set.
19727
19728 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
19729
19730         * config/i386/i386.c: Use short syntax for function calls
19731         through function pointers.
19732         * config/i386/i386.md: Ditto.
19733
19734 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19735
19736         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
19737
19738 2010-07-08  Richard Guenther  <rguenther@suse.de>
19739
19740         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
19741         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
19742
19743 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
19744
19745         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
19746         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
19747         (loc_list_from_tree): Likewise.
19748         (output_loc_operands): Handle outputting DW_OP_const[48]u
19749         with loc->dtprel set.
19750         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
19751
19752 2010-07-08  Jan Hubicka  <jh@suse.cz>
19753
19754         * ipa.c: Include pointer-set.h
19755         (cgraph_externally_visible_p): New attribute ALIASED;
19756         when in LTO, hidden symbols are local unless they are aliased.
19757         (function_and_variable_visibility): Compute aliased nodes;
19758         handle LTO and hidden symbol on functions and vars.
19759         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
19760         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
19761
19762 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19763
19764         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
19765         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19766         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19767         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19768         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19769         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
19770         (ix86_gen_probe_stack_range): Likewise.
19771         (override_options): Set them.
19772         (ix86_target_stack_probe): New function.
19773         (ix86_compute_frame_layout): Force use of push instructions to
19774         save registers if stack checking with probes is enabled.
19775         (get_scratch_register_on_entry): New function.
19776         (release_scratch_register_on_entry): Likewise.
19777         (ix86_adjust_stack_and_probe): Likewise.
19778         (output_adjust_stack_and_probe): Likewise.
19779         (ix86_emit_probe_stack_range): Likewise.
19780         (output_probe_stack_range): Likewise.
19781         (ix86_expand_prologue): Emit stack checking code if static built-in
19782         stack checking is enabled.
19783         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
19784         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
19785         (output_adjust_stack_and_probe): Likewise.
19786         (output_probe_stack_range): Likewise.
19787         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
19788         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
19789         TARGET_STACK_PROBE.
19790         (allocate_stack_worker_64): Likewise.
19791         (allocate_stack): Likewise.
19792         (adjust_stack_and_probe): New insn.
19793         (probe_stack_range): Likewise.
19794
19795 2010-07-08  Richard Guenther  <rguenther@suse.de>
19796
19797         PR tree-optimization/44831
19798         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
19799         a MEM_REF preserving TBAA info of the original dereference.
19800         Dereference the original pointer if the address is not invariant.
19801         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
19802         at least one invariant address that we are going to dereference.
19803
19804 2010-07-08  Richard Guenther  <rguenther@suse.de>
19805
19806         PR tree-optimization/44861
19807         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
19808         information when building MEM_REFs.
19809         (vectorizable_load): Likewise.
19810         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
19811
19812 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19813
19814         * config/sol2-c.c: Do not include diagnostic-core.h.
19815
19816 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19817
19818         PR bootstrap/44768
19819         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
19820         with respect to current_function_decl. Pass decl of the function.
19821         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
19822         * ipa-inline.c (compute_inline_parameters): Pass decl to
19823         estimated_stack_frame_size.
19824
19825 2010-07-08  Richard Guenther  <rguenther@suse.de>
19826
19827         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19828         New function.
19829         (valueize_refs): Call it.
19830
19831 2010-07-08  Richard Guenther  <rguenther@suse.de>
19832
19833         PR rtl-optimization/44838
19834         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
19835         SSA form do not use pointer equivalence.
19836
19837 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
19838
19839         * dwarf2out.c (AT_linkage_name): Delete.
19840         (add_linkage_attr): New function.
19841         (add_linkage_name): Call it to emit the linkage attribute.
19842         (dwarf2out_finish): Likewise.
19843         (move_linkage_attr): Explicitly accept both attribute variants.
19844
19845 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19846
19847         * toplev.h: Do not include diagnostic-core.h.
19848         Include diagnostic-core.h in every file that includes toplev.h.
19849         * c-tree.h: Do not include toplev.h.
19850         * pretty-print.h: Update comment.
19851         * Makefile.in: Update dependencies.
19852         * alias.c: Include diagnostic-core.h in every file that includes
19853         toplev.h.
19854         * attribs.c: Likewise.
19855         * auto-inc-dec.c: Likewise.
19856         * bb-reorder.c: Likewise.
19857         * bt-load.c: Likewise.
19858         * caller-save.c: Likewise.
19859         * calls.c: Likewise.
19860         * cfg.c: Likewise.
19861         * cfganal.c: Likewise.
19862         * cfgbuild.c: Likewise.
19863         * cfgcleanup.c: Likewise.
19864         * cfghooks.c: Likewise.
19865         * cfgloop.c: Likewise.
19866         * combine.c: Likewise.
19867         * config/alpha/alpha.c: Likewise.
19868         * config/arc/arc.c: Likewise.
19869         * config/arm/arm.c: Likewise.
19870         * config/arm/pe.c: Likewise.
19871         * config/avr/avr.c: Likewise.
19872         * config/bfin/bfin.c: Likewise.
19873         * config/cris/cris.c: Likewise.
19874         * config/crx/crx.c: Likewise.
19875         * config/darwin-c.c: Likewise.
19876         * config/darwin.c: Likewise.
19877         * config/fr30/fr30.c: Likewise.
19878         * config/frv/frv.c: Likewise.
19879         * config/h8300/h8300.c: Likewise.
19880         * config/host-darwin.c: Likewise.
19881         * config/i386/i386.c: Likewise.
19882         * config/i386/netware.c: Likewise.
19883         * config/i386/nwld.c: Likewise.
19884         * config/i386/winnt-cxx.c: Likewise.
19885         * config/i386/winnt-stubs.c: Likewise.
19886         * config/i386/winnt.c: Likewise.
19887         * config/ia64/ia64-c.c: Likewise.
19888         * config/ia64/ia64.c: Likewise.
19889         * config/iq2000/iq2000.c: Likewise.
19890         * config/lm32/lm32.c: Likewise.
19891         * config/m32c/m32c-pragma.c: Likewise.
19892         * config/m32c/m32c.c: Likewise.
19893         * config/m32r/m32r.c: Likewise.
19894         * config/m68hc11/m68hc11.c: Likewise.
19895         * config/m68k/m68k.c: Likewise.
19896         * config/mcore/mcore.c: Likewise.
19897         * config/mep/mep-pragma.c: Likewise.
19898         * config/mep/mep.c: Likewise.
19899         * config/mmix/mmix.c: Likewise.
19900         * config/mn10300/mn10300.c: Likewise.
19901         * config/moxie/moxie.c: Likewise.
19902         * config/pa/pa.c: Likewise.
19903         * config/pdp11/pdp11.c: Likewise.
19904         * config/picochip/picochip.c: Likewise.
19905         * config/rs6000/rs6000-c.c: Likewise.
19906         * config/rs6000/rs6000.c: Likewise.
19907         * config/rx/rx.c: Likewise.
19908         * config/s390/s390.c: Likewise.
19909         * config/score/score.c: Likewise.
19910         * config/score/score3.c: Likewise.
19911         * config/score/score7.c: Likewise.
19912         * config/sh/sh.c: Likewise.
19913         * config/sh/symbian-base.c: Likewise.
19914         * config/sh/symbian-c.c: Likewise.
19915         * config/sh/symbian-cxx.c: Likewise.
19916         * config/sol2-c.c: Likewise.
19917         * config/sol2.c: Likewise.
19918         * config/sparc/sparc.c: Likewise.
19919         * config/spu/spu.c: Likewise.
19920         * config/stormy16/stormy16.c: Likewise.
19921         * config/v850/v850-c.c: Likewise.
19922         * config/v850/v850.c: Likewise.
19923         * config/vax/vax.c: Likewise.
19924         * config/vxworks.c: Likewise.
19925         * config/xtensa/xtensa.c: Likewise.
19926         * convert.c: Likewise.
19927         * cse.c: Likewise.
19928         * cselib.c: Likewise.
19929         * dbgcnt.c: Likewise.
19930         * dbxout.c: Likewise.
19931         * ddg.c: Likewise.
19932         * dominance.c: Likewise.
19933         * emit-rtl.c: Likewise.
19934         * explow.c: Likewise.
19935         * expmed.c: Likewise.
19936         * fixed-value.c: Likewise.
19937         * fold-const.c: Likewise.
19938         * fwprop.c: Likewise.
19939         * gcse.c: Likewise.
19940         * ggc-common.c: Likewise.
19941         * ggc-page.c: Likewise.
19942         * ggc-zone.c: Likewise.
19943         * gimple-low.c: Likewise.
19944         * gimplify.c: Likewise.
19945         * graph.c: Likewise.
19946         * haifa-sched.c: Likewise.
19947         * ifcvt.c: Likewise.
19948         * implicit-zee.c: Likewise.
19949         * integrate.c: Likewise.
19950         * ira-build.c: Likewise.
19951         * ira-color.c: Likewise.
19952         * ira-conflicts.c: Likewise.
19953         * ira-costs.c: Likewise.
19954         * ira-lives.c: Likewise.
19955         * ira.c: Likewise.
19956         * lists.c: Likewise.
19957         * loop-doloop.c: Likewise.
19958         * loop-iv.c: Likewise.
19959         * lto-opts.c: Likewise.
19960         * lto-symtab.c: Likewise.
19961         * main.c: Likewise.
19962         * modulo-sched.c: Likewise.
19963         * optabs.c: Likewise.
19964         * params.c: Likewise.
19965         * plugin.c: Likewise.
19966         * postreload-gcse.c: Likewise.
19967         * postreload.c: Likewise.
19968         * predict.c: Likewise.
19969         * profile.c: Likewise.
19970         * real.c: Likewise.
19971         * regcprop.c: Likewise.
19972         * reginfo.c: Likewise.
19973         * regmove.c: Likewise.
19974         * reorg.c: Likewise.
19975         * resource.c: Likewise.
19976         * rtl.c: Likewise.
19977         * rtlanal.c: Likewise.
19978         * sched-deps.c: Likewise.
19979         * sched-ebb.c: Likewise.
19980         * sched-rgn.c: Likewise.
19981         * sdbout.c: Likewise.
19982         * sel-sched-dump.c: Likewise.
19983         * sel-sched-ir.c: Likewise.
19984         * simplify-rtx.c: Likewise.
19985         * stmt.c: Likewise.
19986         * stor-layout.c: Likewise.
19987         * store-motion.c: Likewise.
19988         * targhooks.c: Likewise.
19989         * tree-cfg.c: Likewise.
19990         * tree-cfgcleanup.c: Likewise.
19991         * tree-dump.c: Likewise.
19992         * tree-eh.c: Likewise.
19993         * tree-inline.c: Likewise.
19994         * tree-nomudflap.c: Likewise.
19995         * tree-object-size.c: Likewise.
19996         * tree-optimize.c: Likewise.
19997         * tree-outof-ssa.c: Likewise.
19998         * tree-phinodes.c: Likewise.
19999         * tree-profile.c: Likewise.
20000         * tree-ssa-ccp.c: Likewise.
20001         * tree-ssa-coalesce.c: Likewise.
20002         * tree-ssa-live.c: Likewise.
20003         * tree-ssa-loop-niter.c: Likewise.
20004         * tree-ssa-loop-prefetch.c: Likewise.
20005         * tree-ssa-loop.c: Likewise.
20006         * tree-ssa-structalias.c: Likewise.
20007         * tree-ssa-uninit.c: Likewise.
20008         * tree-ssa.c: Likewise.
20009         * tree-vect-data-refs.c: Likewise.
20010         * tree-vect-loop-manip.c: Likewise.
20011         * tree-vect-loop.c: Likewise.
20012         * tree-vect-patterns.c: Likewise.
20013         * tree-vect-stmts.c: Likewise.
20014         * tree-vrp.c: Likewise.
20015         * varasm.c: Likewise.
20016         * vec.c: Likewise.
20017         * web.c: Likewise.
20018         * xcoffout.c: Likewise.
20019
20020 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
20021
20022         * gengtype.c (write_field_root): New function.
20023         (write_root): Use it.
20024
20025 2010-07-07  Wei Guozhi  <carrot@google.com>
20026
20027         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20028         of lowest bits to lshift/compare): Add a missing line.
20029
20030 2010-07-07  Wei Guozhi  <carrot@google.com>
20031
20032         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
20033         of lowest bits to lshift/compare): New.
20034
20035 2010-07-07  Tom Tromey  <tromey@redhat.com>
20036
20037         * doc/tm.texi: Update.
20038         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
20039         Add @hook.
20040         * target.def (want_debug_pub_sections): New hook.
20041         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
20042         * dwarf2out.c (add_pubname_string): Check
20043         targetm.want_debug_pub_sections.
20044         (add_pubname): Likewise.
20045         (add_pubtype): Likewise.
20046
20047 2010-07-07  Jie Zhang  <jie@codesourcery.com>
20048
20049         * genautomata.c (output_automata_list_min_issue_delay_code):
20050         Correctly decompress min_issue_delay.
20051
20052 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20053
20054         PR rtl-optimization/44404
20055         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
20056         possible, use reg_overlap_mentioned_p instead.
20057
20058 2010-07-07  Duncan Sands  <baldrick@free.fr>
20059
20060         PR middle-end/41355
20061         * tree.c (build_function_type_skip_args): Copy the original type using
20062         build_distinct_type_copy rather than copy_node.
20063
20064 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20065
20066         PR target/44850
20067         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
20068         revision 161876.
20069         (ix86_expand_prologue): Likewise.
20070         (ix86_handle_fndecl_attribute): Likewise.
20071         (ix86_asm_declare_function_name): Likewise.
20072         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20073         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
20074         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
20075         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
20076         * doc/extend.texi: Likewise.
20077
20078 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
20079
20080         PR target/44844
20081         * config/i386/i386.md (rdrand<mode>): Changed to expand to
20082         retry if the carry flag isn't valid.
20083         (rdrand<mode>_1): New.
20084
20085 2010-07-07  Richard Guenther  <rguenther@suse.de>
20086
20087         PR middle-end/44790
20088         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
20089         for expanding the constant offset for MEM_REFs.
20090
20091 2010-07-07  Richard Guenther  <rguenther@suse.de>
20092
20093         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
20094         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
20095         * gimple.h (is_gimple_operand): Remove.
20096         * gimple.c (is_gimple_operand): Likewise.
20097         (walk_gimple_op): Fix wi->val_only setting for calls.
20098         * tree-cfg.c (verify_gimple_call): Fix argument validation.
20099         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
20100         invalid gimple calls.
20101
20102 2010-07-06  Jan Hubicka  <jh@suse.cz>
20103
20104         * lto-cgraph.c (output_cgraph): Add missing declaration.
20105
20106 2010-07-06  Jan Hubicka  <jh@suse.cz>
20107
20108         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
20109         partition.
20110
20111 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
20112
20113         * doc/gimple.texi (GIMPLE_DEBUG): Document.
20114         * doc/rtl.texi (Debug Information): New node.
20115         (NOTE_INSN_VAR_LOCATION): Document.
20116         (debug_insn): Likewise.
20117         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
20118
20119 2010-07-07  Jan Hubicka  <jh@suse.cz>
20120
20121         With parts by Richard Guenther.
20122
20123         PR middle-end/44813
20124         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
20125         for functions passed by reference.
20126         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
20127         in memory when passed by reference.
20128         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
20129         beggining.
20130         * ipa-split.c (split_function): Cleanup way return value is passed;
20131         handle SSA DECL_BY_REFERENCE retvals.
20132         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
20133         DECL_BY_REFERENCE is set.
20134         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
20135         find_what_p_points_to): Handle RESULT_DECL.
20136         * tree-inline.c (declare_return_variable): Get new entry_block argument;
20137         when passing by reference ensure that RESULT_DECL is gimple_val.
20138         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
20139         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
20140
20141 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
20142
20143         PR rtl-optimization/44787
20144         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
20145         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
20146
20147 2010-07-06  Jan Hubicka  <jh@suse.cz>
20148
20149         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
20150         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
20151         with body can prevail.
20152         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
20153         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
20154         * cgraph.c (cgraph_get_node_or_alias): New function.
20155         * cgraph.h (cgraph_get_node_or_alias): Declare.
20156
20157 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
20158
20159         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
20160         support.
20161         (ix86_expand_prologue): Likewise.
20162         (ix86_handle_fndecl_attribute): Likewise.
20163         (ix86_asm_declare_function_name): New function for
20164         ASM_DECLARE_FUNCTION_NAME.
20165         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
20166         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
20167         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
20168         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
20169         * doc/extend.texi: Adjust documentation about ms_hook_prologue
20170         attribute.
20171
20172 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20173
20174         * config/i386/i386.md (immediate_operand): New mode attribute.
20175
20176         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
20177         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
20178         using P mode iterator.
20179         (pro_epilogue_adjust_stack_di_2): Rename from
20180         pro_epilogue_adjust_stack_rex64_2.
20181
20182         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
20183
20184 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20185
20186         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
20187         through gen_mov_insv_1 function pointer.
20188         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
20189         gen_truncxf<mode>2 through gen_truncxf function pointer.
20190         (remainder<mode>3): Ditto.
20191         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
20192         (allocate_stack): Call gen_allocate_stack_worker_64 or
20193         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
20194         function pointer.
20195         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
20196         function pointer.
20197
20198 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
20199
20200         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
20201         operand constraint instead of <r><i>m.
20202
20203 2010-07-06  Richard Guenther  <rguenther@suse.de>
20204
20205         PR middle-end/44828
20206         * convert.c (convert_to_integer): Watch out for overflowing
20207         MULT_EXPR as well.
20208
20209 2010-07-05  Jan Hubicka  <jh@suse.cz>
20210
20211         * lto-streamer.c (write_symbol_vec): Rename to ...
20212         (write_symbol) ... this one; write only symbol given and when
20213         present in cache. Sanity check that what is defined is present
20214         in cgraph/varpool with body/finalized decl.
20215         (write_symbols_of_kind): Remove.
20216         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
20217         pairs to produce symtab.
20218         (produce_asm_for_decls): Update call of produce_symtab; don't do so
20219         when doing WPA streaming.
20220
20221 2010-07-05  Jan Hubicka  <jh@suse.cz>
20222
20223         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
20224         function is still available to fold into.
20225
20226 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20227
20228         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
20229         * function.h (struct_function): Change type of local_decls field
20230         to a VEC.
20231         (add_local_decl): New function.
20232         (FOR_EACH_LOCAL_DECL): New macro.
20233         * cfgexpand.c (init_vars_expansion): Adjust for new type of
20234         cfun->local_decls.
20235         (estimated_stack_frame_size): Likewise.
20236         (expand_used_vars): Likewise.
20237         * cgraphbuild.c (build_cgraph_edges): Likewise.
20238         * function.c (instantiate_decls_1): Likewise.
20239         * ipa-struct-reorg.c (build_data_structure): Likewise.
20240         * ipa-type-escape.c (analyze_function): Likewise.
20241         * lto-streamer-in.c (input_function): Likewise.
20242         * lto-streamer-out.c (output_function): Likewise.
20243         * tree-ssa-live.c (remove_unused_locals): Likewise.
20244         * tree.c (free_lang_data_in_decl): Likewise.
20245         (find_decls_types_in_node): Likewise.
20246         * omp-low.c (remove_exit_barrier): Likewise.
20247         (expand_omp_taskreg): Likewise.
20248         (list2chain): Rename to...
20249         (vec2chain): ...this.  Adjust.
20250         * cgraphunit.c (assemble_thunk): Call add_local_decl.
20251         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
20252         * gimple-low.c (record_vars_into): Likewise.
20253         * tree-inline.c (remap_decls): Likewise.
20254         (declare_return_variable): Likewise.
20255         (declare_inline_vars): Likewise.
20256         (copy_forbidden): Adjust for new type of cfun->local_decls.
20257         (add_local_variables): New function.
20258         (expand_call_inline): Call it.
20259         (tree_function_versioning): Likewise.
20260
20261 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
20262
20263         AVX Programming Reference (June, 2010)
20264         * config/i386/cpuid.h (bit_F16C): New.
20265         (bit_RDRND): Likewise.
20266         (bit_FSGSBASE): Likewise.
20267
20268         * config/i386/i386-builtin-types.def: Add
20269         "DEF_FUNCTION_TYPE (UINT16)", function types for
20270         float16 <-> float conversions and
20271         "DEF_FUNCTION_TYPE (VOID, UINT64)".
20272
20273         * config/i386/i386-c.c (ix86_target_macros_internal): Support
20274         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
20275         OPTION_MASK_ISA_F16C.
20276
20277         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
20278         (OPTION_MASK_ISA_RDRND_SET): Likewise.
20279         (OPTION_MASK_ISA_F16C_SET): Likewise.
20280         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
20281         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
20282         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
20283         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
20284         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
20285         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
20286         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
20287         (override_options): Handle them.
20288         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
20289         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
20290         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
20291         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
20292         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
20293         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
20294         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
20295         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
20296         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
20297         (bdesc_args): Likewise.
20298         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
20299         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
20300         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
20301         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
20302         Handle non-memory store.
20303
20304         * config/i386/i386.h (TARGET_FSGSBASE): New.
20305         (TARGET_RDRND): Likewise.
20306         (TARGET_F12C): Likewise.
20307
20308         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
20309         (UNSPEC_VCVTPS2PH): Likewise.
20310         (UNSPECV_RDFSBASE): Likewise.
20311         (UNSPECV_RDGSBASE): Likewise.
20312         (UNSPECV_WRFSBASE): Likewise.
20313         (UNSPECV_WRGSBASE): Likewise.
20314         (UNSPECV_RDRAND): Likewise.
20315         (rdfsbase<mode>): Likewise.
20316         (rdgsbase<mode>): Likewise.
20317         (wrfsbase<mode>): Likewise.
20318         (wrgsbase<mode>): Likewise.
20319         (rdrand<mode>): Likewise.
20320
20321         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
20322
20323         * config/i386/immintrin.h (_rdrand_u16): New.
20324         (_rdrand_u32): Likewise.
20325         (_readfsbase_u32): Likewise.
20326         (_readfsbase_u64): Likewise.
20327         (_readgsbase_u32): Likewise.
20328         (_readgsbase_u64): Likewise.
20329         (_writefsbase_u32): Likewise.
20330         (_writefsbase_u64): Likewise.
20331         (_writegsbase_u32): Likewise.
20332         (_writegsbase_u64): Likewise.
20333         (_rdrand_u64): Likewise.
20334         (_cvtsh_ss): Likewise.
20335         (_mm_cvtph_ps): Likewise.
20336         (_mm256_cvtph_ps): Likewise.
20337         (_cvtss_sh): Likewise.
20338         (_mm_cvtps_ph): Likewise.
20339         (_mm256_cvtps_ph): Likewise.
20340
20341         * config/i386/sse.md (vcvtph2ps): New.
20342         (*vcvtph2ps_load): Likewise.
20343         (vcvtph2ps256): Likewise.
20344         (vcvtps2ph): Likewise.
20345         (*vcvtps2ph): Likewise.
20346         (*vcvtps2ph_store): Likewise.
20347         (vcvtps2ph256): Likewise.
20348
20349         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
20350
20351         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
20352
20353 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
20354
20355         PR bootstrap/44512
20356         * genenums.c (main): Output include of insn-constants.h
20357         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
20358
20359 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
20360
20361         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
20362         (override_options): Initialize it.
20363         (ix86_expand_prologue): Use it.
20364
20365 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20366
20367         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
20368
20369 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20370
20371         * double-int.h (fit_double_type): Remove declaration.
20372         * double-int.c (fit_double_type): Remove function.
20373         * tree.h (int_fits_type_p): Adjust prototype.
20374         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
20375         instead of fit_double_type.
20376         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
20377         instead of fit_double_type and build_int_cst_wide.
20378         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
20379         instead of fit_double_type and build_int_cst_wide.
20380         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
20381         of fit_double_type.
20382
20383 2010-07-05  Jan Hubicka  <jh@suse.cz>
20384
20385         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
20386         in_other_partition.
20387         * lto-cgraph.c (referenced_from_other_partition_p,
20388         reachable_from_other_partition_p): Use in_other_partition flags.
20389         (output_node, output_varpool_node): COMDAT nodes always have private
20390         copies and thus are never used from other partition.
20391
20392 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
20393
20394         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20395         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
20396         * config/ia64/ia64.c Include reload.h.
20397         (ia64_memory_move_cost): New function.
20398         (TARGET_MEMORY_MOVE_COST): Define.
20399         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
20400         memory_move_cost.
20401
20402 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
20403
20404         PR middle-end/42505
20405         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
20406         comments about cost model.
20407         (try_add_cand_for):  Add second strategy for choosing initial set
20408         based on original IVs, controlled by ORIGINALP argument.
20409         (get_initial_solution): Add ORIGINALP argument.
20410         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
20411         (find_optimal_iv_set): Try two different strategies for choosing
20412         the IV set, and return the one with lower cost.
20413
20414 2010-07-05  Richard Guenther  <rguenther@suse.de>
20415
20416         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
20417
20418 2010-07-05  Richard Guenther  <rguenther@suse.de>
20419
20420         * tree.c (reference_alias_ptr_type): New function.
20421         * tree.h (reference_alias_ptr_type): Declare.
20422         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
20423         allow non-TARGET_MEM_REF new refs.
20424         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
20425         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
20426         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
20427         (create_mem_ref): Get alias pointer type.  Adjust calls to
20428         create_mem_ref_raw.
20429         (maybe_fold_tmr): Likewise.
20430         * tree-flow.h (create_mem_ref): Adjust prototype.
20431
20432 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
20433
20434         PR c++/44808
20435         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
20436         *from_p is VAR_DECL.
20437
20438 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20439
20440         * tree.h (build_call_list): Remove.
20441         * tree.c (build_call_list): Remove.
20442
20443 2010-07-05  Richard Guenther  <rguenther@suse.de>
20444
20445         * double-int.h (double_int_sub): Declare.
20446         * double-int.c (double_int_sub): New function.
20447         * dwarf2out.c (field_byte_offset): Use it.
20448         * fixed-value.c (do_fixed_add): Likewise.
20449         (do_fixed_multiply): Likewise.
20450         (do_fixed_divide): Likewise.
20451         * tree-predcom.c (add_ref_to_chain): Likewise.
20452         (determine_roots_comp): Likewise.
20453         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
20454
20455 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
20456
20457         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
20458         implementations.
20459
20460 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
20461
20462         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
20463         * arm-modes.def (CC_NOTB): Don't define.
20464         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
20465         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
20466         (LTUGEU): New code_iterator.
20467         (cnb, optab): New corresponding code_attrs.
20468         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
20469         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
20470         using LTUGEU.
20471         (addsi3_carryin_shift_<optab>): Likewise.
20472         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
20473         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
20474         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
20475         (subsi3_compare): Renamed from subsi3_compare0_c.
20476         Change CC_NOTB to CC.
20477         (arm_subsi3_insn): Allow constants for operand 0.
20478         (compare_scc peephole for eq case): New.
20479         (compare_scc splitters): Change CC_NOTB to CC.
20480
20481 2010-07-05  Richard Guenther  <rguenther@suse.de>
20482
20483         * tree-ssa-loop-im.c (for_each_index): Do not handle
20484         ALIGN_INDIRECT_REF.
20485         (gen_lsm_tmp_name): Likewise.
20486         * tree-dump.c (dequeue_and_dump): Likewise.
20487         * tree-pretty-print.c (dump_generic_node): Likewise.
20488         (op_code_prio): Likewise.
20489         (op_symbol_code): Likewise.
20490         * tree.c (staticp): Likewise.
20491         (build1_stat): Likewise.
20492         * tree.h (INDIRECT_REF_P): Likewise.
20493         * fold-const.c (maybe_lvalue_p): Likewise.
20494         (operand_equal_p): Likewise.
20495         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
20496         (ao_ref_init_from_vn_reference): Likewise.
20497         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
20498         (find_interesting_uses_address): Likewise.
20499         * dwarf2out.c (loc_list_from_tree): Likewise.
20500         * gimplify.c (gimplify_expr): Likewise.
20501         * tree-eh.c (tree_could_trap_p): Likewise.
20502         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
20503         * cfgexpand.c (expand_debug_expr): Likewise.
20504         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
20505         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
20506         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
20507         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
20508         * tree-ssa-operands.c (get_expr_operands): Likewise.
20509         * expr.c (safe_from_p): Likewise.
20510         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
20511         * tree-vect-data-refs.c (vect_setup_realignment): Build
20512         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
20513         * tree-vect-stmts.c (vectorizable_load): Likewise.
20514         * tree.def (ALIGN_INDIRECT_REF): Remove.
20515
20516 2010-07-05  Richard Guenther  <rguenther@suse.de>
20517
20518         PR tree-optimization/44784
20519         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
20520         for inserted stmts.
20521         (find_or_generate_expression): Fix SCCVN insertion check.
20522
20523 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
20524
20525         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
20526         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
20527         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
20528         directives.
20529
20530 2010-07-05  Ira Rosen  <irar@il.ibm.com>
20531
20532         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
20533         statements that are not vectorized.
20534         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
20535         in INSIDE_COST.
20536
20537 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
20538
20539         PR bootstrap/44820
20540         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
20541
20542 2010-07-05  Richard Guenther  <rguenther@suse.de>
20543
20544         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
20545         RESULT_DECLs properly.
20546
20547 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
20548
20549         PR rtl-optimization/44695
20550         * config/i386/i386.md (extract_code): Removed.
20551         (<u>divmodqi4): Likewise.
20552         (divmodqi4): New.
20553         (udivmodqi4): Likewise.
20554         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
20555         (udivmodhiqi3): Likewise.
20556
20557 2010-07-04  Jan Hubicka  <jh@suse.cz>
20558
20559         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
20560
20561 2010-07-04  Jan Hubicka  <jh@suse.cz>
20562
20563         * cgraphunit.c (init_cgraph): Only initialize dump file if it
20564         is not already initialized.
20565
20566 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20567
20568         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
20569         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
20570         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
20571         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
20572         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
20573         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
20574         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
20575         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
20576         (sync_new_nand_optab): Redefine as macros.
20577         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
20578         Delete.
20579         (direct_optab_index): New enum.
20580         (direct_optab_d): New structure.
20581         (direct_optab): New typedef.
20582         (direct_optab_table): Declare.
20583         (direct_optab_handler, set_direct_optab_handler): New functions.
20584         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
20585         (sync_lock_release_optab): New macros.
20586         * optabs.c (direct_optab_table): New variable.
20587         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
20588         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
20589         cmpstr_optab and cmpstrn_optab.
20590         (emit_conditional_move): Likewise for movcc_optab.
20591         (can_conditionally_move_p): Likewise for movcc_gen_code.
20592         (init_insn_codes): Clear direct_optab_table.
20593         (init_optabs): Don't initialize the new "direct optabs" here.
20594         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
20595         vcond_gen_code.
20596         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
20597         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
20598         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
20599         (expand_sync_operation): Likewise other sync_*_optabs.
20600         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
20601         to sync_compare_and_swap_optab.
20602         (expand_sync_lock_test_and_set): Use direct_optab_handler for
20603         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
20604         to the names of both.
20605         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
20606         cmpstr_optab and cmpstrn_optab.
20607         (expand_builtin_lock_release): Likewise sync_lock_release.
20608         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
20609         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
20610         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
20611         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
20612         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
20613         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
20614         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
20615         (sync_lock_test_and_set, sync_lock_release): Delete.
20616         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
20617         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
20618         * genopinit.c (optabs): Use set_direct_optab_handler for the new
20619         macro optabs.
20620         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
20621         the "optab" local variable.  Use direct_optab_handler for optab and
20622         sync_compare_and_swap_optab.
20623         * reload1.c (reload_in_optab, reload_out_optab): Delete.
20624         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
20625         reload_in_optab and reload_out_optab.
20626         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
20627         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
20628         * config/pa/pa.c (pa_secondary_reload): Likewise.
20629         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
20630         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
20631         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
20632         (VMSupportsCS8_builtin): Likewise.
20633
20634 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20635
20636         * optabs.h (optab_handlers): Change type of insn_code to int.
20637         (optab_handler, set_optab_handler, convert_optab_handler)
20638         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
20639         CODE_FOR_nothing".
20640         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
20641         (init_insn_codes): Zero both the above arrays.
20642         (init_optabs): Never call init_insn_codes first time around.
20643
20644 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
20645
20646         * optabs.h (optab_handler, convert_optab_handler): Turn into
20647         inline functions that return an insn code.
20648         (set_optab_handler, set_convert_optab_handler): New functions.
20649         * builtins.c: Replace optab_handler(X)->insn_code with
20650         optab_handler or set_optab_handler thoughout.  Likewise
20651         convert_optab_handler(X)->insn_code with convert_optab_handler
20652         and set_convert_optab_handler.
20653         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
20654         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
20655         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
20656         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
20657         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
20658         config/spu/spu.c: Likewise.
20659
20660 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
20661
20662         PR target/44531
20663         * config.gcc (sh*-*-*): Use regular expressions instead of
20664         the 'i' modifier for sed substitutions.
20665
20666 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
20667
20668         * gimple.c (gimple_body): Comments added.
20669
20670 2010-07-04  Richard Guenther  <rguenther@suse.de>
20671
20672         PR middle-end/44809
20673         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
20674         of an INDIRECT_REF.
20675
20676 2010-07-04  Richard Guenther  <rguenther@suse.de>
20677
20678         PR tree-optimization/44479
20679         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
20680         extra SSA name copy statements which preserves points-to
20681         information.
20682         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
20683         Copy points-to information for all pointers.  Properly handle
20684         MEM_REFs.
20685         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
20686         copy statements.
20687         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
20688         dependency.
20689
20690 2010-07-04  Richard Guenther  <rguenther@suse.de>
20691
20692         PR middle-end/44785
20693         * tree-inline.c (initialize_inlined_parameters): Do not
20694         re-use pointer-map slot over remap_type call.
20695
20696 2010-07-04  Richard Guenther  <rguenther@suse.de>
20697
20698         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
20699
20700 2010-07-04  Richard Guenther  <rguenther@suse.de>
20701
20702         PR tree-optimization/44656
20703         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
20704         again after value-replacing in the defintions lhs.
20705
20706 2010-07-04  Ira Rosen  <irar@il.ibm.com>
20707             Revital Eres  <eres@il.ibm.com>
20708
20709         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
20710         Document new arguments.
20711         * doc/tm.texi: Regenerate.
20712         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
20713         Handle unaligned store.
20714         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
20715         * target.def (builtin_vectorization_cost): Add new arguments.
20716         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
20717         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
20718         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
20719         (vect_vfa_segment_size): Fix indentation.
20720         * tree-vectorizer.h (struct _vect_peel_info): New.
20721         (struct _vect_peel_extended_info): New.
20722         (struct _loop_vec_info): Add new field for peeling hash table and a
20723         macro for its access.
20724         (VECT_MAX_COST): Define.
20725         (vect_get_load_cost): Declare.
20726         (vect_get_store_cost, vect_get_known_peeling_cost,
20727         vect_get_single_scalar_iteraion_cost): Likewise.
20728         (vect_supportable_dr_alignment): Add new argument.
20729         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
20730         field.
20731         (destroy_loop_vec_info): Free peeling hash table.
20732         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
20733         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
20734         vect_analyze_slp. Fix indentation.
20735         (vect_get_single_scalar_iteraion_cost): New function.
20736         (vect_get_known_peeling_cost): Likewise.
20737         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
20738         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
20739         statement. Move outside cost calculation inside unknown peeling case.
20740         Call vect_get_known_peeling_cost for known amount of peeling.
20741         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
20742         reference to the print message of forced alignment.
20743         (vect_verify_datarefs_alignment): Update call to
20744         vect_supportable_dr_alignment.
20745         (vect_get_data_access_cost): New function.
20746         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
20747         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
20748         vect_peeling_hash_choose_best_peeling): Likewise.
20749         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
20750         to store all the accesses in the loop and find best possible access to
20751         align using peeling for known alignment case. For unknown alignment
20752         check if stores are preferred or if peeling is worthy.
20753         (vect_find_same_alignment_drs): Analyze pairs of loads too.
20754         (vect_supportable_dr_alignment): Add new argument and check aligned
20755         accesses according to it.
20756         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
20757         (cost_for_stmt): Call vect_get_stmt_cost.
20758         (vect_model_simple_cost): Likewise.
20759         (vect_model_store_cost): Call vect_get_stmt_cost. Call
20760         vect_get_store_cost to calculate the cost of the statement.
20761         (vect_get_store_cost): New function.
20762         (vect_model_load_cost): Call vect_get_stmt_cost. Call
20763         vect_get_load_cost to calculate the cost of the statement.
20764         (vect_get_load_cost): New function.
20765         (vectorizable_store): Update call to vect_supportable_dr_alignment.
20766         (vectorizable_load): Likewise.
20767         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
20768         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
20769         arguments. Handle unaligned store.
20770         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
20771         (rs6000_builtin_support_vector_misalignment): Return true for word and
20772         double word alignments for VSX.
20773         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
20774         vect_supportable_dr_alignment and builtin_vectorization_cost.
20775
20776 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20777
20778         PR target/44597
20779         * config/pa/predicates.md (prefetch_cc_operand): Remove.
20780         (prefetch_nocc_operand): Likewise.
20781         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
20782         (prefetch_20): New insn.
20783         (prefetch_cc): Remove.
20784         (prefetch_nocc): Likewise.
20785
20786 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20787
20788         * expr.c (vector_mode_valid_p): Move to c-common.c.
20789         * expr.h (vector_mode_valid_p): Do not declare here.
20790         * system.h: Poison GCC_EXPR_H in front-ends.
20791         * Makefile.in: Update dependencies.
20792
20793 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20794
20795         PR target/44705
20796         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
20797
20798 2010-07-03  Jan Hubicka  <jh@suse.cz>
20799
20800         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
20801         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
20802         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
20803         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
20804         Likewise.
20805
20806         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
20807         Update timevars.V
20808         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
20809         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
20810         TV_IPA_LTO_DECL_OUT): New.
20811         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
20812
20813 2010-07-03  Jan Hubicka  <jh@suse.cz>
20814
20815         * ipa-inline.c (update_edge_key): Break out from ...
20816         update_callers_keys): ... here;
20817         (update_callee_keys): Update only the edges from caller to callee.
20818         (update_all_calle_keys): Do what update_calle_keys did.
20819         (decide_inlining_of_small_functions): Avoid recomputing of all
20820         callees when badness increase.
20821
20822 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20823
20824         * config/arm/arm.c (arm_attr_length_move_neon): New.
20825         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
20826         * config/arm/neon.md (define_mode_attr V_slen): Remove.
20827         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
20828         to compute length attribute.
20829
20830 2010-07-03  Jie Zhang  <jie@codesourcery.com>
20831
20832         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
20833         as predicate for operand 1 and remove its constraint.
20834         * config/arm/predicates.md (vfp_register_operand): New.
20835         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
20836         (*push_fp_multi): Likewise.
20837
20838 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
20839
20840         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
20841
20842 2010-07-03  Jan Hubicka  <jh@suse.cz>
20843
20844         * config/i386/i386.c (override_options): Revert accidental commit.
20845
20846 2010-07-02  Le-Chun Wu  <lcwu@google.com>
20847
20848         PR c++/44128
20849         * doc/invoke.texi: Update documentation of -Wshadow.
20850
20851 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
20852             Julian Brown  <julian@codesourcery.com>
20853             Sandra Loosemore  <sandra@codesourcery.com>
20854
20855         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
20856         comparisons.  Adjust to take both operands.
20857         (arm_select_cc_mode): Handle DImode comparisons.
20858         (arm_gen_compare_reg): Generate a scratch register for DImode
20859         comparisons which require one.  Use xor for Thumb equality checks.
20860         (arm_const_double_by_immediates): New.
20861         (arm_print_operand): Allow 'Q' and 'R' for constants.
20862         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
20863         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
20864         arm_canonicalize_comparison.
20865         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
20866         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
20867         prototype.
20868         (arm_const_double_by_immediates): Declare.
20869         * config/arm/constraints.md (Di): New constraint.
20870         * config/arm/predicates.md (arm_immediate_di_operand)
20871         (arm_di_operand, cmpdi_operand): New.
20872         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
20873         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
20874         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
20875         (cstoredi4): Handle non-Cirrus also.
20876
20877 2010-07-02  Julian Brown  <julian@codesourcery.com>
20878             Sandra Loosemore  <sandra@codesourcery.com>
20879
20880         PR target/43703
20881         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
20882         (smax<mode>3): Disable for NEON float modes when
20883         flag_unsafe_math_optimizations is false.
20884         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
20885         (*mul<mode>3_neon)
20886         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
20887         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
20888         for NEON float modes when flag_unsafe_math_optimizations is false.
20889         (quad_halves_<code>v4sf): Only enable if
20890         flag_unsafe_math_optimizations is true.
20891         * doc/invoke.texi (ARM Options): Add note about floating point
20892         vectorization requiring -funsafe-math-optimizations.
20893
20894 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20895             Julian Brown  <julian@codesourcery.com>
20896
20897         * config/arm/neon.md (UNSPEC_VABA): Delete.
20898         (UNSPEC_VABAL): Delete.
20899         (UNSPEC_VABS): Delete.
20900         (UNSPEC_VMUL_N): Delete.
20901         (adddi3_neon): New.
20902         (subdi3_neon): New.
20903         (mul<mode>3add<mode>_neon): Make the pattern named.
20904         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
20905         (neon_vadd<mode>): Replace with define_expand, and move the remaining
20906         unspec parts...
20907         (neon_vadd<mode>_unspec): ...to this.
20908         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
20909         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
20910         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
20911         (neon_vaba<mode>): Rewrite in terms of vabd.
20912         (neon_vabal<mode>): Rewrite in terms of vabdl.
20913         (neon_vabs<mode>): Rewrite without unspec.
20914         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
20915         (*arm_subdi3): Likewise.
20916         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
20917         No_op attribute to disable assembly output checks.
20918         * config/arm/arm_neon.h: Regenerated.
20919         * doc/arm-neon-intrinsics.texi: Regenerated.
20920
20921 2010-07-02  Jan Hubicka  <jh@suse.cz>
20922
20923         * ipa-split.c (split_function): For aggregate values, set the return
20924         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
20925         *<retval> = fncall.part ().
20926         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
20927
20928 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
20929
20930         * config/arm/neon.md (UNSPEC_VAND): Delete.
20931         (UNSPEC_VBIC): Delete.
20932         (UNSPEC_VCLZ): Delete.
20933         (UNSPEC_VCNT): Delete.
20934         (UNSPEC_VEOR): Delete.
20935         (UNSPEC_VORN): Delete.
20936         (UNSPEC_VORR): Delete.
20937         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
20938         core registers too.
20939         (anddi3_neon): Likewise.
20940         (orndi3_neon): Likewise.
20941         (bicdi3_neon): Likewise.
20942         (xordi3_neon): Likewise.
20943         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
20944         rid of unspec and handle unused operand.
20945         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
20946         * config/arm/predicates.md (imm_for_neon_logic_operand):
20947         Require TARGET_NEON.
20948         (imm_for_neon_inv_logic_operand): Likewise.
20949         * config/arm/arm.md (define_split for logical_binary_operator):
20950         Disable for NEON registers.
20951         (anddi3): Add new define_expand, and rename the insn.  Disable
20952         this insn for NEON, where anddi3_neon now applies.
20953         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
20954         (iordi3): As for anddi3.
20955         (xordi3): Likewise.
20956         * config/arm/neon.ml (Vand): Split DImode variants and mark them
20957         as No_op to disable testing for exact instruction match.
20958         (Vorr): Likewise.
20959         (Veor): Likewise.
20960         (Vbic): Likewise.
20961         (Vorn): Likewise.
20962         * config/arm/arm_neon.h: Regenerated.
20963         * doc/arm-neon-intrinsics.texi: Regenerated.
20964
20965 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
20966
20967         * expr.h (emit_stack_probe): Declare.
20968         * explow.c (emit_stack_probe): Make global.
20969         (anti_adjust_stack_and_probe): Fix comments.
20970         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
20971         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20972         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
20973         * config/sparc/sparc.c: Include except.h.
20974         (sparc_emit_probe_stack_range): New function.
20975         (output_probe_stack_range): Likewise.
20976         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
20977         built-in stack checking is enabled.
20978         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
20979         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
20980         (probe_stack_range): New insn.
20981
20982 2010-07-02  Richard Guenther  <rguenther@suse.de>
20983
20984         PR target/43958
20985         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
20986         for argument alignment.
20987
20988 2010-07-02  Jan Hubicka  <jh@suse.cz>
20989
20990         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
20991         walk backwards from entry_bb to check only those basic block of header
20992         that might lead to execution of split part.
20993         (consider_split) ... here.
20994         (find_return_bb): Allow assignment in return BB.
20995         (find_retval): New.
20996         (split_function): Fix name of cloned function; take care of updating
20997         return value in return_bb containing move.
20998
20999 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
21000
21001         PR target/44771
21002         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
21003         used variable insn.
21004
21005 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
21006
21007         * implicit-zee.c (combine_reaching_defs): Fix long lines.
21008         (is_set_with_extension_DI): Delete.
21009         (struct zero_extend_info): New structure.
21010         (add_removable_zero_extend): New function.
21011         (find_removable_zero_extends): Use note_stores to find SETs.
21012         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
21013
21014 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21015
21016         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
21017         is_miss_rate_acceptable. Pull total_positions computation
21018         out of the loops.  Early return if miss_positions exceeds
21019         the acceptable threshold.
21020         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
21021         is_miss_rate_acceptable after renaming of compute_miss_rate.
21022
21023 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
21024
21025         PR middle-end/44576
21026         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
21027         of 1000) for miss rate if the address diference is greater than or
21028         equal to the cache line size (the two reference will never hit the
21029         same cache line).
21030
21031 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
21032
21033         PR target/42835
21034         * config/arm/arm-modes.def (CC_NOTB): New mode.
21035         * config/arm/arm.c (get_arm_condition_code): Handle it.
21036         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
21037         * config/arm/arm.md (subsi3_compare0_c): New pattern.
21038         (compare_scc): Now a define_and_split.  Add a number of extra
21039         splitters before it.
21040
21041         PR target/42172
21042         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
21043         and ZERO_EXTEND.
21044         (arm_rtx_costs_1): Likewise.
21045         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
21046         * config/arm/arm.md (is_arch6): New attribute.
21047         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
21048         extendqisi2): Tighten the code somewhat, avoiding invalid
21049         RTL to occur in the expander patterns.
21050         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
21051         (thumb1_zero_extendhisi2_v6): Delete.
21052         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
21053         (thumb1_extendhisi2_v6): Delete.
21054         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
21055         (thumb1_extendqisi2_v6): Delete.
21056         (zero_extendhisi2 for register input splitter): New.
21057         (zero_extendqisi2 for register input splitter): New.
21058         (thumb1_extendhisi2 for register input splitter): New.
21059         (extendhisi2 for register input splitter): New.
21060         (extendqisi2 for register input splitter): New.
21061         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
21062         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
21063         and add support for a register alternative requiring a split.
21064         (thumb1_zero_extendqisi2): Likewise.
21065         (arm_zero_extendqisi2): Likewise.
21066         (arm_extendhisi2): Likewise.
21067         (arm_extendqisi2): Likewise.
21068
21069 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21070
21071         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
21072         instead of an unspec.
21073         (neon_expand_vector_init): Likewise.
21074         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
21075         (UNSPEC_VDUP_LANE): Delete.
21076         (UNSPEC VDUP_N): Delete.
21077         (UNSPEC_VGET_HIGH): Delete.
21078         (UNSPEC_VGET_LANE): Delete.
21079         (UNSPEC_VGET_LOW): Delete.
21080         (UNSPEC_VMVN): Delete.
21081         (UNSPEC_VSET_LANE): Delete.
21082         (V_double_vector_mode): New.
21083         (vec_set<mode>_internal): Make code emitted match that for the
21084         corresponding intrinsics.
21085         (vec_setv2di_internal): Likewise.
21086         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
21087         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
21088         (neon_vset_lane<mode>): Combine double and quad patterns and
21089         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
21090         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
21091         (neon_vdup_n<mode>): Rewrite RTL without unspec.
21092         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
21093         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
21094         with neon_vdup_lanev2di, adjusting the pattern from the latter
21095         to be predicable for consistency.
21096         (neon_vdup_lane<mode>_internal): New.
21097         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
21098         to avoid using an unspec.
21099         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
21100         (neon_vdup_lanev2di): Turn into a define_expand.
21101         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
21102         (neon_vget_high<mode>): Replace with....
21103         (neon_vget_highv16qi): New pattern using canonical RTL.
21104         (neon_vget_highv8hi): Likewise.
21105         (neon_vget_highv4si): Likewise.
21106         (neon_vget_highv4sf): Likewise.
21107         (neon_vget_highv2di): Likewise.
21108         (neon_vget_low<mode>): Replace with....
21109         (neon_vget_lowv16qi): New pattern using canonical RTL.
21110         (neon_vget_lowv8hi): Likewise.
21111         (neon_vget_lowv4si): Likewise.
21112         (neon_vget_lowv4sf): Likewise.
21113         (neon_vget_lowv2di): Likewise.
21114
21115         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
21116         test for this emitting vmov.
21117         (Vset_lane): Likewise.
21118         (Vdup_n): Likewise.
21119         (Vmov_n): Likewise.
21120
21121         * doc/arm-neon-intrinsics.texi: Regenerated.
21122
21123 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
21124
21125         * config/arm/neon.md (vec_extractv2di): Correct error in register
21126         numbering to reconcile with neon_vget_lanev2di.
21127
21128 2010-07-02  Richard Guenther  <rguenther@suse.de>
21129
21130         * tree-ssa-structalias.c (pt_solution_set_var): New function.
21131         * tree-ssa-alias.h (pt_solution_set_var): Declare.
21132         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
21133         points-to information.
21134
21135 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
21136
21137         * config/s390/s390.c (override_options): Adopt prefetching
21138         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
21139
21140 2010-07-02  Jan Hubicka  <jh@suse.cz>
21141
21142         * df-problems.c (df_kill_notes): Do not collect dead  notes.
21143         (df_set_note): Just call add_reg_note.
21144         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
21145         df_create_unused_note): Do not deal with lists of old notes.
21146         (df_note_bb_compute): Likewise.
21147
21148 2010-07-02  Richard Guenther  <rguenther@suse.de>
21149
21150         * tree-ssa-structalias.c (find_func_aliases): Handle
21151         pointer alignment via BIT_AND_EXPR.
21152         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
21153
21154 2010-07-02  Richard Guenther  <rguenther@suse.de>
21155
21156         * tree-data-ref.c (initialize_data_dependence_relation): Handle
21157         mismatching number of dimensions properly.
21158
21159 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21160
21161         PR target/44707
21162         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
21163         (lo_sum (high ...) ...) patterns generated by earlier passes.
21164
21165 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21166
21167         * doc/install.texi (Prerequisites): Document Perl requirement on
21168         Solaris 2.
21169         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
21170
21171 2010-07-02  Richard Guenther  <rguenther@suse.de>
21172
21173         PR middle-end/44777
21174         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
21175
21176 2010-07-02  Jan Hubicka  <jh@suse.cz>
21177
21178         PR middle-end/44706
21179         * predict.c (predict_paths_for_bb): Handle case when control dependence
21180         BB has only abnormal edges.
21181
21182 2010-07-02  Richard Guenther  <rguenther@suse.de>
21183
21184         PR tree-optimization/44748
21185         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
21186         the embedded conversion in MEM_REFs.
21187
21188 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
21189
21190         * reload.c: Include toplev.h.
21191         * recog.c:  Likewise.
21192         * Makefile.in: Adjust dependencies.
21193
21194 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
21195
21196         PR debug/44694
21197         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
21198         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
21199
21200 2010-07-01  Richard Guenther  <rguenther@suse.de>
21201
21202         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
21203         types for offsets.
21204
21205 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
21206
21207         PR target/44732
21208         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
21209         Fix argument types.
21210
21211 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
21212
21213         PR target/44727
21214         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21215         Make sure operand 0 dies.
21216
21217 2010-07-01  Richard Guenther  <rguenther@suse.de>
21218
21219         PR middle-end/42834
21220         PR middle-end/44468
21221         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
21222         * doc/generic.texi (References to storage): Document MEM_REF.
21223         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
21224         (print_call_name): Likewise.
21225         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
21226         (build_simple_mem_ref_loc): New function.
21227         (mem_ref_offset): Likewise.
21228         * tree.h (build_simple_mem_ref_loc): Declare.
21229         (build_simple_mem_ref): Define.
21230         (mem_ref_offset): Declare.
21231         * fold-const.c: Include tree-flow.h.
21232         (operand_equal_p): Handle MEM_REF.
21233         (build_fold_addr_expr_with_type_loc): Likewise.
21234         (fold_comparison): Likewise.
21235         (fold_unary_loc): Fold
21236         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
21237         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
21238         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
21239         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
21240         (ptr_deref_may_alias_ref_p_1): Likewise.
21241         (ao_ref_base_alias_set): Properly differentiate base object for
21242         offset and TBAA.
21243         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
21244         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
21245         (indirect_refs_may_alias_p): Likewise.
21246         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
21247         chasing code.
21248         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
21249         (call_may_clobber_ref_p_1): Likewise.
21250         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
21251         * expr.c (expand_assignment): Handle MEM_REF.
21252         (store_expr): Handle MEM_REFs from STRING_CSTs.
21253         (store_field): If expanding a MEM_REF of a non-addressable
21254         decl use bitfield operations.
21255         (get_inner_reference): Handle MEM_REF.
21256         (expand_expr_addr_expr_1): Likewise.
21257         (expand_expr_real_1): Likewise.
21258         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
21259         * alias.c (ao_ref_from_mem): Handle MEM_REF.
21260         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
21261         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
21262         (dr_analyze_indices): Likewise.
21263         (dr_analyze_alias): Likewise.
21264         (object_address_invariant_in_loop_p): Likewise.
21265         * gimplify.c (mark_addressable): Handle MEM_REF.
21266         (gimplify_cond_expr): Build MEM_REFs.
21267         (gimplify_modify_expr_to_memcpy): Likewise.
21268         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
21269         (gimple_fold_indirect_ref): Adjust.
21270         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
21271         * tree.def (MEM_REF): New tree code.
21272         * tree-dfa.c: Include toplev.h.
21273         (get_ref_base_and_extent): Handle MEM_REF.
21274         (get_addr_base_and_unit_offset): New function.
21275         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
21276         * gimple-fold.c (may_propagate_address_into_dereference): Handle
21277         MEM_REF.
21278         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
21279         accesses if the array has just one dimension.  Remove always true
21280         parameter.  Do not require type compatibility here.
21281         (maybe_fold_offset_to_component_ref): Remove.
21282         (maybe_fold_stmt_indirect): Remove.
21283         (maybe_fold_reference): Remove INDIRECT_REF handling.
21284         Fold back to non-MEM_REF.
21285         (maybe_fold_offset_to_address): Simplify.  Deal with type
21286         mismatches here.
21287         (maybe_fold_reference): Likewise.
21288         (maybe_fold_stmt_addition): Likewise.  Also handle
21289         &ARRAY + I in addition to &ARRAY[0] + I.
21290         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
21291         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
21292         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
21293         * tree-ssa.c (useless_type_conversion_p): Make most pointer
21294         conversions useless.
21295         (warn_uninitialized_var): Handle MEM_REF.
21296         (maybe_rewrite_mem_ref_base): New function.
21297         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
21298         to SSA form.
21299         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
21300         INDIRECT_REF handling.
21301         (copy_tree_body_r): Handle MEM_REF.
21302         * gimple.c (is_gimple_addressable): Adjust.
21303         (is_gimple_address): Likewise.
21304         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
21305         invariant base are invariant.
21306         (is_gimple_min_lval): Adjust.
21307         (is_gimple_mem_ref_addr): New function.
21308         (get_base_address): Handle MEM_REF.
21309         (count_ptr_derefs): Likewise.
21310         (get_base_loadstore): Likewise.
21311         * gimple.h (is_gimple_mem_ref_addr): Declare.
21312         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
21313         * tree-cfg.c (verify_address): New function, split out from ...
21314         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
21315         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
21316         INDIRECT_REFs.
21317         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
21318         INDIRECT_REF.  Allow conversions.
21319         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
21320         a register does not change its size.
21321         (verify_types_in_gimple_reference): Verify MEM_REF.
21322         (verify_gimple_assign_single): Disallow INDIRECT_REF.
21323         Handle MEM_REF.
21324         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
21325         New.
21326         (mark_address_taken): Handle MEM_REF.
21327         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
21328         (get_asm_expr_operands): Pass opf_not_non_addressable.
21329         (get_expr_operands): Handle opf_[not_]non_addressable.
21330         Handle MEM_REF.  Remove INDIRECT_REF handling.
21331         * tree-vrp.c (check_array_ref): Handle MEM_REF.
21332         (search_for_addr_array): Likewise.
21333         (check_array_bounds): Likewise.
21334         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
21335         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
21336         (ref_always_accessed_p): Likewise.
21337         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
21338         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
21339         Handle MEM_REF.
21340         * cgraphbuild.c (mark_load): Properly check for NULL result
21341         from get_base_address.
21342         (mark_store): Likewise.
21343         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
21344         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
21345         handling for MEM_REF.
21346         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
21347         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
21348         * builtins.c (stabilize_va_list_loc): Use the function ABI
21349         valist type if we couldn't canonicalize the argument type.
21350         Always dereference with the canonical va-list type.
21351         (maybe_emit_free_warning): Handle MEM_REF.
21352         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
21353         memmove to memcpy.
21354         * builtins.c (fold_builtin_memory_op): Use ref-all types
21355         for all memcpy foldings.
21356         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
21357         (build_outer_var_ref): Likewise.
21358         (scan_omp_1_op): Likewise.
21359         (lower_rec_input_clauses): Likewise.
21360         (lower_lastprivate_clauses): Likewise.
21361         (lower_reduction_clauses): Likewise.
21362         (lower_copyprivate_clauses): Likewise.
21363         (expand_omp_atomic_pipeline): Likewise.
21364         (expand_omp_atomic_mutex): Likewise.
21365         (create_task_copyfn): Likewise.
21366         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
21367         Remove old union trick.  Initialize constant offsets.
21368         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
21369         INDIRECT_REF.  Init base_alias_set properly.
21370         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
21371         (vn_reference_fold_indirect): Adjust for MEM_REFs.
21372         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
21373         for ARRAY_REFs.
21374         (may_insert): Remove.
21375         (visit_reference_op_load): Do not test may_insert.
21376         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
21377         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
21378         a field to store the constant offset this op applies.
21379         (run_scc_vn): Adjust prototype.
21380         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
21381         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
21382         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
21383         bother about volatile qualifiers on pointers.
21384         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
21385         * tree-ssa-loop-ivopts.c
21386         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
21387         (strip_offset_1): Likewise.
21388         (find_interesting_uses_address): Replace INDIRECT_REF handling with
21389         MEM_REF handling.
21390         (get_computation_cost_at): Likewise.
21391         * ipa-pure-const.c (check_op): Handle MEM_REF.
21392         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
21393         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
21394         and constants.
21395         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
21396         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
21397         (eliminate_local_variables_1): Likewise.
21398         (create_call_for_reduction_1): Likewise.
21399         (create_loads_for_reductions): Likewise.
21400         (create_loads_and_stores_for_name): Likewise.
21401         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
21402         (ssa_accessed_in_tree): Handle MEM_REF.
21403         (ssa_accessed_in_assign_rhs): Likewise.
21404         (update_type_size): Likewise.
21405         (analyze_accesses_for_call_stmt): Likewise.
21406         (analyze_accesses_for_assign_stmt): Likewise.
21407         (transform_access_sites): Likewise.
21408         (transform_allocation_sites): Likewise.
21409         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
21410         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
21411         not handle INDIRECT_REF.
21412         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
21413         (cond_store_replacement): Likewise.
21414         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21415         MEM_REF, no not handle INDIRECT_REFs.
21416         (insert_into_preds_of_block): Properly initialize avail.
21417         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
21418         for ARRAY_REFs.  Properly handle reference lookups that
21419         require a bit re-interpretation.
21420         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
21421         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
21422         (build_ref_for_offset_1): Remove.
21423         (build_ref_for_offset): Build MEM_REFs.
21424         (gate_intra_sra): Disable for now.
21425         (sra_ipa_modify_expr): Handle MEM_REF.
21426         (ipa_early_sra_gate): Disable for now.
21427         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
21428         MEM_REF handling.
21429         (disqualify_base_of_expr): Likewise.
21430         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
21431         MEM_REF handling.
21432         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
21433         Use mem_ref_offset.  Remove bogus folding.
21434         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
21435         (make_fancy_name_1): Add support for MEM_REF.
21436         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
21437         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
21438         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
21439         (compute_complex_ancestor_jump_func): Likewise.
21440         (ipa_analyze_virtual_call_uses): Likewise.
21441         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
21442         INDIRECT_REF folding with more generalized MEM_REF folding.
21443         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
21444         (forward_propagate_addr_into_variable_array_index): Also handle
21445         &ARRAY + I in addition to &ARRAY[0] + I.
21446         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
21447         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
21448         creates assignments with overlap.
21449         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
21450         (get_frame_field): Likewise.
21451         (get_nonlocal_debug_decl): Likewise.
21452         (convert_nonlocal_reference_op): Likewise.
21453         (struct nesting_info): Add mem_refs pointer-set.
21454         (create_nesting_tree): Allocate it.
21455         (convert_local_reference_op): Insert to be folded mem-refs.
21456         (fold_mem_refs): New function.
21457         (finalize_nesting_tree_1): Perform defered folding of mem-refs
21458         (free_nesting_tree): Free the pointer-set.
21459         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
21460         (vectorizable_load): Likewise.
21461         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
21462         (propagate_with_phi): Likewise.
21463         * tree-object-size.c (addr_object_size): Handle MEM_REFs
21464         instead of INDIRECT_REFs.
21465         (compute_object_offset): Handle MEM_REF.
21466         (plus_stmt_object_size): Handle MEM_REF.
21467         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
21468         for &MEM_REF.
21469         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
21470         (symbol_marked_for_renaming): Likewise.
21471         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
21472         (fold-const.o): Add $(TREE_FLOW_H).
21473         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
21474         (find_func_clobbers): Likewise.
21475         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
21476         (decompose_access): Likewise.
21477         (replace_field_acc): Likewise.
21478         (replace_field_access_stmt): Likewise.
21479         (insert_new_var_in_stmt): Likewise.
21480         (get_stmt_accesses): Likewise.
21481         (reorg_structs_drive): Disable.
21482         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
21483         (ix86_canonical_va_list_type): Likewise.
21484
21485 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21486
21487         PR other/44566
21488         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
21489         * target.def (struct gcc_target): Replace enum reg_class with
21490         reg_class_t in hook argument / return types.
21491         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
21492         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
21493         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
21494         * targhooks.h (default_branch_target_register_class): Likewise.
21495         (default_ira_cover_classes, default_secondary_reload): Likewise.
21496         (default_memory_move_cost, default_register_move_cost): Likewise.
21497         * targhooks.c (default_branch_target_register_class): Likewise.
21498         (default_ira_cover_classes, default_secondary_reload): Likewise.
21499         (default_memory_move_cost, default_register_move_cost): Likewise.
21500         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
21501         * bt-load.c (branch_target_load_optimize): Likewise.
21502         * ira.c (setup_cover_and_important_classes): Likewise.
21503         * ira-costs.c (copy_cost): Likewise.
21504         * reload1.c (emit_input_reload_insns): Likewise.
21505         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
21506         * config/frv/frv.c (frv_secondary_reload): Likewise.
21507         * config/s390/s390.c (s390_secondary_reload): Likewise.
21508         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
21509         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
21510         (ix86_register_move_cost): Likewise.
21511         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
21512         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
21513         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
21514         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
21515         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
21516         (rs6000_ira_cover_classes): Likewise.
21517         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
21518         * config/picochip/picochip-protos.h (picochip_secondary_reload):
21519         Likewise.
21520         * config/pa/pa.c (pa_secondary_reload): Likewise.
21521         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
21522         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
21523         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
21524         * doc/tm.texi: Regenerate.
21525
21526 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
21527
21528         PR bootstrrap/44726
21529         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
21530         use.
21531         (build_alias_set_optimal_p): Likewise.
21532         (build_base_obj_set_for_drs): Likewise.
21533
21534 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
21535
21536         * target.def: Remove comment about licensing problems of function
21537         declarations.
21538
21539         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
21540         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
21541         * doc/tm.texi: Regenerate.
21542
21543         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
21544         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
21545
21546         * target.def (enum_va_list_p): Use DEFHOOK.
21547         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
21548         Rename ptype to ptree.
21549         * doc/tm.texi: Regenerate.
21550
21551         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
21552         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
21553         * doc/tm.texi: Regenerate.
21554
21555         * target.def (memory_move_cost): Use DEFHOOK.
21556         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
21557         Rename regclass AKA class to rclass.
21558         * doc/tm.texi: Regenerate.
21559
21560         * target.def (pragma_parse): Use DEFHOOK.
21561         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
21562         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
21563         * doc/tm.texi: Regenerate.
21564
21565         * target.def (pass_by_reference): Use DEFHOOK.
21566         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
21567         * doc/tm.texi: Regenerate.
21568
21569         * target.def (resolve_overloaded_builtin): Rename params to arglist.
21570         Use DEFHOOK.
21571         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
21572         * doc/tm.texi: Regenerate.
21573
21574         * target.def (return_pops_args): Use DEFHOOK.
21575         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
21576         Rename stack-size to size.
21577         * doc/tm.texi: Regenerate.
21578
21579         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
21580         last-sched_cycle to last_clock, cur_cycle to clock.
21581         * doc/tm.texi.in: Use @hook.
21582         * doc/tm.texi: Regenerate.
21583
21584         * target.def (print_operand, print_operand_address): Update comment.
21585         (print_operand_punct_valid_p): Likewise.
21586
21587 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21588
21589         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
21590         to rtl.h.
21591         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
21592         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
21593         * rtl-error.h: New.
21594         * regrename.c: Do not include toplev.h. Include rtl-error.h.
21595         * rtl-error.c: Likewise.
21596         * reload.c: Likewise.
21597         * recog.c:  Likewise.
21598         * sel-sched.c: Likewise.
21599         * function.c: Likewise.
21600         * reg-stack.c: Likewise.
21601         * cfgrtl.c: Likewise.
21602         * reload1.c: Likewise.
21603         * final.c: Include rtl-error.
21604         * Makefile.in: Adjust dependencies.
21605
21606 2010-06-30  Jan Hubicka  <jh@suse.cz>
21607
21608         PR middle-end/PR44706
21609         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
21610         to return the value.
21611
21612 2010-06-30  Michael Matz  <matz@suse.de>
21613
21614         PR bootstrap/44699
21615         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
21616         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
21617         a gimple reg, attach the original VDEF to the last store in the
21618         sequence.
21619
21620 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
21621
21622         PR other/44034
21623         * config/darwin.c (darwin_override_options): Use renamed
21624         targetm.asm_out.emit_unwind_label.
21625
21626 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21627
21628         PR tree-optimization/39799
21629         * tree-inline.c (remap_ssa_name): Initialize variable only if
21630         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21631
21632 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
21633
21634         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
21635
21636 2010-06-30  Richard Guenther  <rguenther@suse.de>
21637
21638         PR target/44722
21639         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
21640         against oscillation with reverse peephole2.
21641
21642 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21643
21644         PR target/44721
21645         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21646         Fix last commit.
21647
21648 2010-06-30  Nick Clifton  <nickc@redhat.com>
21649
21650         * config/rx/rx-modes.def: New file.
21651         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
21652         (CC_REGNUM): Define.
21653         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
21654         register.
21655         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
21656         (SELECT_CC_MODE): Define.
21657         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
21658         (reg:CC CC_REG) instead of (cc0).
21659         (attr "cc"): Delete.
21660         (cbranchsi4): Do not split compare and branch here. Instead move
21661         it to...
21662         (cbranchsi4_<code>): ... here.  New patterns.
21663         (cmpsi): Call rx-compare_redundant to find out if it is necessary
21664         to emit the compare instruction.
21665         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
21666         cc_status flags.
21667         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
21668         FIRST_PSEUDO_REGNUM.
21669         (rx_expand_prologue, rx_expand_epilogue): Likewise.
21670         (rx_notice_update_cc): Delete.
21671         (rx_cc_modes_compatible): New function.
21672         (flags_needed_for_conditional): New function.
21673         (flags_from_mode): New function.
21674         (rx_compare_redundant): New function - scans backwards through
21675         insn list to find out if condition flags are already set correctly.
21676         (TARGET_CC_MODES_COMPATIBLE): Define.
21677         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
21678
21679         * config/rx/rx.h (BRANCH_COST): Define.
21680         (REGISTER_MOVE_COST): Define.
21681         * config/rx/predicates (rx_source_operand): Allow all constant types.
21682         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
21683         (tstsi4): New pattern.
21684         * config/rx/rx.c (rx_memory_move_cost): Define.
21685         (TARGET_MEMORY_MOVE_COST): Define.
21686
21687 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21688
21689         * tree.h (block_may_fallthru): Declare here.
21690         * tree-flow.h (block_may_fallthru): Do not declare here.
21691         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
21692         bitmap.h
21693         * Makefile.in (c-typeck.o): Update dependencies.
21694
21695 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
21696
21697         PR debug/44694
21698         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
21699         * cselib.c (cfa_base_preserved_regno): New static variable.
21700         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
21701         of REGNO (cfa_base_preserved_val->locs->loc).
21702         (cselib_preserve_cfa_base_value): Add regno argument, set
21703         cfa_base_preserved_regno to it.
21704         (cselib_invalidate_regno): Allow removal of registers other than
21705         cfa_base_preserved_regno from cfa_base_preserved_val.
21706         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
21707         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
21708         of MEM addresses, if not on LHS.
21709         (reverse_op): Don't add reverse ops for cfa_base_rtx.
21710         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
21711
21712 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
21713
21714         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
21715         static variables.
21716         (peep2_buf_position): New static function.
21717         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
21718         peephole2_optimize): Use it.
21719         (peep2_attempt, peep2_update_life): New static functions, broken out
21720         of peephole2_optimize.
21721         (peep2_fill_buffer): New static function.
21722         (peephole2_optimize): Change the main loop to try to fill the buffer
21723         with the maximum number of insns before matching them against
21724         peepholes.  Use a forward scan.  Remove special case for targets with
21725         conditional execution.
21726         * genrecog.c (change_state): Delete dead code.
21727         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
21728         Rewrite so as not to expect the second insn to have had a peephole
21729         applied yet.
21730
21731 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21732
21733         * genhooks.c (emit_findices): Cast field precision to int.
21734         (emit_documentation): Likewise.
21735
21736 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
21737
21738         PR tree-optimization/43801
21739         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
21740         if old_decl was DECL_ONE_ONLY.
21741
21742         PR debug/44668
21743         * dwarf2out.c (add_accessibility_attribute): New function.
21744         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
21745         instead of adding DW_AT_accessibility manually.
21746         (gen_enumeration_type_die, gen_struct_or_union_type_die,
21747         gen_typedef_die): Use it.
21748
21749 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21750
21751         * vmsdbgout.c (full_name): Just output the file name if not native.
21752
21753 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21754
21755         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
21756         (funcnam_table): New static table.
21757         (funcnum_table): New static table.
21758         (write_rtnbeg): Write value saved in funcnum_table.
21759         (write_rtnend): Write value saved in funcnum_table.
21760         (vmsdbgout_begin_function): Save current function info in
21761         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
21762         (vmsdbgout_finish): Iterate over funcnum_table.
21763
21764 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21765
21766         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
21767         (vmsdbgout_type_decl): Declare
21768         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
21769         (FUNC_EPILOGUE_LABEL): New macro
21770         (vmsdbgout_begin_epilogue): New function.
21771         (vmsdbgout_type_decl): New function.
21772
21773 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21774
21775         * vmsdbg.h: Update copyright.
21776
21777 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
21778
21779         * vmsdbg.h (DST_K_TBG): New DST constant.
21780         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
21781         (write_modbeg): Cast module_language to avoid warning.
21782         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
21783
21784 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21785
21786         PR other/44034
21787         * target.def, doc/tm.texi.in, genhooks.c: New files.
21788         * target.h: Instead of defining individual hook members,
21789         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
21790         include target.def.
21791         * target-def.h: Instead of defining individual hook initializers,
21792         include target-hooks-def.h.
21793         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
21794         targetm.live_on_entry -> targetm.extra_live_on_entry
21795         targetm.sched.md_finish ->targetm.sched.finish
21796         targetm.sched.md_init -> targetm.sched.init
21797         targetm.sched.md_init_global -> targetm.sched.init_global
21798         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
21799         targetm.asm_out.except_table_label ->
21800           targetm.asm_out.emit_except_table_label
21801         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
21802         targetm.target_help -> targetm.help
21803         targetm.vectorize.builtin_support_vector_misalignment ->
21804           targetm.vectorize.support_vector_misalignment
21805         targetm.file_start_app_off -> targetm.asm_file_start_app_off
21806         targetm.file_start_file_directive ->
21807          targetm.asm_file_start_file_directive
21808         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
21809         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
21810         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
21811         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
21812           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
21813         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
21814           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
21815         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
21816         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
21817         * Makefile.in (TARGET_H): Depend on target.def.
21818         (TARGET_DEF_H): Depend on target-hooks-def.h.
21819         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
21820         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
21821         * doc/tm.texi: Regenerate.
21822
21823         * Makefile.in (s-tm-texi): Remove stray tab / rule.
21824
21825         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
21826         (targetm.sched.init): Likewise.
21827
21828 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21829
21830         PR bootstrap/44713
21831         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
21832         (function_arg_advance_32): Const-ify TYPE parameter.
21833         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
21834         (ix86_function_arg_advance): Change type of NAMED to bool.
21835         (function_arg_32): Const-ify CUM and TYPE parameters.
21836         (function_arg_64): Likewise.  Change type of NAMED to bool.
21837         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
21838         to bool.
21839         (ix86_function_arg): Change type of NAMED to bool.
21840         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
21841         last argument as a bool.
21842
21843 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
21844
21845         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
21846         (OVERRIDE_OPTIONS): Add note of obsolescence.
21847         Replace references with references to TARGET_OPTION_OVERRIDE.
21848         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
21849          the macro).
21850         * targhooks.c (default_target_option_override): New function.
21851         * targhooks.h (default_target_option_override): Declare.
21852         * target.h (struct gcc_target): Add override member to
21853         target_option member.
21854         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
21855         targetm.target_option.override call.
21856         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
21857         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
21858
21859 2010-06-29  Jan Hubicka  <jh@suse.cz>
21860
21861         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
21862
21863 2010-06-29  Jan Hubicka  <jh@suse.cz>
21864
21865         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
21866         unreachable.
21867         (rebuild_frequencies): New function.
21868         * predict.h (rebuild_frequencies): Declare.
21869         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
21870         entry block and edge reaching new_entry.
21871         (tree_function_versioning): When doing partial cloning, rebuild
21872         frequencies when done.
21873         * passes.c (execute_function_todo): Use rebild_frequencies.
21874
21875 2010-06-29  Richard Guenther  <rguenther@suse.de>
21876
21877         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
21878         * tree-flow.h (enum noalias_state): Remove.
21879         (struct var_ann_d): Remove noalias_state member.
21880
21881 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
21882
21883         PR target/43902
21884         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
21885         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
21886         (maddhidi4): Likewise.
21887
21888         Revert parts of the change for PR25130.
21889         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
21890         MEM_ALIAS_SET.
21891
21892 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21893
21894         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
21895         targetm.calls.function_incoming_arg, and
21896         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
21897         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
21898         * target.h (struct gcc_target): Add function_arg_advance,
21899         function_arg, and function_incoming_arg fields.
21900         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
21901         (TARGET_FUNCTION_INCOMING_ARG): Define.
21902         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
21903         and TARGET_FUNCTION_INCOMING_ARG.
21904         * targhooks.h (default_function_arg_advance): Declare.
21905         (default_function_arg, default_function_incoming_arg): Declare.
21906         * targhooks.c (default_function_arg_advance): New function.
21907         (default_function_arg, default_function_incoming_arg): New function.
21908         * config/i386/i386.c (function_arg_advance): Rename to...
21909         (ix86_function_arg_advance): ...this.  Make static.
21910         (function_arg): Rename to...
21911         (ix86_function_arg): ...this.  Make static.
21912         (TARGET_FUNCTION_ARG_ADVANCE): Define.
21913         (TARGET_FUNCTION_ARG): Define.
21914         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
21915         (FUNCTION_ARG): Delete.
21916         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
21917         (function_arg): Delete prototype.
21918
21919 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
21920
21921         * reginfo.c (init_reg_sets_1): Adjust comments.
21922         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
21923         * calls.c (prepare_call_address): Likewise.
21924         (emit_call_1): Use targetm.calls.return_pops_args.
21925         (expand_call): Likewise.
21926         * function.c (assign_parms): Likewise.
21927         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
21928         * target.h (struct gcc_target) [struct calls]: Add
21929         return_pops_args field.
21930         * targhooks.h (default_return_pops_args): Declare.
21931         * targhooks.c (default_return_pops_args): Define.
21932         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
21933         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
21934         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
21935         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
21936         documentation.
21937         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
21938         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
21939         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
21940         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
21941         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
21942         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
21943         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
21944         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
21945         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
21946         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
21947         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
21948         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
21949         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
21950         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
21951         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
21952         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
21953         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
21954         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
21955         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
21956         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
21957         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
21958         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
21959         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
21960         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
21961         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
21962         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
21963         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
21964         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
21965         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
21966         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
21967         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
21968         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
21969         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
21970         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
21971         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
21972         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
21973         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
21974         * config/i386/i386.c (ix86_return_pops_args): Make static.
21975         Constify arguments.
21976         (TARGET_RETURN_POPS_ARGS): Define.
21977         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
21978         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
21979         (TARGET_RETURN_POPS_ARGS): Define.
21980         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
21981         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
21982         (TARGET_RETURN_POPS_ARGS): Define.
21983
21984 2010-06-29  Richard Guenther  <rguenther@suse.de>
21985
21986         PR middle-end/44667
21987         * tree-inline.c (initialize_inlined_parameters): Make sure
21988         to remap the inlined parameter variable substitutions types.
21989
21990 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
21991
21992         PR rtl-optimization/44659
21993         * combine.c (make_compound_operation) <SUBREG>: Do not return the
21994         result of force_to_mode if it partially re-expanded the compound.
21995
21996 2010-06-28  Jan Hubicka  <jh@suse.cz>
21997
21998         PR middle-end/44671
21999         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
22000         RESULT_DECL.
22001
22002 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
22003
22004         * double-int.h (force_fit_type_double): Remove declaration.
22005         * double-int.c (force_fit_type_double): Move to tree.c.
22006         * tree.h (force_fit_type_double): Declare.
22007         * tree.h (force_fit_type_double): Moved from double-int.c. Use
22008         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
22009         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
22010         * convert.c (convert_to_pointer): Adjust call to
22011         force_fit_type_double.
22012         * tree-vrp.c (extract_range_from_assert,
22013         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
22014         * fold-const.c: Update comment.
22015         (int_const_binop, fold_convert_const_int_from_int,
22016         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
22017         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
22018         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
22019         round_up_loc): Adjust call to force_fit_type_double.
22020
22021 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22022
22023         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
22024
22025 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22026
22027         * tree-sra.c (convert_callers): New parameter, change fndecls of
22028         recursive calls.
22029         (modify_function): Pass the old decl to convert_callers.
22030
22031 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22032
22033         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
22034         ipa_check_create_node_params and ipa_initialize_node_params with
22035         checking asserts they are not necessary.
22036
22037 2010-06-28  Jan Hubicka  <jh@suse.cz>
22038
22039         PR tree-optimization/44687
22040         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
22041
22042 2010-06-28  Martin Jambor  <mjambor@suse.cz>
22043
22044         PR c++/44535
22045         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
22046         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
22047         instead of BINFO_BASE_BINFO.
22048
22049 2010-06-28  Michael Matz  <matz@suse.de>
22050
22051         PR middle-end/44592
22052         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
22053         proper VDEF chain for intermediate stores in the sequence.
22054
22055 2010-06-28  Jan Hubicka  <jh@suse.cz>
22056
22057         PR tree-optimization/44357
22058         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
22059         uninlinable functions.
22060
22061 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
22062
22063         * config.gcc (powerpc*-*-*): Handle titan.
22064         * config/rs6000/rs6000.c (titan_cost): New costs.
22065         (rs6000_override_options): Add "titan" to processor_target_table.
22066         Add Titan to branch alignment logic.
22067         Correctly set rs6000_cost for titan.
22068         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
22069         * config/rs6000/titan.md: New file.
22070         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
22071
22072 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22073
22074         * tree-browser.c (TB_history_stack): Convert to a VEC.
22075         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
22076         (TB_history_prev): Likewise.
22077
22078 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
22079
22080         * vec.h (vec_heap_free): Add parentheses around free.
22081
22082 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
22083
22084         * system.h: Poison GCC_EXCEPT_H for front-end files.
22085
22086         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
22087         langhook.
22088         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
22089         Define to NULL by default.
22090         * except.h: Define GCC_EXCEPT_H.
22091         (doing_eh): Remove prototype.
22092         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
22093         (lang_protect_cleanup_actions): Remove.
22094         * except.c (lang_protect_cleanup_actions): Remove.
22095         (doing_eh): Remove.
22096         (gen_eh_region): Don't check doing_eh here.
22097         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
22098         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
22099         instead of lang_protect_cleanup_actions.
22100         * omp-low.c (maybe_catch_exception): Likewise.
22101         * Makefile.in: Update dependencies.
22102
22103 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
22104
22105         * cgraph.h (struct varpool_node): new used_from_object_file flag.
22106         (struct cgraph_local_info): new used_from_object_file flag.
22107         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
22108         (cgraph_clone_node): initialize used_from_object_file.
22109         (cgraph_create_virtual_clone): initialize used_from_object_file.
22110         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
22111         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
22112         when compiling with -fwhole-program.
22113         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
22114         internal resolver.
22115         * ipa.c (function_and_variable_visibility): Set externally_visible
22116         flag of varpool_node if used_from_object_file flag is set.
22117         (cgraph_externally_visible_p): check used_from_object_file flag.
22118         * doc/invoke.texi (-fwhole-program option): Change description of
22119         externally_visible attribute accordingly.
22120         * doc/extend.texi (externally_visible): Ditto.
22121
22122 2010-06-27  Jan Hubicka  <jh@suse.cz>
22123
22124         * params.def (max-inline-insns-auto): Default to 40.
22125         * doc/invoke.texi (max-inline-insns-auto): Document the change.
22126
22127 2010-06-27  Jan Hubicka  <jh@suse.cz>
22128
22129         PR middle-end/44671
22130         PR middle-end/44686
22131         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
22132         signature change.
22133         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
22134         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
22135
22136 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
22137
22138         * target.h (struct gcc_target): Add register_move_cost field.
22139         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
22140         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
22141         * targhooks.c (default_register_move_cost): New function.
22142         * targhooks.h (default_register_move_cost): Declare function.
22143         * defaults.h (REGISTER_MOVE_COST): Delete.
22144         * ira-int.h (ira_register_move_cost): Update comment.
22145         * ira.c (ira_register_move_cost): Update comment.
22146         * reload.h (register_move_cost): Declare.
22147         * reginfo.c (register_move_cost): New function.
22148         (move_cost): Update comment.
22149         (init_move_cost, memory_move_secondary_cost): Replace
22150         REGISTER_MOVE_COST with register_move_cost.
22151         * postreload.c (reload_cse_simplify_set): (Ditto.).
22152         * reload.c (find_valid_class, find_reloads): (Ditto.).
22153         * reload1.c (choose_reload_regs): (Ditto.).
22154         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
22155         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
22156         * doc/md.texi (can_create_pseudo_p): Update documentation.
22157
22158         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22159         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22160         * config/i386/i386.h (ix86_memory_move_cost): Make static.
22161         (TARGET_MEMORY_MOVE_COST): Define.
22162
22163         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22164         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
22165         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
22166         (TARGET_MEMORY_MOVE_COST): Define.
22167
22168 2010-06-27  Richard Guenther  <rguenther@suse.de>
22169
22170         PR tree-optimization/44683
22171         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
22172         false edge from the inverted condition.
22173
22174 2010-06-27  Richard Guenther  <rguenther@suse.de>
22175
22176         PR middle-end/44684
22177         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
22178         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
22179         for register LHS.  Or non-store assignments.
22180
22181 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
22182
22183         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
22184         (sparc_emit_set_const64): Likewise.  Remove disabled code.
22185         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
22186         (sparc_emit_set_const64): Likewise.
22187
22188 2010-06-26  Catherine Moore  <clm@codesourcery.com>
22189
22190         * config/mips/mips.md (alu_type): New attribute.
22191         (type): Infer type from alu_type.
22192         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
22193         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
22194         *subsi3_extended, negsi2, negdi2, *low<mode>,
22195         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
22196         xor<mode>3, *nor<mode>3,
22197         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
22198         *zero_extendhi_truncqi):  Set alu_type instead of type.
22199
22200 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
22201
22202         * config/alpha/alpha.c (alpha_need_linkage): Adjust
22203         splay_tree_new_ggc call.
22204         (alpha_use_linkage): Likewise.
22205
22206 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22207
22208         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
22209         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
22210         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
22211         (static_specs): Remove switches_need_spaces.
22212         (process_command, do_self_spec): Hardcode handling "-o" instead of
22213         checking switches_need_spaces.
22214         * system.h (SWITCHES_NEED_SPACES): Poison.
22215
22216 2010-06-26  Richard Guenther  <rguenther@suse.de>
22217
22218         PR tree-optimization/44393
22219         * tree-loop-distribution.c (generate_loops_for_partition): Fix
22220         stmt removal and VOP renaming.
22221         (generate_memset_zero): Remove redundant stmt updating.
22222         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
22223         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
22224
22225 2010-06-26  Jan Hubicka  <jh@suse.cz>
22226
22227         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
22228         edges comming from header are equivalent.
22229         (visit_bb): Handle PHIs correctly.
22230         * tree-inline.c (copy_phis_for_bb): Be able to copy
22231         PHI from entry edge.
22232         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
22233
22234 2010-06-26  Richard Guenther  <rguenther@suse.de>
22235
22236         PR middle-end/44674
22237         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
22238         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
22239
22240 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
22241
22242         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
22243         add_infile, alloc_switch): New.
22244         (process_command): Remove variable lang_n_infiles.  Process
22245         options in a single pass.  Use new functions for allocating
22246         infiles and switches arrays.  Properly skip operands of
22247         -Xpreprocessor and -Xassembler.
22248
22249 2010-06-26  Jan Hubicka  <jh@suse.cz>
22250
22251         PR middle-end/44671
22252         * cgraphunit.c (cgraph_function_versioning): Remove wrong
22253         cgraph_make_decl_local call; fix typo copying RTL data.
22254
22255 2010-06-25  DJ Delorie  <dj@redhat.com>
22256
22257         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
22258         (m32c_output_aligned_common): Likewise.
22259         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
22260         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
22261         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
22262         (m32c_register_pragmas): Register it.
22263         * config/m32c/m32c.c (m32c_get_pragma_address): New.
22264         (m32c_insert_attributes): Set #pragma address decls volatile.
22265         (pragma_entry_eq): New.
22266         (pragma_entry_hash): New.
22267         (m32c_note_pragma_address): New.
22268         (m32c_get_pragma_address): New.
22269         (m32c_output_aligned_common): New.
22270         * doc/extend.texi: Document the new pragma.
22271
22272         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
22273         also.
22274         * config/m32c/predicates.md (m32c_any_operand): Check the code
22275         instead of memory_operand so as to allow matching volatile MEMs.
22276         (m32c_nonimmediate_operand): Likewise.
22277         (mra_operand): Allow volatiles.
22278
22279 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
22280
22281         PR debug/44610
22282         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
22283         address if the offset is unknown.
22284
22285 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
22286
22287         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
22288         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
22289         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
22290         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
22291         to ia64_start_function. Invoke it.
22292         * config/ia64/ia64.c (ia64_start_function): Call new function
22293         dwarf2out_vms_debug_main_pointer.
22294
22295 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22296
22297         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
22298         statements computing the true predicate.
22299
22300 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22301
22302         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
22303         to boolean_true_node.
22304         (reset_bb_predicate): New.
22305         (predicate_bbs): Call reset_bb_predicate.
22306
22307 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22308
22309         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
22310         (tree_if_conversion): Returns true when something has been changed.
22311         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
22312         changed something.
22313
22314 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
22315
22316         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
22317         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
22318         * tree-if-conv.c: Include dbgcnt.h.
22319         (tree_if_conversion): Use if_conversion_tree to count the number of
22320         if-convertible loops.
22321
22322 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
22323
22324         * common.opt (fprefetch-loop-arrays): Re-define
22325         -fprefetch-loop-arrays as a tri-state option with the initial
22326         value of -1.
22327         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
22328         pass only when flag_prefetch_loop_arrays > 0.
22329         * toplev.c (process_options): Note that, with tri-states,
22330         flag_prefetch_loop_arrays>0 means prefetching is enabled.
22331         * config/i386/i386.c (override_options): Enable prefetching at -O3
22332         for a set of CPUs that sw prefetching is helpful.
22333         (software_prefetching_beneficial_p): New.  Return TRUE if software
22334         prefetching is beneficial for the given CPU.
22335
22336 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22337
22338         PR rtl-optimization/44326
22339         * implicit-zee.c (find_removable_zero_extends): Replace
22340         INSN_P with NONDEBUG_INSN_P.
22341
22342 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22343
22344         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
22345         (struct ipa_node_params): Removed the modification_analysis_done flag.
22346         (ipa_is_param_modified): Removed.
22347         (ipa_analyze_node): Declare.
22348         (ipa_compute_jump_functions): Remove declaration.
22349         (ipa_count_arguments): Likewise.
22350         (ipa_detect_param_modifications): Likewise.
22351         (ipa_analyze_params_uses): Likewise.
22352         * ipa-prop.c (struct param_analysis_info): New type.
22353         (visit_store_addr_for_mod_analysis): Removed.
22354         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
22355         moved down in the file.
22356         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
22357         (ipa_count_arguments): Made static.
22358         (mark_modified): New function.
22359         (is_parm_modified_before_call): New function.
22360         (compute_pass_through_member_ptrs): New parameter parms_info, call
22361         is_parm_modified_before_call instead of ipa_is_param_modified.
22362         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
22363         it to compute_pass_through_member_ptrs.
22364         (ipa_compute_jump_functions): New parameter parms_info, pass it to
22365         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
22366         on the callee if it is analyzed.  Made static.
22367         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
22368         is_parm_modified_before_call instead of ipa_is_param_modified.
22369         (ipa_analyze_call_uses): New parameter parms_info, pass it to
22370         ipa_analyze_indirect_call_uses.
22371         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
22372         ipa_analyze_call_uses.
22373         (ipa_analyze_params_uses): New parameter parms_info, pass it to
22374         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
22375         (ipa_analyze_node): New function.
22376         (ipa_print_node_params): Do not dump the modified flag.
22377         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
22378         it.  Do not stream the modified parameter flag.
22379         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
22380         it.  Do not stream the modified parameter flag.
22381         * ipa-cp.c (ipcp_analyze_node): Removed.
22382         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
22383         with only a call to ipa_analyze_node.
22384         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
22385         node with only a call to ipa_analyze_node.
22386
22387 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22388
22389         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
22390
22391 2010-06-25  Jan Hubicka  <jh@suse.cz>
22392
22393         * tree-pass.h (pass_split_functions): Declare.
22394         * opts.c (decode_options): Enable function splitting at -O2
22395         * timevar.def (TV_IPA_FNSPLIT): New macro.
22396         * ipa-split.c: New file.
22397         * common.opt (-fpartial-inlining): New flag.
22398         * Makefile.in (ipa-split.o): New object file.
22399         * passes.c (init_optimization_passes): Add ipa-split.
22400         * params.def (partial-inlining-entry-probability): New parameters.
22401         * doc/invoke.texi (-fpartial-inlining): New.
22402
22403 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22404
22405         PR 44665
22406         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
22407         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
22408         (gimplify_expr): Likewise.
22409
22410 2010-06-25  Martin Jambor  <mjambor@suse.cz>
22411
22412         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
22413         statements instead of bailing out on them.
22414         (ipa_analyze_indirect_call_uses): Do not require that loads from the
22415         parameter are in the same BB as the condition.  Update comments.
22416
22417 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
22418
22419         PR middle-end/43866
22420         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
22421         true or always false, return NULL_TREE.
22422         (tree_unswitch_single_loop): Optimize conditions even when reaching
22423         max-unswitch-level parameter.  If num > 0, optimize first all conditions
22424         using entry checks, then do still reachable block discovery and consider
22425         only conditions in still reachable basic blocks in the loop.
22426
22427         PR tree-optimization/44539
22428         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
22429         the call doesn't have LHS, but has VDEF.
22430
22431 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22432
22433         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
22434         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
22435         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
22436         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
22437         * system.h (MODIFY_TARGET_NAME): Poison.
22438
22439 2010-06-25  Alan Modra  <amodra@gmail.com>
22440
22441         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
22442         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
22443         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
22444         CMODEL_LARGE as default.
22445         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
22446         (offsettable_ok_by_alignment): Delete.
22447         (rs6000_emit_move): Remove mcmodel=medium optimization.
22448
22449 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22450
22451         With large parts from Jim Wilson:
22452         PR target/43902
22453         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
22454         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22455         * optabs.c (optab_for_tree_code): Likewise.
22456         (expand_widen_pattern_expr): Likewise.
22457         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
22458         out of execute_optimize_widening_mul.
22459         (convert_plusminus_to_widen): New function.
22460         (execute_optimize_widening_mul): Use the two new functions.
22461         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
22462         Remove code to generate widening multiply-accumulate.  Add support
22463         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
22464         * gimple-pretty-print.c (dump_ternary_rhs): New function.
22465         (dump_gimple_assign): Call it when appropriate.
22466         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
22467         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
22468         (expand_gimple_stmt_1): Likewise.
22469         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22470         WIDEN_MULT_MINUS_EXPR.
22471         * tree-ssa-operands.c (get_expr_operands): Likewise.
22472         * tree-inline.c (estimate_operator_cost): Likewise.
22473         * gimple.c (extract_ops_from_tree_1): Renamed from
22474         extract_ops_from_tree.  Add new arg for a third operand; fill it.
22475         (gimple_build_assign_stat): Support operations with three operands.
22476         (gimple_build_assign_with_ops_stat): Likewise.
22477         (gimple_assign_set_rhs_from_tree): Likewise.
22478         (gimple_assign_set_rhs_with_ops_1): Renamed from
22479         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
22480         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
22481         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
22482         WIDEN_MULT_MINUS_EXPR.
22483         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
22484         (extract_ops_from_tree_1): Adjust declaration.
22485         (gimple_assign_set_rhs_with_ops_1): Likewise.
22486         (gimple_build_assign_with_ops): Pass NULL for last operand.
22487         (gimple_build_assign_with_ops3): New macro.
22488         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
22489         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
22490         functions.
22491         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
22492         (verify_gimple_assign): Call it.
22493         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
22494         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
22495         functions for dealing with three-operand statements.
22496         * tree.c (commutative_ternary_tree_code): New function.
22497         * tree.h (commutative_ternary_tree_code): Declare it.
22498         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
22499         ternary statements.
22500         (gimple_assign_nonzero_warnv_p): Likewise.
22501         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
22502         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
22503         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
22504         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
22505         (struct hashtable_expr): New member ternary in the union.
22506         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
22507         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
22508         (iterative_hash_hashable_expr): Likewise.
22509         (print_expr_hash_elt): Handle EXPR_TERNARY.
22510         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
22511         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
22512         statements.  Handle GIMPLE_TERNARY_RHS.
22513
22514 2010-06-25  Jan Hubicka  <jh@suse.cz>
22515
22516         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
22517
22518 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
22519
22520         PR c/44517
22521         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
22522         parameters are not good.
22523         (c_parser_parameter_declaration): Error unknown type name if the type
22524         name can't start declaration specifiers.
22525
22526 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
22527
22528         * gcc.c (translate_options): Don't mention +e in comment.
22529         (process_command): Don't handle +e specially.
22530
22531 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
22532
22533         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
22534
22535         * ira-build.c (merge_hard_reg_conflicts): New function.
22536         (create_cap_allocno, copy_info_to_removed_store_destinations,
22537         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
22538         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
22539         (remove_unnecessary_allocnos, remove_low_level_allocnos)
22540         copy_nifo_to_removed_store_destination): Use them.
22541         * ira-lives.c (make_hard_regno_born): New function, split out of
22542         make_regno_born.
22543         (make_allocno_born): Likewise.
22544         (make_hard_regno_dead): New function, split out of make_regno_dead.
22545         (make_allocno_dead): Likewise.
22546         (inc_register_pressure): New function, split out of set_allocno_live.
22547         (dec_register_pressure): New function, split out of clear_allocno_live.
22548         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
22549         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
22550         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
22551         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
22552         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
22553         mark_pseudo_regno_live.
22554         (process_bb_node_lives): Use mark_pseudo_regno_live,
22555         make_hard_regno_born and make_allocno_dead.
22556         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
22557         set_allocno_live, clear_allocno_live): Delete functions.
22558
22559         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
22560         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
22561         functions.
22562         (ira_flattening): Use ira_parent_allocno.
22563         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
22564         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
22565
22566         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
22567         statement.
22568
22569         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
22570         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
22571         minmax_set_iter_cond, minmax_set_iter_next,
22572         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
22573         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
22574         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
22575         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
22576         uses changed.
22577
22578         * ira-int.h (struct live_range, live_range_t): Renamed from struct
22579         ira_allocno_live_range and allocno_live_range_t; all uses changed.
22580         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
22581         All uses changed.
22582
22583 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
22584
22585         * thumb2.md (thumb2_tlobits_cbranch): Delete.
22586         (peephole2 to convert zero_extract/compare of single bit to
22587          lshift/compare): New.
22588
22589 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
22590
22591         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
22592         recursive call and call to 'int_const_binop'.
22593         (build_range_check, fold_cond_expr_with_comparison, unextend,
22594         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
22595         multiple_of_p): Adjust call to const_binop.
22596
22597 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
22598
22599         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
22600         determine size of XFmode operand.
22601         (XFmode extended DFmode push splitter): Ditto.
22602         (XFmode extended SFmode push splitter): Ditto.
22603
22604 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
22605
22606         PR target/44588
22607         * config/i386/i386.md (extract_code): New.
22608         (<u>divmodqi4): Likewise.
22609         (divmodhiqi3): Likewise.
22610         (udivmodhiqi3): Likewise.
22611         (<u>divqi3): Remvoved.
22612
22613 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
22614
22615         PR middle-end/44492
22616         * recog.h (struct recog_data): Add is_asm field.
22617         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
22618         present in constraints of inline-asm operand and memory operand
22619         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
22620         (extract_insn): Initialize recog_data.is_asm.
22621         * doc/md.texi (Constraints): Document operand side-effect rules.
22622
22623 2010-06-24  Andi Kleen  <ak@linux.intel.com>
22624
22625         * c-parser.c (c_parser_conditional_expression): Call
22626         warn_for_omitted_condop.
22627         * doc/invoke.texi: Document omitted condop warning.
22628
22629 2010-06-24  Nick Clifton<nickc@redhat.com>
22630
22631         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
22632         insn in the sequence is a jump insn before setting its label.
22633
22634 2010-06-24  Alan Modra  <amodra@gmail.com>
22635
22636         * collect2.c (main): Match exactly --version and --help.
22637
22638 2010-06-24  DJ Delorie  <dj@redhat.com>
22639
22640         * config/m32c/m32c-pragma.c: Don't include rtl.h.
22641
22642 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
22643
22644         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
22645         using X87MODEF mode iterator.
22646         (pushsf splitter): Macroize splitter using P mode iterator.
22647         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
22648         mode iterator.
22649
22650         (*movxf_internal): Rename from *movxf_integer.
22651         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
22652         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
22653         (*movdf_internal): Rename from *movdf_integer.
22654         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
22655         (*movsf_internal): Rename from *movdf_1.
22656
22657 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
22658
22659         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
22660         (const_gimple_seq_node): Removed typedefs.
22661
22662         * gimple.h (gimple_seq_node_d, gimple_seq_node)
22663         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
22664
22665 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
22666
22667         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
22668         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
22669         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
22670         and CODE_FOR_vec_extract_lo_v4df.
22671
22672         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
22673         Changed to define_insn_and_split.
22674         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
22675         (vec_extract_lo_v16hi): Likewise.
22676         (vec_extract_lo_v32qi): Likewise.
22677         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
22678         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
22679
22680 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
22681
22682         PR target/44640
22683         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
22684         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
22685         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
22686         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
22687         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
22688
22689         PR target/44640
22690         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
22691
22692         PR other/44644
22693         * df-core.c (struct df): Rename to df_d.
22694         * df.h (struct df): Likewise.
22695         * dse.h (struct df): Remove forward declaration.
22696         * recog.h (struct insn_data): Rename to:
22697         (struct_insn_data_d).  Adjusted all users.
22698
22699 2010-06-23  Arnaud Charlet  <charlet@adacore.com
22700
22701         PR ada/22220
22702         * doc/install.texi: Update requirements to build GNAT.
22703
22704 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
22705
22706         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
22707         enum type.
22708         (m68k_sched_attr_opx_type): Remove unreachable return.
22709         (m68k_sched_attr_opy_type): Likewise.
22710         (m68k_sched_attr_size): Likewise.
22711         (sched_get_opxy_mem_type): Likewise.
22712         (m68k_sched_attr_op_mem): Likewise.
22713
22714 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
22715
22716         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
22717         new statement and adjust VDEF only if necessary.  Remove superfluous
22718         call to maybe_clean_or_replace_eh_stmt.
22719         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
22720         copy the flags.
22721         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
22722         * tree-inline.c (copy_bb): ...and not there.
22723
22724 2010-06-22  Cary Coutant  <ccoutant@google.com>
22725
22726         * dwarf2out.c (is_nested_in_subprogram): New function.
22727         (should_move_die_to_comdat): Use it.
22728         (copy_ancestor_tree): Don't mark DIEs here.
22729         (copy_decls_walk): Start walk from root of newly-added tree;
22730         mark DIEs here instead.
22731
22732 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
22733
22734         * config/i386/i386.md (unit): Also check sseishft1.
22735
22736 2010-06-22  Jan Hubicka  <jh@suse.cz>
22737
22738         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
22739         enabled.
22740
22741 2010-06-22  Jan Hubicka  <jh@suse.cz>
22742
22743         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
22744         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
22745         Return true if something changed.
22746         * df.h (df_confluence_function_n): Return bool.
22747         * df-core.c (df_worklist_propagate_forward,
22748         df_worklist_propagate_backward): Track changes and ages.
22749         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
22750         track ages.
22751         * dse.c (dse_confluence_n): Return always true.
22752
22753 2010-06-22  Jan Hubicka  <jh@suse.cz>
22754
22755         * bitmap.c (bitmap_clear_bit): Micro optimize.
22756
22757 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
22758
22759         * config/i386/i386.md (SWI1248x): New mode iterator.
22760         (SWI48x): Ditto.
22761         (SWI12): Ditto.
22762         (SWI24): Ditto.
22763
22764         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
22765         SWI1248x mode iterator.
22766         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
22767         using SWI124 mode iterator.
22768         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
22769         mode iterator.
22770         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
22771         *pushdi2_prologue_rex64 using P mode iterator.
22772         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
22773         using SWI48 mode iterator.
22774         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
22775         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
22776         using SWI1248x mode iterator.
22777         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
22778         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
22779         SWI48 mode iterator.
22780         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
22781         iterator.
22782         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
22783         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
22784         SWI12 mode iterator.
22785         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
22786         SWI12 mode iterator.
22787         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
22788         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
22789         SWI24 mode iterator.
22790         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
22791         SWI48 mode iterator.
22792         (mov<mode>_insn_1): New expander.
22793         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
22794         using SWI48x mode iterator.
22795
22796         (*movoi_internal_avx): Rename from *movoi_internal.
22797         (*movti_internal_rex64): Rename from *movti_rex64.
22798         (*movti_internal_sse): Rename from *movti_sse.
22799         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
22800         (*movdi_internal): Rename from *movdi_2.
22801         (*movsi_internal): Rename from *movsi_1.
22802         (*movhi_internal): Rename from *movhi_1.
22803         (*movqi_internal): Rename from *movqi_1.
22804
22805         (insv): Update the call to gen_movsi_insv_1 for rename.
22806         * config/i386/i386.c (promote_duplicated_reg): Ditto.
22807
22808 2010-06-22  Jan Hubicka  <jh@suse.cz>
22809
22810         * passes.c (execute_function_todo): Move call of statistics_fini_pass
22811         to ...
22812         (execute_todo) ... this one.
22813
22814 2010-06-22  Alan Modra  <amodra@gmail.com>
22815
22816         PR target/44364
22817         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
22818         * caller-save.c (insert_restore, insert_save): Use non-validate
22819         form of adjust_address.
22820
22821 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22822
22823         PR target/39690
22824         * config/pa/pa.c (override_options): Disable
22825         -freorder-blocks-and-partition.
22826
22827 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
22828
22829         PR target/44615
22830         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
22831
22832         * config/i386/i386.md (type): Add sseishft1
22833
22834         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
22835         (ppro_insn_load): Likewise.
22836         (ppro_insn_store): Likewise.
22837         (ppro_insn_both): Likewise.
22838
22839         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
22840         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
22841         for type.
22842         (*vec_extractv2di_1_avx): Likewise.
22843         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
22844         type.  Remove atom_unit.
22845         (*vec_extractv2di_1_sse2): Likewise.
22846
22847 2010-06-21  DJ Delorie  <dj@redhat.com>
22848
22849         * diagnostic.h (diagnostic_classification_change_t): New.
22850         (diagnostic_context): Add history and push/pop list.
22851         (diagnostic_push_diagnostics): Declare.
22852         (diagnostic_pop_diagnostics): Declare.
22853         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
22854         from pragmas in a history chain instead of the global table.
22855         (diagnostic_push_diagnostics): New.
22856         (diagnostic_pop_diagnostics): New.
22857         (diagnostic_report_diagnostic): Scan history chain to find state
22858         of diagnostics as of the diagnostic location.
22859         * opts.c (set_option): Pass UNKNOWN_LOCATION to
22860         diagnostic_classify_diagnostic.
22861         (enable_warning_as_error): Likewise.
22862         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
22863         use in the history chain.
22864         * doc/extend.texi: Document pragma GCC diagnostic changes.
22865
22866 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
22867
22868         * dwarf2out.c (add_linkage_name): New function.  Don't add
22869         anything to DW_TAG_member DIEs.
22870         (add_name_and_src_coords_attributes): Use it.
22871         (gen_variable_die): Call it for C++ static data members if
22872         specification is DW_TAG_member.
22873
22874         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
22875         C++ char16_t and char32_t.
22876
22877         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
22878         * genattrtab.c: Include vecprim.h.
22879         (cached_attrs, cached_attr_count, attrs_seen_once,
22880         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
22881         attrs_cached_after): New variables.
22882         (find_attrs_to_cache): New function.
22883         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
22884         (write_test_expr): Add attrs_cached argument, return it too,
22885         attempt to cache non-const attributes used more than once in
22886         a single case handling.
22887         (write_attr_get): Use find_attrs_to_cache, for caching candidates
22888         emit cached_* variables.  Adjust write_attr_set callers.
22889         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
22890         to find attributes that should be cached in this block.  Adjust
22891         write_test_expr callers.
22892         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
22893         callers.
22894         (make_automaton_attrs): Adjust write_test_expr caller.
22895
22896         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
22897         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
22898         (make_automaton_attrs): If find_tune_attr returns non-NULL,
22899         write separate internal_dfa_insn_code_* and insn_default_latency_*
22900         functions for each attribute's value and emit init_sched_attrs
22901         function and function pointers.
22902         * genattr.c (const_attrs, reservations): New variables.
22903         (gen_attr): Add const attributes to const_attrs vector.
22904         (check_tune_attr, find_tune_attr): New functions.
22905         (main): Add reservations to reservations vector.  If find_tune_attr
22906         returns true, add prototype for init_sched_attrs and make
22907         internal_dfa_insn_code and insn_default_latency function pointers,
22908         otherwise define init_sched_attrs as dummy macro.
22909         * cfgexpand.c: Include insn-attr.h.
22910         (gimple_expand_cfg): Call init_sched_attrs.
22911
22912         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
22913
22914         PR target/44575
22915         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
22916         va_arg from a set of register save slots into a temporary,
22917         if the container is bigger than type size, do the copying
22918         using smaller mode or using memcpy.
22919
22920         PR bootstrap/44426
22921         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
22922         prototype.
22923         (sel_print_to_dot): Remove macro.
22924         (sel_print): Likewise.  New prototype.
22925         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
22926         (sel_print): New function.
22927
22928 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22929
22930         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
22931         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
22932
22933 2010-06-21  Nick Clifton  <nickc@redhat.com>
22934
22935         * config/rx/rx.h (PTRDIFF_TYPE): Define.
22936         (SMALL_REGISTER_CLASS): Define (to zero).
22937         (PRINT_OPERAND): Delete.
22938         (PRINT_OPERAND_ADDRESS): Delete.
22939         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
22940         (rx_print_operand_address): Delete prototype.
22941         * config/rx/rx.c (rx_print_operand): Make static.
22942         Allow %H and %L to handle CONST_DOUBLEs.
22943         (rx_print_operand_address): Make static.
22944         (rx_gen_move_template): Rename local variable 'template' to
22945         out_template.
22946         (rx_function_arg): Do not pass unknown sized objects in registers.
22947         (TARGET_PRINT_OPERAND): Define.
22948         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22949
22950 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
22951
22952         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
22953
22954 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
22955
22956         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
22957         stack-alignment for simple leaf-functions.
22958
22959 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22960
22961         * doc/install.texi: Document bootstrap-lto.
22962
22963 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
22964
22965         PR debug/44248
22966         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
22967         (input_function): Drop them here, if VTA is disabled.
22968
22969 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
22970
22971         PR target/44546
22972         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
22973         New predicate.
22974         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
22975         ix86_swapped_fp_comparsion_operator instead of
22976         ix86_fp_comparison_operator.
22977
22978         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
22979         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
22980         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
22981         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
22982         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
22983         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
22984
22985 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
22986
22987         PR other/32998
22988         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
22989         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
22990         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
22991         (decode_cmdline_option): Update for this return value.  Set
22992         orig_option_with_args_text field.  Set arg field for unknown
22993         options.  Make static.
22994         (decode_cmdline_options_to_array): New.
22995         (prune_options): Update handling of find_opt return value.
22996         * opts.c (read_cmdline_option): Take decoded option.  Return void.
22997         (read_cmdline_options): Take decoded options.
22998         (decode_options): Add parameters for decoded options.  Use
22999         decode_cmdline_options_to_array.  Use decoded options for -O
23000         scan.  Use integral_argument for -O parameters.  Update call to
23001         read_cmdline_options.
23002         (enable_warning_as_error): Update handling of find_opt return value.
23003         * opts.h: Update comment on unknown options.
23004         (struct cl_decoded_option): Update comments on opt_index and arg.
23005         Add orig_option_with_args_text.
23006         (decode_cmdline_option): Remove.
23007         (decode_cmdline_options_to_array): Declare.
23008         (decode_options): Update prototype.
23009         * toplev.c (save_argv): Remove.
23010         (save_decoded_options, save_decoded_options_count): New.
23011         (read_integral_parameter): Remove.
23012         (print_switch_values): Use decoded options.
23013         (toplev_main): Don't set save_argv.  Update call to decode_options.
23014         * toplev.h (read_integral_parameter): Remove.
23015         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
23016
23017 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
23018
23019         PR target/44072
23020         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
23021         immediate.
23022         * constraints.md (Pw, Px): New constraints.
23023         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
23024
23025 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
23026
23027         * config/i386/sse.md (fma4modesuffixf4): Removed.
23028         (ssemodesuffixf2s): Likewise.
23029         (ssemodesuffixf4): Likewise.
23030         (ssemodesuffixf2c): Likewise.
23031         (ssescalarmodesuffix2s): Likewise.
23032         (avxmodesuffixf2c): Likewise.
23033         (ssemodesuffix): New.
23034         (ssescalarmodesuffix): Likewise.
23035         Update patterns with ssemodesuffix and ssescalarmodesuffix.
23036
23037 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
23038
23039         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
23040
23041 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
23042
23043         * stor-layout.c (debug_rli): Remove unused local variables.
23044
23045 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
23046
23047         PR rtl-optimization/40900
23048         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
23049         original expression for later reuse.
23050         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
23051         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
23052
23053 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
23054
23055         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
23056         double_int_fits_in_uhwi_p): Implement as static inline.
23057         (double_int_xor): New inline function.
23058         (double_int_lrotate, double_int_rrotate, double_int_max,
23059         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23060         double_int_smin): Declare.
23061         (lrotate_double, rrotate_double): Remove declaration.
23062         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
23063         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
23064         (double_int_lrotate, double_int_rrotate, double_int_max,
23065         double_int_umax, double_int_smax, double_int_min, double_int_umin,
23066         double_int_smin): New function.
23067         * fold-const.c (int_const_binop): Clean up, use double_int_*
23068         functions.
23069         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
23070         double_int_* and immed_double_int_const functions.
23071
23072 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23073
23074         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
23075         * function.c (types_used_by_cur_var_decl): Likewise.
23076         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
23077
23078 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
23079
23080         * tree.h (record_layout_info): Change type of pending_statics field
23081         to a VEC.
23082         * stor-layout.c (start_record_layout): Store NULL into
23083         pending_statics.
23084         (debug_rli): Call debug_vec_tree instead of debug_tree.
23085         (place_field): Likewise.
23086         (finish_record_layout): Likewise.
23087
23088 2010-06-18  Alan Modra  <amodra@gmail.com>
23089
23090         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
23091
23092 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23093
23094         PR target/43740
23095         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
23096         for SET source operand from SET destination operand.
23097
23098 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
23099
23100         PR rtl-optimization/39871
23101         * reload1.c (init_eliminable_invariants): For flag_pic, disable
23102         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
23103         (function_invariant_p): Rule out a plus of frame or arg pointer with
23104         a SYMBOL_REF.
23105         * ira.c (find_reg_equiv_invariant_const): Likewise.
23106
23107 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
23108
23109         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
23110         print_operand_address and puts to output the operand for CONST.
23111
23112 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
23113
23114         PR debug/44572
23115         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
23116         hook.
23117
23118 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23119
23120         * v850-protos.h (print_operand): Delete.
23121         (print_operand_address): Delete.
23122         * v850.h (PRINT_OPERAND): Delete.
23123         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23124         (PRINT_OPERAND_ADDRESS): Delete.
23125         * v850.c (print_operand_address): Rename to...
23126         (v850_print_operand_address): ...this.  Make static. Call
23127         v850_print_operand.
23128         (print_operand): Rename to...
23129         (v850_print_operand): ...this.  Make static.  Call
23130         v850_print_operand_address.
23131         (v850_print_operand_punct_valid_p): New function.
23132         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23133         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23134
23135 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23136
23137         * config/sh/sh-protos.h (print_operand): Delete.
23138         (print_operand_address): Delete.
23139         * config/sh/sh.h (PRINT_OPERAND): Delete.
23140         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23141         (PRINT_OPERAND_ADDRESS): Delete.
23142         * config/sh/sh.c (sh_print_operand_address): Make static.
23143         (sh_print_operand): Make static.  Call sh_print_operand_address
23144         and sh_print_operand.
23145         (sh_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/mcore/mcore-protos.h (mcore_print_operand): Delete.
23152         (mcore_print_operand_address): Delete.
23153         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
23154         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23155         (PRINT_OPERAND_ADDRESS): Delete.
23156         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
23157         (mcore_print_operand): Make static.
23158         (mcore_print_operand_punct_valid_p): New function.
23159         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
23160         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23161
23162 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23163
23164         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
23165         (print_operand_address): Delete.
23166         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
23167         (PRINT_OPERAND_ADDRESS): Delete.
23168         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
23169         static.
23170         (m68hc11_print_operand): Make static.
23171         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23172
23173 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23174
23175         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
23176         (m32r_print_operand_address): Delete.
23177         * config/m32r/m32r.h (m32r_punct_chars): Delete.
23178         (PRINT_OPERAND): Delete.
23179         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23180         (PRINT_OPERAND_ADDRESS): Delete.
23181         * config/m32r/m32r.c (m32r_punct_chars): Make static.
23182         (m32r_print_operand_address): Make static.
23183         (m32r_print_operand): Make static.
23184         (m32r_print_operand_punct_valid_p): New function.
23185         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23186         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23187
23188 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23189
23190         * config/iq2000/iq2000-protos.h (print_operand): Delete.
23191         (print_operand_address): Delete.
23192         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
23193         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23194         (PRINT_OPERAND_ADDRESS): Delete.
23195         (iq2000_print_operand_punct): Delete.
23196         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
23197         (iq2000_print_operand_address): Make static.
23198         (iq2000_print_operand): Make static.
23199         (iq2000_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         * config/frv/frv-protos.h (frv_print_operand): Delete.
23206         (frv_print_operand_address): Delete.
23207         * config/frv/frv.h (PRINT_OPERAND): Delete.
23208         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23209         (PRINT_OPERAND_ADDRESS): Delete.
23210         * config/frv/frv.c (frv_print_operand_address): Make static.
23211         (frv_print_operand): Make static.
23212         (frv_print_operand_punct_valid_p): New function.
23213         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23214         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23215
23216 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
23217
23218         * tree.h (vec_member): Declare.
23219         * tree.c (vec_member): Define.
23220
23221 2010-06-17  Richard Guenther  <rguenther@suse.de>
23222
23223         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
23224         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
23225
23226 2010-06-17  Richard Guenther  <rguenther@suse.de>
23227
23228         * tree-inline.c (declare_return_variable): Remove bogus code.
23229
23230 2010-06-17  Richard Guenther  <rguenther@suse.de>
23231
23232         * gimplify.c (gimplify_bind_expr): Always promote complex
23233         and vector variables to registers if possible.
23234
23235 2010-06-17  Richard Guenther  <rguenther@suse.de>
23236
23237         * expr.c (get_inner_reference): Use double_int for bit_offset
23238         calculation.
23239
23240 2010-06-16  DJ Delorie  <dj@redhat.com>
23241
23242         * common.opt (-fstrict-volatile-bitfields): new.
23243         * doc/invoke.texi: Document it.
23244         * fold-const.c (optimize_bit_field_compare): For volatile
23245         bitfields, use the field's type to determine the mode, not the
23246         field's size.
23247         * expr.c (expand_assignment): Likewise.
23248         (get_inner_reference): Likewise.
23249         (expand_expr_real_1): Likewise.
23250         * expmed.c (store_fixed_bit_field): Likewise.
23251         (extract_bit_field_1): Likewise.
23252         (extract_fixed_bit_field): Likewise.
23253
23254 2010-06-16  Richard Guenther  <rguenther@suse.de>
23255
23256         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
23257
23258 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
23259
23260         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
23261         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
23262         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
23263         * debug.c: Likewise.
23264         * sdbout.c: Likewise.
23265         * vmsdbgout.c: Likewise.
23266         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
23267         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
23268         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
23269         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
23270         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
23271         * dwarf2out.c (dw_fde_struct): New fields
23272         dw_fde_vms_{end,begin}_prologue.
23273         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
23274         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
23275         (dwarf2out_vms_end_prologue): New function.
23276         (dwarf2out_vms_begin_epilogue): New function.
23277         (dw_val_struct): New value dw_val_class_vms_delta.
23278         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
23279         begin_epilogue for VMS.
23280         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
23281         new static functions.
23282         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
23283         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
23284         static functions.
23285         (print_die): New case dw_val_class_vms_delta.
23286         (attr_checksum): Likewise.
23287         (same_dw_val_p: Likewise.
23288         (size_of_die): Likewise.
23289         (value_format): Likewise.
23290         (output_die): Likewise.
23291         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
23292         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
23293         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
23294         dwarf2out_cfi_begin_epilogue
23295         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
23296
23297 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23298
23299         * config/cris/cris-protos.h (cris_print_operand): Delete.
23300         (cris_print_operand_address): Delete.
23301         * config/cris/cris.h (PRINT_OPERAND): Delete.
23302         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23303         (PRINT_OPERAND_ADDRESS): Delete.
23304         * config/cris/cris.c (cris_print_operand_address): Make static.
23305         (cris_print_operand): Make static.
23306         (cris_print_operand_punct_valid_p): New function.
23307         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23308         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23309
23310 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
23311
23312         * config/arm/arm-protos.h (arm_print_operand): Delete.
23313         (arm_print_operand_address): Delete.
23314         * config/arm/arm.h (PRINT_OPERAND): Delete.
23315         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23316         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
23317         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
23318         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
23319         (arm_print_operand): Make static.
23320         (arm_print_operand_punct_valid_p): New function.
23321         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
23322         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23323
23324 2010-06-16  Nick Clifton  <nickc@redhat.com>
23325
23326         * config/rx/constraints.md (NEGint4): New constraint.
23327         * config/rx/rx.md (attr cc): Add set_zsc.
23328         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
23329         initialised.
23330         (cmpsf): Likewise.
23331         (call_internal): Clobber the cc0 register.
23332         (call_value_internal): Likewise.
23333         (cstoresi4): Likewise.
23334         (movsieq): Likewise.
23335         (movsine): Likewise.
23336         (addsi3): Add alternative to handle small negative constants.
23337         (sunsi3): Likewise.
23338         (addsi3): Do not set the O bit in the cc0 register.
23339         (adddi3): Likewise.
23340         (subsi3): Likewise.
23341         (subdi3): Likewise.
23342         (andsi3): Reorder alternatives to prefer shorter forms.
23343         (mulsi3): Likewise.
23344         (iorsi3): Likewise.
23345         (negsi2): Note that the cc0 flags are set.
23346         (rotlsi3): Note that only the Z and S bits are set in cc0.
23347         (lshrsi3): Likewise.
23348         (ashlsi3): Likewise.
23349         (subsf3): Use %Q for the MEM operand.
23350         (fix_truncsfsi2): Likewise.
23351         (floatsisf2): Likewise.
23352         (bitset): Remove early clobber from destination.
23353         (bitset_in_memory): Likewise.
23354         (lrintsf2): Clobber the cc0 register.
23355         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
23356         (rx_print_operand): Handle %N.
23357
23358 2010-06-16  Jan Hubicka  <jh@suse.cz>
23359
23360         * df-core.c (df_compact_blocks): Free problem_temps vector.
23361
23362 2010-06-16  Martin Jambor  <mjambor@suse.cz>
23363
23364         PR tree-optimization/43905
23365         * tree-sra.c: Include tree-inline.h.
23366         (create_abstract_origin): Removed.
23367         (modify_function): Version the call graph node instead of creating
23368         abstract origins and dealing with same_body aliases.
23369         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
23370         function is versionable.
23371         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
23372
23373 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
23374
23375         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
23376         (CHOOSE_DYNAMIC_LINKER): Update.
23377
23378 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
23379
23380         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
23381         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
23382         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
23383         *prefetch_3dnow_rex.
23384
23385 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
23386
23387         * target.h (struct asm_out):Add declare_constant_name field.
23388         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23389         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
23390         * output.h (default_asm_declare_constant_name): Declare.
23391         (assemble_label): Update prototype.
23392         * varasm.c (assemble_constant_contents): Use
23393         targetm.asm_out.declare_constant_name target hook.
23394         (assemble_label): Add 'file' argument.
23395         (default_asm_declare_constant_name): New function.
23396         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
23397         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
23398         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
23399
23400         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
23401         * config/darwin.c (darwin_asm_declare_constant_name): New function.
23402         (machopic_output_indirection): Update assemble_label argument list.
23403         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
23404         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
23405
23406 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
23407
23408         PR middle-end/44391
23409         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
23410         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
23411
23412 2010-06-15  Richard Guenther  <rguenther@suse.de>
23413
23414         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
23415
23416 2010-06-15  Paul Brook  <paul@codesourcery.com>
23417
23418         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
23419         hard-float ABI.
23420
23421 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
23422
23423         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
23424         don't get a vector type for output.
23425
23426 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
23427
23428         PR fortran/44536
23429         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
23430         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
23431         (LANG_HOOKS_DECLS): Add it.
23432         * gimplify.c (omp_notice_variable): Call
23433         lang_hooks.decls.omp_report_decl.
23434
23435 2010-06-15  Martin Jambor  <mjambor@suse.cz>
23436
23437         PR lto/44464
23438         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
23439         on the newly dead SSA name.
23440
23441 2010-06-15  Alan Modra  <amodra@gmail.com>
23442
23443         * doc/invoke.texi: Add mcmodel to powerpc options.
23444         * configure.ac: Add HAVE_LD_LARGE_TOC test.
23445         * configure: Regenerate.
23446         * config.in: Regenerate.
23447         * config/rs6000/linux64.opt (mcmodel): New.
23448         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
23449         (TARGET_CMODEL, SET_CMODEL): Define.
23450         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
23451         select CMODEL_MEDIUM default.
23452         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
23453         (TARGET_CMODEL): Define default.
23454         * config/rs6000/rs6000.c (cmodel): New variable.
23455         (rs6000_explicit_options): Add cmodel field.
23456         (rs6000_handle_option): Handle -mcmodel.
23457         (create_TOC_reference): Add largetoc_reg param.  Generate high,
23458         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
23459         (rs6000_delegitimize_address): Recognise new toc reference rtl
23460         and minimal-toc rtl.
23461         (rs6000_legitimize_reload_address): Handle new toc references.
23462         (print_operand_address): Handle legitimate_constant_pool_address_p
23463         match before lo_sum.
23464         (rs6000_eliminate_indexed_memrefs): Tidy.
23465         (rs6000_emit_move): Tweak threshold for inlining constants.
23466         Keep rs6000_emit_allocate_stack large stack frame offsets
23467         loaded into r0 inline.
23468         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
23469         (tocrel_base, tocrel_offset): New variables.
23470         (toc_relative_expr_p): Set them here.
23471         (print_operand_address): Skip over any offset on constant pool address.
23472         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
23473         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
23474         (offsettable_ok_by_alignment): New function.
23475         (rs6000_emit_move): Address suitably aligned local symbol_refs
23476         relative to the toc pointer for -mcmodel=medium.
23477         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
23478         strict param.  Allow lo_sum version of addressing.  Verify reg
23479         used for -mminimal-toc and -mcmodel != small.  Update all callers.
23480         * config/rs6000/constraints.md: Update for above change.
23481         * config/rs6000/predicates.md: Likewise.
23482         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
23483         code.
23484         (tls_gd): Split for -mcmodel=medium/large.
23485         (tls_gd_high, tls_gd_low): New.
23486         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
23487         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
23488         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
23489         (largetoc_high, largetoc_low): New.
23490         (cmptf_internal2): Add clobber.
23491         * config/rs6000/rs6000-protos.h: Update.
23492
23493 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
23494
23495         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
23496         true if no prefetch is going to be generated for a given group.
23497         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
23498         estimate the prefetch_count.
23499         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
23500         prefetch count by considering the unroll_factor and prefetch_mod
23501         for is_loop_prefetching_profitable.
23502
23503 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
23504
23505         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
23506         anything if the argument is not a MEM.
23507
23508 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23509
23510         PR debug/43650
23511         PR debug/44181
23512         PR debug/44247
23513         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
23514         debug stmts.
23515         (canonicalize_loop_ivs): Likewise.
23516
23517 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
23518
23519         PR debug/43656
23520         * haifa-sched.c (setup_insn_reg_pressure_info,
23521         update_register_pressure): Reject debug insns.
23522         (ready_sort): Don't setup reg pressure for debug insns.
23523         (schedule_insn): Don't update reg pressure for debug insns.
23524
23525 2010-06-14  Richard Guenther  <rguenther@suse.de>
23526
23527         * lto-streamer.c (cached_bp): Remove.
23528         (bitpack_delete): Likewise.
23529         (bitpack_create): Likewise.
23530         (bp_get_next_word): Likewise.
23531         (bp_pack_value, bp_unpack_value): Move ...
23532         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
23533         Re-implement.
23534         (struct bitpack_d): Likewise.
23535         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
23536         New inline functions.
23537         * lto-streamer-out.c (lto_output_bitpack): Remove.
23538         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23539         (pack_value_fields): Adjust.
23540         (lto_write_tree): Likewise.
23541         (output_gimple_stmt): Likewise.
23542         (output_function): Likewise.
23543         * lto-streamer-in.c (input_gimple_stmt): Adjust.
23544         (input_function): Likewise.
23545         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
23546         (lto_input_bitpack): Remove.
23547         (lto_materialize_tree): Adjust.
23548         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
23549         * lto-cgraph.c (lto_output_edge): Adjust.
23550         (lto_output_node): Likewise.
23551         (lto_output_varpool_node): Likewise.
23552         (lto_output_ref): Likewise.
23553         (input_node): Likewise.
23554         (input_varpool_node): Likewise.
23555         (input_ref): Likewise.
23556         (input_edge): Likewise.
23557         (output_node_opt_summary): Likewise.
23558         (input_node_opt_summary): Likewise.
23559         * ipa-pure-const.c (pure_const_write_summary): Likewise.
23560         (pure_const_read_summary): Likewise.
23561         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
23562         (ipa_read_indirect_edge_info): Likewise.
23563         (ipa_write_node_info): Likewise.
23564         (ipa_read_node_info): Likewise.
23565
23566 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
23567
23568         PR target/44534
23569         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
23570         (vec_extract_lo_v16hi): Likewise.
23571         (vec_extract_lo_v32qi): Likewise.
23572
23573 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23574
23575         PR bootstrap/44426
23576         * tree.h (build_call_expr): Don't define as vararg macro, instead
23577         add a prototype.
23578         * builtins.c (build_call_nofold): Remove.
23579         (expand_builtin_int_roundingfn, expand_builtin_pow,
23580         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
23581         expand_builtin_memset_args, expand_builtin_strcmp,
23582         expand_builtin_strncmp, expand_builtin_memory_chk): Use
23583         build_call_nofold_loc instead of build_call_nofold.
23584         (build_call_expr): New function.
23585
23586         PR tree-optimization/44508
23587         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
23588         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
23589         don't eliminate trivially dead stmts.
23590         * tree-vrp.c (vrp_finalize): Pass false as last argument
23591         to substitute_and_fold.
23592         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
23593         to substitute_and_fold.
23594         * tree-ssa-ccp.c (ccp_finalize): Likewise.
23595
23596         PR bootstrap/44509
23597         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
23598
23599 2010-06-14  Ira Rosen  <irar@il.ibm.com>
23600
23601         PR tree-optimization/44507
23602         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
23603         to build initial vector for BIT_AND_EXPR.
23604         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
23605
23606 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
23607
23608         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
23609         adjust z10prop set_attr.
23610
23611 2010-06-13  Jan Hubicka  <jh@suse.cz>
23612
23613         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
23614         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
23615         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
23616         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
23617         datastructure checks into checking asserts.
23618         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
23619         * tree-ssa-sccvn.c (VN_INFO): Likewise.
23620         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
23621         df_ref_create_structure): Likewise.
23622         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
23623         pool_free): Use gcc_checking_assert.
23624         * alias.c (get_alias_set): Likewise.
23625         * var-tracking.c (variable_htab_free, shared_hash_copy,
23626         canonicalize_values_mark, variable_merge_over_cur): Likewise.
23627         * lto-streamer.c (bp_unpack_value): Likewise.
23628
23629 2010-06-13  Richard Guenther  <rguenther@suse.de>
23630
23631         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
23632         Do not stream but initialize TYPE_CANONICAL to NULL.
23633         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
23634         * gimple.c (gimple_types_compatible_p): Disregard
23635         TYPE_STRUCTURAL_EQUALITY_P.
23636         (gimple_register_type): Use TYPE_CANONICAL as cache.
23637         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
23638         before registering common types.
23639         * config/i386/i386.c (ix86_function_arg_boundary): Do not
23640         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
23641         * tree.h (TYPE_CANONICAL): Clarify documentation.
23642
23643 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
23644
23645         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
23646         LIBCALL_VALUE): Remove macros.
23647         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
23648         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23649         TARGET_FUNCTION_VALUE_REGNO_P): Define.
23650         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
23651         (ia64_function_value): Make static. Handle receiving the function
23652         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
23653
23654 2010-06-12  Jan Hubicka  <jh@suse.cz>
23655
23656         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
23657         at correct place.
23658
23659 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
23660
23661         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
23662
23663 2010-06-12  Jan Hubicka  <jh@suse.cz>
23664
23665         * df-core.c (df_clear_bb_info): New function.
23666         (df_set_blocks): bb_info is always allocated.
23667         (df_get_bb_info): Use block_info_elt_size.
23668         (df_set_bb_info): Likewise.
23669         (df_compact_blocks): Update for new block_info.
23670         (grow_bb_info): New function.
23671         * df-problems.c (df_grow_bb_info): Move to df-core.c
23672         (df_rd_set_bb_info): Remove.
23673         (df_rd_free_bb_info): Do not free block pool.
23674         (df_rd_alloc): Do not create pool, use check for
23675         obstack presence instead of NULL pointer for new blocks.
23676         (df_rd_free): DO not free alloc pool; clear block_info.
23677         (problem_RD): Add size of block info structure.
23678         (df_lr_set_bb_info): Remove.
23679         (df_lr_free_bb_info): Do not free block pool.
23680         (df_lr_alloc): Do not create pool, use check for
23681         obstack presence instead of NULL pointer for new blocks.
23682         (df_lr_free): DO not free alloc pool; clear block_info.
23683         (problem_LR): Add size of block info structure.
23684         (df_live_set_bb_info): Remove.
23685         (df_live_free_bb_info): Do not free block pool.
23686         (df_live_alloc): Do not create pool, use check for
23687         obstack presence instead of NULL pointer for new blocks.
23688         (df_live_free): DO not free alloc pool; clear block_info.
23689         (problem_LIVE): Add size of block info structure.
23690         (problem_CHAIN): Add size of block info structure.
23691         (df_byte_lr_set_bb_info): Remove.
23692         (df_byte_lr_free_bb_info): Do not free block pool.
23693         (df_byte_lr_alloc): Do not create pool, use check for
23694         obstack presence instead of NULL pointer for new blocks.
23695         (df_byte_lr_free): DO not free alloc pool; clear block_info.
23696         (problem_BYTE_LR): Add size of block info structure.
23697         (problem_NOTE): Add size of block info structure.
23698         (df_byte_MD_set_bb_info): Remove.
23699         (df_byte_MD_free_bb_info): Do not free block pool.
23700         (df_byte_MD_alloc): Do not create pool, use check for
23701         obstack presence instead of NULL pointer for new blocks.
23702         (df_byte_MD_free): DO not free alloc pool; clear block_info.
23703         (problem_BD): Add size of block info structure.
23704         * df-scan.c (df_scan_free_internal): Free block pool.
23705         (df_scan_set_bb_info): Remove.
23706         (df_scan_free_bb_info): Check for artificial_defs instead
23707         of bb_info being non-NULL.
23708         (df_scan_alloc): DO not create df_scan_block pool.
23709         (problem_SCAN): Set size of block info.
23710         (df_bb_refs_record): Do not allocate bb_info.
23711         * df.h (df_problem): Add block_info_elt_size.
23712         (struct dataflow): Change block_info to void *.
23713         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
23714         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
23715         in-line structures.
23716
23717 2010-06-12  Jan Hubicka  <jh@suse.cz>
23718
23719         PR tree-optimize/44485
23720         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
23721         containing use of return value of noreturn function.
23722
23723 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
23724
23725         * targhooks.c (default_function_value): Don't use
23726         FUNCTION_OUTGOING_VALUE.
23727         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
23728         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
23729
23730 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
23731
23732         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
23733         Add crtfastmath.o to extra_parts.
23734         * config/mips/crtfastmath.c: New.
23735         * config/mips/linux.h (ENDFILE_SPEC): New.
23736
23737 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
23738
23739         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
23740         old_type in parameter.
23741         (gcc_type_for_value): Update call to gcc_type_for_interval.
23742         (compute_type_for_level_1): Renamed compute_type_for_level.
23743         Update call to gcc_type_for_interval.
23744
23745 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23746
23747         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
23748         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
23749
23750 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
23751
23752         * opts-common.c: Include options.h.
23753         (integral_argument): Move from opts.c.
23754         (decode_cmdline_option): New.  Based on read_cmdline_option.
23755         * opts.c (integral_argument): Move to opts-common.c.
23756         (read_cmdline_option): Move most contents to
23757         decode_cmdline_option.  Use %qs in diagnostics.
23758         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
23759         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
23760         decode_cmdline_option): New.
23761
23762 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23763
23764         PR target/44481
23765         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
23766         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
23767         (partiysi2_cmp): Ditto.
23768         (*partiyhi2_cmp): Ditto.
23769         (*parityqi2_cmp): Remove.
23770
23771 2010-06-11  Jan Hubicka  <jh@suse.cz>
23772
23773         * bitmap.h (bmp_iter_next_bit): New.
23774         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
23775
23776 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
23777             Eric Botcazou  <ebotcazou@adacore.com>
23778
23779         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
23780         computed cost.
23781
23782 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23783
23784         * config/i386/i386.md (unspec): New define_c_enum.
23785         (unspecv): Ditto.
23786
23787 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
23788
23789         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
23790
23791 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
23792
23793         PR middle-end/44483
23794         * tree-if-conv.c (bb_predicate_s): New struct.
23795         (bb_predicate_p): New.
23796         (bb_has_predicate): New.
23797         (bb_predicate): New.
23798         (set_bb_predicate): New.
23799         (bb_predicate_gimplified_stmts): New.
23800         (set_bb_predicate_gimplified_stmts): New.
23801         (add_bb_predicate_gimplified_stmts): New.
23802         (init_bb_predicate): New.
23803         (free_bb_predicate): New.
23804         (is_predicated): Use bb_predicate.
23805         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
23806         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
23807         before processing their successors.
23808         (clean_predicate_lists): Removed.
23809         (find_phi_replacement_condition): Use bb_predicate.
23810         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
23811         computations.
23812         (insert_gimplified_predicates): New.
23813         (combine_blocks): Call insert_gimplified_predicates.
23814         (tree_if_conversion): Call free_bb_predicate instead of
23815         clean_predicate_lists.
23816
23817 2010-10-11  Paul Brook  <paul@codesourcery.com>
23818
23819         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
23820         * config/arm/arm.c (all_architectures): Change v7e-m default to
23821         cortexm4.
23822         * config/arm/arm-cores.def: Add cortex-m4.
23823         * config/arm/arm-tune.md: Regenerate.
23824
23825 2010-06-11  Jan Hubicka  <jh@suse.cz>
23826
23827         * ipa-pure-const.c (special_builtlin_state): New function.
23828         (check_call): Use it instead of special casign BUILT_IN_RETURN.
23829         (propagate_pure_const): Use it.
23830
23831 2010-06-11  Jan Hubicka  <jh@suse.cz>
23832
23833         * df-problems.c (df_live_scratch): Convert to bitmap_head.
23834         (df_live_alloc): Initialize df_live_scratch when initializing
23835         problem_data.
23836         (df_live_transfer_function): Update uses of df_live_scratch.
23837         (df_live_free): Free problem_data; clear df_live_scratch before
23838         releasing the obstack.
23839         (df_md_free): Free problem data.
23840
23841 2010-06-11  Jan Hubicka  <jh@suse.cz>
23842
23843         * doc/invoke.texi (Wsuggest-attribute): Document.
23844         (Wmissing-noreturn): Remove.
23845         * ipa-pure-const.c (warn_function_noreturn): New function.
23846         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
23847         warn_missing_noreturn.
23848         * common.opt (Wsuggest-attribute=noreturn): New.
23849         * tree-flow.h (warn_function_noreturn): Declare.
23850         * tree-cfg.c (execute_warn_function_noreturn): Use
23851         warn_function_noreturn.
23852         (gate_warn_function_noreturn): New.
23853         (pass_warn_function_noreturn): Update.
23854
23855 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23856
23857         * c-typeck.c (handle_warn_cast_qual): Add loc
23858         parameter. Improve warning message.
23859         (build_c_cast): Pass location to handle_warn_cast_qual.
23860
23861 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
23862
23863         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
23864         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
23865         insn mnemonic.
23866         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
23867
23868 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
23869
23870         Fix bootstap on mips
23871         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
23872         be naming typedefs.
23873
23874 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
23875
23876         * system.h (helper_const_non_const_cast): New inline for
23877         gcc version <= 4.0.
23878         (CONST_CAST2): For gcc version <= 4.0 use
23879         new helper to do const/non-const casting.
23880
23881 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23882
23883         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
23884         * Makefile.in (OBJS-common): Include insn-enums.o.
23885         (insn-enums.o): New rule.
23886         (simple_generated_c): Add insn-enums.c.
23887         (build/genenums.o): New rule.
23888         (genprogmd): Add "enums".
23889         * genconstants.c (print_enum_type): Declare a C string array
23890         for each enum.
23891         * genenums.c: New file.
23892         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
23893         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
23894         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
23895
23896 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23897
23898         * doc/md.texi (define_enum_attr): Document.
23899         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
23900         * read-md.h (lookup_enum_type): Declare.
23901         * read-md.c (lookup_enum_type): New function.
23902         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
23903         * genattrtab.c (attr_desc): Add an enum_name field.
23904         (evaluate_eq_attr): Take the associated attribute as argument.
23905         Get the enum prefix from the enum_name field, if defined.
23906         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
23907         (simplify_test_exp): Pass attr to evaluate_eq_attr.
23908         (add_attr_value): New function, split out from...
23909         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
23910         (write_test_expr): Pass attr to evaluate_eq_attr.
23911         (write_attr_get): Use the enum_name as the enum tag, if defined.
23912         (write_attr_valueq): Use the enum_name as a prefix, if defined.
23913         (find_attr): Initialize enum_name.
23914         (main): Handle DEFINE_ENUM_ATTR.
23915         * gensupport.c (process_rtx): Likewise.
23916         * config/mips/mips.h (mips_tune_attr): Delete.
23917         * config/mips/mips.md (cpu): Use define_attr_enum.
23918
23919 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
23920
23921         * doc/md.texi (define_c_enum, define_enum): Document.
23922         * read-md.h (md_constant): Add a parent_enum field.
23923         (enum_value, enum_type): New structures.
23924         (upcase_string, traverse_enum_types): Declare.
23925         * read-md.c (enum_types): New variable.
23926         (upcase_string, add_constant): New functions.
23927         (handle_constants): Don't create the hash table here.
23928         Use add_constant.
23929         (traverse_md_constants): Don't check for a null md_constants.
23930         (decimal_string, handle_enum, traverse_enum_types): New functions.
23931         (read_md_files): Initialize md_constants and md_enums.
23932         * genconstants.c (print_md_constant): Ignore info argument.
23933         Only print constants that belong to no enum.
23934         (print_enum_type): New function.
23935         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
23936         for each defined enum type.
23937         * config/mips/mips.md (processor): New define_enum.
23938         (unspec): New define_c_enum.
23939         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
23940         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
23941         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
23942         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
23943         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
23944         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
23945         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
23946         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
23947         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
23948         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
23949         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
23950         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
23951         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
23952         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
23953         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
23954         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
23955         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
23956         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
23957         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
23958         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
23959         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
23960         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
23961         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
23962         (UNSPEC_RDDSP): Move to mips-dsp.md.
23963         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
23964         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
23965         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
23966         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
23967         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
23968         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
23969         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
23970         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
23971         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
23972         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
23973         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
23974         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
23975         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
23976         Moved to mips-dspr2.md.
23977         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
23978         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
23979         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
23980         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
23981         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
23982         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
23983         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
23984         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
23985         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
23986         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
23987         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
23988         UNSPEC_LOONGSON_PSADBH)
23989         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
23990         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
23991         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
23992         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
23993         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
23994         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
23995         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
23996         (cpu): Update comment.
23997         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
23998         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
23999         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
24000         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
24001         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
24002         UNSPEC_LOONGSON_PCMPEQ)
24003         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
24004         UNSPEC_LOONGSON_PINSR_0)
24005         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
24006         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
24007         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
24008         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
24009         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
24010         UNSPEC_LOONGSON_PSADBH)
24011         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
24012         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
24013         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
24014         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
24015         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
24016         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
24017         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
24018         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
24019         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
24020         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
24021         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
24022         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
24023         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
24024         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
24025         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
24026         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
24027         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
24028         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
24029         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
24030         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
24031         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
24032         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
24033         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
24034         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
24035         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
24036         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
24037         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
24038         (UNSPEC_RDDSP): Moved from mips.md.
24039         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
24040         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
24041         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
24042         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
24043         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
24044         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
24045         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
24046         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
24047         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
24048         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
24049         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
24050         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
24051         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
24052         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
24053         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
24054         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
24055         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
24056         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
24057         (UNSPEC_SCC): Moved from mips.md.
24058         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
24059         "processor_type" to "processor".
24060         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
24061         * config/mips/mips.h (processor_type): Delete.
24062         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
24063         "processor_type" to "processor".
24064
24065 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24066
24067         * configure.ac (tm_include_list): Add insn-constants.h.
24068         * configure: Regenerate.
24069         * Makefile.in (GTM_H): Move insn-constants.h here from...
24070         (TM_H): ...here.
24071         * mkconfig.sh: Remove special handling for insn-constants.h.
24072
24073 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24074
24075         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
24076         (BUILD_MD): ...this new variable.
24077         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
24078         that include the old contents of simple_generated_h and
24079         simple_generated_c.
24080         (simple_generated_h, simple_generated_c): Include them.  Add
24081         insn-constants.h.
24082         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
24083         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
24084         Remove these dependencies from the main rule and include
24085         insn-conditions.md in the command line only if it appears
24086         in the dependency list.
24087         (insn-constants.h, s-constants): Delete.
24088         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
24089         or gensupport.h.
24090         (build/genmddeps.o): Likewise.
24091         (genprogrtl): New variable that contains everything from genprogmd
24092         except mddeps and constants.
24093         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
24094         depend on $(BUILD_MD)
24095         (genprog): New variable.  Make these programs depend on
24096         $(BUILD_ERRORS).
24097         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
24098         (main): Use read_md_files instead of init_rtx_reader_args.
24099         * genconstants.c: As for genmddeps.c.
24100         * read-md.h (read_skip_construct): Declare.
24101         * read-md.c (read_skip_construct): New function.
24102         (handle_file): Allow a null handle_directive, skipping the
24103         construct if so.
24104         (parse_include): Update the comment accordingly.
24105
24106 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24107
24108         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
24109         * genmddeps.c: Include read-md.h.
24110         (main): Call init_rtx_reader_args instead of init_md_reader_args.
24111         * genattr.c (main): Likewise.
24112         * genattrtab.c (main): Likewise.
24113         * genautomata.c (main): Likewise.
24114         * gencodes.c (main): Likewise.
24115         * genconditions.c (main): Likewise.
24116         * genconfig.c (main): Likewise.
24117         * genconstants.c (main): Likewise.
24118         * genemit.c (main): Likewise.
24119         * genextract.c (main): Likewise.
24120         * genflags.c (main): Likewise.
24121         * genopinit.c (main): Likewise.
24122         * genoutput.c (main): Likewise.
24123         * genpeep.c (main): Likewise.
24124         * genrecog.c (main): Likewise.
24125         * genpreds.c (main): Likewise.
24126         * gensupport.h (in_fname): Move to read-md.h.
24127         (init_md_reader_args_cb): Rename to...
24128         (init_rtx_reader_args_cb): ...this and return a bool.
24129         (init_md_reader_args): Rename to...
24130         (init_rtx_reader_args): ...this and return a bool.
24131         (include_callback): Move to read-md.h.
24132         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
24133         (file_name_list, first_dir_md_include): Move to read-md.c
24134         (first_bracket_include): Delete unused variable.
24135         (last_dir_md_include): Move to read-md.c.
24136         (process_include): Delete, moving code to read-md.c:handle_include.
24137         (process_rtx): Don't handle INCLUDE.
24138         (save_string): Delete.
24139         (rtx_handle_directive): New function.
24140         (init_md_reader_args_cb): Rename to...
24141         (init_rtx_reader_args_cb): ...this and return a boolean success value.
24142         Use read_md_args.
24143         (init_md_reader_args): Rename to...
24144         (init_rtx_reader_args): ...this and return a boolean success value.
24145         * rtl.def (INCLUDE): Delete.
24146         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
24147         argument.
24148         * read-rtl.c (read_conditions): Don't gobble ')' here.
24149         (read_mapping): Likewise.
24150         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
24151         Handle top-level non-rtx constructs here rather than in read_rtx_1.
24152         Store the whole queue in *X.  Remove call to init_md_reader.
24153         (read_rtx_1): Rename to...
24154         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
24155         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
24156         here.
24157         (read_nested_rtx): New function.  Handle (nil) here rather than
24158         in read_rtx_code.
24159         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
24160         gobble ')' here.
24161         * read-md.h (directive_handler_t): New type.
24162         (in_fname, include_callback): Moved from read-md.h.
24163         (read_constants, init_md_reader): Delete.
24164         (read_md_files): Declare.
24165         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
24166         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
24167         from gensupport.c.
24168         (read_constants): Rename to...
24169         (handle_constants): ...this.  Don't gobble ')' here.
24170         (handle_include, handle_file, handle_toplevel_file)
24171         (parse_include): New functions, mostly taken from gensupport.c.
24172         (init_md_reader): Subsume into...
24173         (read_md_files): ...this new function.
24174
24175 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24176
24177         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
24178         (unread_char): Decrement read_md_lineno after putting back '\n'.
24179         * read-md.c (fatal_with_file_and_line): Push back any characters
24180         that we decide not to add to the context.
24181         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
24182         fatal_expected_char in cases where '/' ends a line (for example).
24183         (read_name): Don't increment read_md_lineno here.
24184         (read_escape): Likewise.
24185         (read_quoted_string): Likewise.
24186         (read_braced_string): Likewise.
24187
24188 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24189
24190         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
24191         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
24192         * genconstants.c: Include read-md.h.
24193         * read-rtl.c (md_constants): Move to read-md.c.
24194         (md_name): Move to read-md.h.
24195         (initialize_iterators): Use leading_string_hash instead of def_hash
24196         and leading_string_eq_p instead of def_name_eq_p.
24197         (read_name): Move to read-md.c.
24198         (def_hash, def_name_eq_p): Delete.
24199         (read_constants, traverse_md_constants): Move to read-md.c.
24200         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
24201         * read-md.h: Include hashtab.h.
24202         (md_name): Moved from read-rtl.c.
24203         (md_constant): Moved from read-md.h.
24204         (leading_string_hash, leading_string_eq_p, read_name)
24205         (read_constants, traverse_md_constants): Declare.
24206         * read-md.c (md_constants): Moved from read-rtl.c.
24207         (leading_string_hash, leading_string_eq_p): New functions.
24208         (read_name, read_constants, traverse_md_constants): Moved from
24209         read-rtl.c.
24210
24211 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24212
24213         * read-rtl.c (md_name): New structure.
24214         (read_name): Take an md_name instead of a buffer pointer.
24215         Use the "string" field instead of strcpy when expanding constants.
24216         (read_constants): Remove the tmp_char argument.  Update the calls
24217         to read_name, using two local name buffers instead of the tmp_char
24218         argument.  Merge the constant-creation code.
24219         (read_conditions): Remove the tmp_char argument.  Update the calls
24220         to read_name, using a local name buffer instead of the tmp_char
24221         argument.
24222         (read_mapping): Replace tmp_char variable with a local name buffer.
24223         Update the calls to read_name.
24224         (read_rtx_1): Likewise.  Update the calls to read_constants and
24225         read_conditions.
24226
24227 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24228
24229         * Makefile.in (build/read-md.o): Depend on errors.h.
24230         * read-md.h (error_with_line): Declare.
24231         * read-md.c: Include errors.h.
24232         (message_with_line_1): New function, extracted from...
24233         (message_with_line): ...here.
24234         (error_with_line): New function.
24235         * genattrtab.c: If a call to message_with_line is followed by
24236         "have_error = 1;", replace both statements with a call to
24237         error_with_line.
24238         * genoutput.c: Likewise.
24239         * genpreds.c: Likewise.
24240         * genrecog.c: If a call to message_with_line is followed by
24241         "error_count++;", replace both statements with a call to
24242         error_with_line.
24243         (errorcount): Delete.
24244         (main): Don't check it.
24245         * gensupport.c: If a call to message_with_line is followed by
24246         "errors = 1;", replace both statements with a call to error_with_line.
24247         (errors): Delete.
24248         (process_define_cond_exec): Check have_error instead of errors.
24249         (init_md_reader_args_cb): Likewise.  Don't set errors.
24250
24251 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24252
24253         * read-md.h (read_md_file): Declare.
24254         (read_char, unread_char): New functions.
24255         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24256         (read_quoted_string, read_string): Remove FILE * argument.
24257         * read-md.c (read_md_file): New variable.
24258         (read_md_filename, read_md_lineno): Update comments and remove
24259         unnecessary initialization.
24260         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
24261         (read_escape, read_quoted_string, read_braced_string, read_string):
24262         Remove FILE * argument.  Update calls accordingly, using read_char
24263         and unread_char instead of getc and ungetc.
24264         * rtl.h (read_rtx): Remove FILE * argument.
24265         * read-rtl.c (iterator_group): Remove FILE * argument from
24266         "find_builtin".
24267         (iterator_traverse_data): Remove "infile" field.
24268         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
24269         (add_mapping, read_name, read_constants, read_conditions)
24270         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
24271         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
24272         Remove file arguments from all calls, using read_char and unread_char
24273         instead of getc and ungetc.
24274         * gensupport.c (process_include): Preserve read_md_file around
24275         the include.  Set read_md_file to the handle of the included file.
24276         Update call to read_rtx.
24277         (init_md_reader_args_cb): Set read_md_file to the handle of the file
24278         and remove local FILE *.  Update calls to read_rtx.
24279
24280 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24281
24282         * read-md.h (read_rtx_lineno): Rename to...
24283         (read_md_lineno): ...this.
24284         (read_rtx_filename): Rename to...
24285         (read_md_filename): ...this.
24286         (copy_rtx_ptr_loc): Rename to...
24287         (copy_md_ptr_loc): ...this.
24288         (print_rtx_ptr_loc): Rename to...
24289         (print_md_ptr_loc): ...this.
24290         * read-md.c: Likewise.  Update references after renaming.
24291         (string_obstack): Replace RTL with MD in comment.
24292         (set_rtx_ptr_loc): Rename to...
24293         (set_md_ptr_loc): ...this.
24294         (get_rtx_ptr_loc): Rename to...
24295         (get_md_ptr_loc): ...this.
24296         * genconditions.c: Update references after renaming.
24297         * genemit.c: Likewise.
24298         * genoutput.c: Likewise.
24299         * genpreds.c: Likewise.
24300         * gensupport.c: Likewise.
24301         * read-rtl.c: Likewise.
24302
24303 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
24304
24305         * Makefile.in (READ_MD_H): New variable.
24306         (BUILD_RTL): Add build/read-md.o.
24307         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
24308         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
24309         (build/genattrtab.o, build/genconditions.o build/genemit.o)
24310         (build/genextract.o, build/genflags.o, build/genoutput.o)
24311         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
24312         (build/read-md.o): New rule.
24313         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
24314         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
24315         * coretypes.h: ...here.
24316         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
24317         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
24318         * genattr.c: Include read-md.h.
24319         * genattrtab.c: Likewise.
24320         * genconditions.c: Likewise.
24321         * genemit.c: Likewise.
24322         * genextract.c: Likewise.
24323         * genflags.c: Likewise.
24324         * genoutput.c: Likewise.
24325         * genpreds.c: Likewise.
24326         * genrecog.c: Likewise.
24327         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
24328         (join_c_conditions, print_c_condition, read_rtx_filename)
24329         (read_rtx_lineno): Move to read-md.h.
24330         * read-rtl.c: Include read-md.h.
24331         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
24332         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
24333         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
24334         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
24335         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
24336         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
24337         (read_braced_string, read_string): Move to read-md.c.
24338         (read_rtx): Move some initialization to init_md_reader and call
24339         init_md_reader here.
24340         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
24341         Move to read-md.h.
24342         * gensupport.c: Include read-md.h.
24343         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
24344         * read-md.h, read-md.c: New files.
24345
24346 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
24347
24348         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24349         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24350         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
24351         * config/moxie/moxie.c (moxie_function_value): Make static.
24352         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
24353         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24354
24355 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24356
24357         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
24358         * dbgcnt.def (tree_sra): New counter.
24359         * tree-sra.c: Include dbgcnt.h.
24360         (gate_intra_sra): Check tree_sra debug counter.
24361
24362 2010-06-10  Martin Jambor  <mjambor@suse.cz>
24363
24364         PR tree-optimization/44258
24365         * tree-sra.c (build_access_subtree): Return false iff there is a
24366         partial overlap.
24367         (build_access_trees): Likewise.
24368         (analyze_all_variable_accesses): Disqualify candidates if
24369         build_access_trees returns true for them.
24370
24371 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
24372
24373         PR debug/41371
24374         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
24375         tail-recurse into canonical node.  Fast-forward over
24376         non-canonical VALUEs.
24377
24378 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
24379
24380         PR boostrap/44470
24381         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
24382         (*addsi_1_zext) <TYPE_LEA>: Likewise.
24383         (add lea splitter): Likewise.
24384         (add_zext lea splitter): Likewise.
24385
24386 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
24387
24388         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
24389
24390 2010-06-10  Jan Hubicka  <jh@suse.cz>
24391
24392         * df-problems.c (df_live_problem_data): Add live_bitmaps.
24393         (df_live_alloc): Initialize problem data and live_osbtacks.
24394         (df_live_finalize): Remove obstack, problem data; do not
24395         clear all bitmaps.
24396         (df_live_top_dump, df_live_bottom_dump): Do not dump old
24397         data when not allocated.
24398         (df_live_verify_solution_start): Do not allocate problem data.
24399         (df_live_verify_solution_end): Check if out is allocated.
24400         (struct df_md_problem_data): New structure.
24401         (df_md_alloc): Allocate problem data.
24402         (df_md_free): Free problem data; do not clear bitmaps.
24403
24404 2010-06-10  Jan Beulich  <jbeulich@novell.com>
24405
24406         PR bootstrap/37304
24407         * configure.ac: Replace $() with ${} when intending to expand
24408         variables rather than invoking commands.
24409         * configure: Re-generate.
24410
24411 2010-06-10  Jan Hubicka  <jh@suse.cz>
24412
24413         PR rtl-optimization/44460
24414         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
24415         TYPE_NEEDS_CONSTRUCTING sanity check.
24416
24417 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
24418
24419         * doc/include/fdl.texi: Move to GFDL version 1.3.
24420
24421         * doc/cpp.texi: Move to GFDL version 1.3.
24422         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
24423         * doc/gccint.texi: Move to GFDL version 1.3.
24424         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
24425         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
24426         * doc/invoke.texi: Move to GFDL version 1.3.
24427
24428 2010-06-09  Jan Hubicka  <jh@suse.cz>
24429
24430         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
24431         Break out from ...
24432         (propagate) ... here; swap the order.
24433
24434 2010-06-09  Jan Hubicka  <jh@suse.cz>
24435
24436         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
24437         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
24438         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
24439         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
24440
24441 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24442
24443         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
24444         Do not the gather memory reference in the outer loop if the step
24445         is not a constant.
24446
24447 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
24448
24449         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
24450         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
24451         8 to 4.  Minor change of the related comments.
24452
24453 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24454
24455         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
24456         the scev analysis when the variable is not used outside the loop
24457         in a close phi node: call compute_overall_effect_of_inner_loop.
24458
24459 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24460
24461         * graphite-sese-to-poly.c (single_pred_cond): Renamed
24462         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
24463         (build_sese_conditions_before): Renamed call to single_pred_cond.
24464         (build_sese_conditions_after): Same.
24465
24466 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
24467
24468         * graphite-poly.h: Fix comments and indentation.
24469         * graphite-sese-to-poly.c: Same.
24470         (build_sese_conditions_before): Compute stmt and gbb only when needed.
24471         * tree-chrec.c: Fix comments and indentation.
24472         (tree-ssa-loop-niter.c): Same.
24473
24474 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
24475
24476         PR rtl-optimization/42461
24477         * dce.c (deletable_insn_p): Return true for const or pure calls again.
24478         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
24479
24480 2010-06-09  Jan Hubicka  <jh@suse.cz>
24481
24482         * bitmap.c (bitmap_and): Walk array forward.
24483         (bitmap_and_compl_into): Likewise.
24484         (bitmap_xor): Likewise.
24485         (bitmap_xor_into):  Likewise.
24486         (bitmap_equal_p): Likewise.
24487         (bitmap_intersect_p): Likewise.
24488         (bitmap_intersect_compl_p): Likewise.
24489         (bitmap_ior_and_into): Likewise.
24490         (bitmap_elt_copy): Likewise.
24491         (bitmap_and_compl): Likewise.
24492         (bitmap_elt_ior): Likewise.
24493
24494 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
24495
24496         * opts-common.c (prune_options): Ensure replacement argv array
24497         is correctly terminated by a NULL entry.
24498
24499 2010-06-09  Jan Hubicka  <jh@suse.cz>
24500
24501         * cgraph.h (varpool_first_static_initializer,
24502         varpool_next_static_initializer): Make checking only when
24503         checking enabled.
24504         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
24505         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
24506         gcc_assert to gcc_checking_assert.
24507         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
24508         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
24509         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
24510         op_iter_init_phiuse, op_iter_init_phidef,
24511         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
24512         gcc_checking_assert.
24513         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
24514         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
24515         partition_is_global, live_on_entry, live_on_exit,
24516         live_merge_and_clear): Likewise.
24517         * system.h (gcc_checking_assert): New macro.
24518         * gimple.h (set_bb_seq): Use gcc_checking_assert.
24519
24520 2010-06-09  Jason Merrill  <jason@redhat.com>
24521
24522         * Makefile.in (TAGS): Collect tags info from c-family.
24523
24524 2010-06-09  Jan Hubicka  <jh@suse.cz>
24525
24526         * gimple.h (gcc_gimple_checking_assert): New macro.
24527         (gimple_set_def_ops, gimple_set_use_ops,
24528         gimple_set_vuse, gimple_set_vdef,
24529         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
24530         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
24531         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
24532         gimple_asm_output_op, gimple_asm_output_op_ptr,
24533         gimple_asm_set_output_op, gimple_asm_clobber_op,
24534         gimple_asm_set_clobber_op, gimple_asm_label_op,
24535         gimple_asm_set_label_op, gimple_try_set_kind,
24536         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
24537         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
24538         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
24539         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
24540         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
24541         gimple_omp_for_set_initial, gimple_omp_for_final,
24542         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
24543         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
24544         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
24545         conditional with ENABLE_GIMPLE_CHECKING.
24546         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
24547
24548 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
24549
24550         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
24551         (get_computation_cost_at): Use it.
24552         (determine_use_iv_cost_condition): Likewise.
24553         (determine_iv_cost): Likewise.
24554
24555 2010-06-09  Richard Guenther  <rguenther@suse.de>
24556
24557         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
24558         replace constants.
24559
24560 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
24561
24562         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
24563
24564 2010-06-09  Martin Jambor  <mjambor@suse.cz>
24565
24566         PR tree-optimization/44423
24567         * tree-sra.c (dump_access): Dump also grp_assignment_read.
24568         (analyze_access_subtree): Pass negative allow_replacements to children
24569         if the current type is scalar.
24570
24571 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24572
24573         PR testsuite/42843
24574         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
24575         * doc/plugins.texi (Plugin license check): Update information
24576         on type of plugin_is_GPL_compatible.
24577         * Makefile.in (PLUGINCC): Define as $(COMPILER).
24578         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
24579
24580 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
24581
24582         * config/arm/arm.c (thumb2_reorg): New function.
24583         (arm_reorg): Call it.
24584         * config/arm/thumb2.md (define_peephole2 for flag clobbering
24585         arithmetic operations): Delete.
24586
24587 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
24588
24589         PR target/44067
24590         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
24591         e500v2 target.
24592
24593 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
24594
24595         PR plugins/44459
24596         * gcc-plugin.h: Encapsulate all declarations in extern "C".
24597
24598 2010-06-08  Jan Hubicka  <jh@suse.cz>
24599
24600         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
24601         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
24602
24603 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
24604
24605         PR tree-optimization/39874
24606         PR middle-end/28685
24607         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
24608         Declare.
24609         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
24610         same_bool_result_p): New.
24611         (and_var_with_comparison, and_var_with_comparison_1,
24612         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
24613         (or_var_with_comparison, or_var_with_comparison_1,
24614         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
24615         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
24616         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
24617         of combine_comparisons.
24618         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
24619
24620 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24621
24622         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24623         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24624         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
24625         pdp11_function_value_regno_p): New functions.
24626         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24627         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24628
24629 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
24630
24631         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
24632         Thumb-2 in the MINUS case.
24633
24634 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24635
24636         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
24637
24638         * doc/gty.texi (GTY Options): Document typed GC allocation and
24639         variable_size GTY option.
24640
24641         * ggc-internal.h: New.
24642
24643         * ggc.h: Update copyright year.
24644         (digit_string): Move to stringpool.c.
24645         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
24646         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
24647         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
24648         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
24649         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
24650         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
24651         (ggc_force_collect, ggc_get_size, ggc_statistics)
24652         (ggc_print_common_statistics): Move to ggc-internal.h.
24653         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
24654         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
24655         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
24656         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
24657         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
24658         (ggc_alloc_zone_pass_stat): Remove.
24659         (ggc_internal_alloc_stat, ggc_internal_alloc)
24660         (ggc_internal_cleared_alloc_stat): New.
24661         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
24662         (ggc_internal_vec_alloc_stat)
24663         (ggc_internal_cleared_vec_alloc_stat)
24664         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
24665         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
24666         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
24667         (ggc_cleared_alloc_ptr_array_two_args): New.
24668         (htab_create_ggc, splay_tree_new_ggc): Redefine.
24669         (ggc_splay_alloc): Change the type of the first argument to
24670         enum gt_types_enum.
24671         (ggc_alloc_string): Make macro.
24672         (ggc_alloc_string_stat): New.
24673         (ggc_strdup): Redefine.
24674         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
24675         (ggc_alloc_rtvec_sized): New.
24676         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
24677         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
24678         (ggc_internal_cleared_alloc_zone_stat)
24679         (ggc_internal_zone_alloc_stat)
24680         (ggc_internal_zone_cleared_alloc_stat)
24681         (ggc_internal_zone_vec_alloc_stat)
24682         (ggc_alloc_zone_rtx_def_stat)
24683         (ggc_alloc_zone_tree_node_stat)
24684         (ggc_alloc_zone_cleared_tree_node_stat)
24685         (ggc_alloc_cleared_gimple_statement_d_stat): New.
24686
24687         * ggc-common.c: Include ggc-internal.h.
24688         (ggc_internal_cleared_alloc_stat): Rename from
24689         ggc_alloc_cleared_stat.
24690         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
24691         (ggc_calloc): Remove.
24692         (ggc_cleared_alloc_htab_ignore_args): New.
24693         (ggc_cleared_alloc_ptr_array_two_args): New.
24694         (ggc_splay_alloc): Add obj_type parameter.
24695         (init_ggc_heuristics): Formatting fixes.
24696
24697         * ggc-none.c: Update copyright year.
24698         (ggc_alloc_stat): Rename to ggc_alloc_stat.
24699         (ggc_alloc_cleared_stat): Rename to
24700         ggc_internal_cleared_alloc_stat.
24701         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24702
24703         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
24704         Remove references to ggc_alloc in comments.
24705         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
24706         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
24707         (new_ggc_zone, destroy_ggc_zone): Remove.
24708         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
24709
24710         * ggc-zone.c: Include ggc-internal.h.  Remove references to
24711         ggc_alloc in comments.
24712         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
24713         (ggc_internal_alloc_zone_pass_stat): New.
24714         (ggc_internal_cleared_alloc_zone_stat): New.
24715         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
24716         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
24717         (new_ggc_zone, destroy_ggc_zone): Remove.
24718
24719         * stringpool.c: Update copyright year.  Include ggc-internal.h
24720         (digit_vector): Make static.
24721         (digit_string): Moved from ggc.h.
24722         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
24723         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
24724
24725         * Makefile.in (GGC_INTERNAL_H): New.
24726         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
24727         $(GGC_INTERNAL_H) to dependencies.
24728
24729         * gengtype.c: Update copyright year.
24730         (walk_type): Accept variable_size GTY option.
24731         (USED_BY_TYPED_GC_P): New macro.
24732         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
24733         whitespace at the end of strings.
24734         (get_type_specifier, variable_size_p): New functions.
24735         (alloc_quantity, alloc_zone): New enums.
24736         (write_typed_alloc_def): New function.
24737         (write_typed_struct_alloc_def): Likewise.
24738         (write_typed_typed_typedef_alloc_def): Likewise.
24739         (write_typed_alloc_defns): Likewise.
24740         (output_typename, write_splay_tree_allocator_def): Likewise.
24741         (write_splay_tree_allocators): Likewise.
24742         (main): Call write_typed_alloc_defns and
24743         write_splay_tree_allocators.
24744
24745         * lto-streamer.h (lto_file_decl_data_ptr): New.
24746
24747         * passes.c (order): Define using cgraph_node_ptr.
24748
24749         * strinpool.c (struct string_pool_data): Declare nested_ptr using
24750         ht_identifier_ptr.
24751
24752         * gimple.h (union gimple_statement_d): Likewise.
24753
24754         * rtl.h (struct rtx_def): Likewise.
24755         (struct rtvec_def): Likewise.
24756
24757         * tree.h (union tree_node): Likewise.
24758
24759         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
24760
24761         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
24762
24763         * tree-scalar-evolution.c (scev_initialize): Likewise.
24764
24765         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
24766
24767         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24768
24769         * omp-low.c (lower_omp_critical): Likewise.
24770
24771         * bitmap.h (struct bitmap_head_def): Update comment to not
24772         reference ggc_alloc.
24773
24774         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
24775
24776         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
24777
24778         * ipa-prop.c (duplicate_ggc_array): Rename to
24779         duplicate_ipa_jump_func_array.  Use typed GC allocation.
24780         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
24781
24782         * gimple.c (gimple_alloc_stat): Use
24783         ggc_alloc_cleared_gimple_statement_d_stat.
24784
24785         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
24786
24787         * tree.c (make_node_stat): Use
24788         ggc_alloc_zone_cleared_tree_node_stat.
24789         (make_tree_vec_stat): Likewise.
24790         (build_vl_exp_stat): Likewise.
24791         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
24792         (make_tree_binfo_stat): Likewise.
24793         (tree_cons_stat): Likewise.
24794
24795         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
24796         (shallow_copy_rtx_stat): Likewise.
24797         (make_node_stat): Likewise.
24798
24799         * lto-symtab.c: Fix comment.
24800
24801         * tree-cfg.c (create_bb): Update comment to not reference
24802         ggc_alloc_cleared.
24803         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
24804
24805         * varpool.c (varpool_node): Use typed GC allocation.
24806         (varpool_extra_name_alias): Likewise.
24807
24808         * varasm.c (emutls_decl): Likewise.
24809         (get_unnamed_section): Likewise.
24810         (get_noswitch_section): Likewise.
24811         (get_section): Likewise.
24812         (get_block_for_section): Likewise.
24813         (build_constant_desc): Likewise.
24814         (create_constant_pool): Likewise.
24815         (force_const_mem): Likewise.
24816
24817         * tree.c (build_vl_exp_stat): Likewise.
24818         (build_real): Likewise.
24819         (build_string): Likewise.
24820         (decl_debug_expr_insert): Likewise.
24821         (decl_value_expr_insert): Likewise.
24822         (type_hash_add): Likewise.
24823         (build_omp_clause): Likewise.
24824
24825         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
24826
24827         * tree-ssa.c (init_tree_ssa): Likewise.
24828
24829         * tree-ssa-structalias.c (heapvar_insert): Likewise.
24830
24831         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24832
24833         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24834
24835         * tree-ssa-alias.c (get_ptr_info): Likewise.
24836
24837         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24838
24839         * tree-phinodes.c (allocate_phi_node): Likewise.
24840
24841         * tree-iterator.c (tsi_link_before): Likewise.
24842         (tsi_link_after): Likewise.
24843
24844         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24845
24846         * tree-dfa.c (create_var_ann): Likewise.
24847
24848         * tree-cfg.c (create_bb): Likewise.
24849
24850         * toplev.c (alloc_for_identifier_to_locale): Likewise.
24851         (general_init): Likewise.
24852
24853         * stringpool.c (stringpool_ggc_alloc): Likewise.
24854         (gt_pch_save_stringpool): Likewise.
24855
24856         * sese.c (if_region_set_false_region): Likewise.
24857
24858         * passes.c (do_per_function_toporder): Likewise.
24859
24860         * optabs.c (set_optab_libfunc): Likewise.
24861         (set_conv_libfunc): Likewise.
24862
24863         * lto-symtab.c (lto_symtab_register_decl): Likewise.
24864
24865         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24866         (input_eh_region): Likewise.
24867         (input_eh_lp): Likewise.
24868         (make_new_block): Likewise.
24869         (unpack_ts_real_cst_value_fields): Likewise.
24870
24871         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24872
24873         * lto-cgraph.c (input_node_opt_summary): Likewise.
24874
24875         * loop-init.c (loop_optimizer_init): Likewise.
24876
24877         * lambda.h (lambda_vector_new): Likewise.
24878
24879         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
24880
24881         * ira.c (update_equiv_regs): Likewise.
24882
24883         * ipa.c (cgraph_node_set_new): Likewise.
24884         (cgraph_node_set_add): Likewise.
24885         (varpool_node_set_new): Likewise.
24886         (varpool_node_set_add): Likewise.
24887
24888         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
24889         (duplicate_ipa_jump_func_array): Likewise.
24890         (ipa_read_node_info): Likewise.
24891
24892         * ipa-cp.c (ipcp_create_replace_map): Likewise.
24893
24894         * integrate.c (get_hard_reg_initial_val): Likewise.
24895
24896         * gimple.c (gimple_alloc_stat): Likewise.
24897         (gimple_build_omp_for): Likewise.
24898         (gimple_seq_alloc): Likewise.
24899         (gimple_copy): Likewise.
24900
24901         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
24902         (gsi_insert_after_without_update): Likewise.
24903
24904         * function.c (add_frame_space): Likewise.
24905         (insert_temp_slot_address): Likewise.
24906         (assign_stack_temp_for_type): Likewise.
24907         (allocate_struct_function): Likewise.
24908         (types_used_by_var_decl_insert): Likewise.
24909
24910         * except.c (init_eh_for_function): Likewise.
24911         (gen_eh_region): Likewise.
24912         (gen_eh_region_catch): Likewise.
24913         (gen_eh_landing_pad): Likewise.
24914         (add_call_site): Likewise.
24915
24916         * emit-rtl.c (get_mem_attrs): Likewise.
24917         (get_reg_attrs): Likewise.
24918         (start_sequence): Likewise.
24919         (init_emit): Likewise.
24920
24921         * dwarf2out.c (new_cfi): Likewise.
24922         (queue_reg_save): Likewise.
24923         (dwarf2out_frame_init): Likewise.
24924         (new_loc_descr): Likewise.
24925         (find_AT_string): Likewise.
24926         (new_die): Likewise.
24927         (add_var_loc_to_decl): Likewise.
24928         (clone_die): Likewise.
24929         (clone_as_declaration): Likewise.
24930         (break_out_comdat_types): Likewise.
24931         (new_loc_list): Likewise.
24932         (loc_descriptor): Likewise.
24933         (add_loc_descr_to_each): Likewise.
24934         (add_const_value_attribute): Likewise.
24935         (tree_add_const_value_attribute): Likewise.
24936         (add_comp_dir_attribute): Likewise.
24937         (add_name_and_src_coords_attributes): Likewise.
24938         (lookup_filename): Likewise.
24939         (store_vcall_insn): Likewise.
24940         (dwarf2out_init): Likewise.
24941
24942         * dbxout.c (dbxout_init): Likewise.
24943
24944         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24945
24946         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24947
24948         * config/score/score7.c (score7_output_external): Likewise.
24949
24950         * config/score/score3.c (score3_output_external): Likewise.
24951
24952         * config/s390/s390.c (s390_init_machine_status): Likewise.
24953
24954         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24955         (rs6000_init_machine_status): Likewise.
24956         (output_toc): Likewise.
24957
24958         * config/pa/pa.c (pa_init_machine_status): Likewise.
24959         (get_deferred_plabel): Likewise.
24960
24961         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24962
24963         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24964
24965         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24966
24967         * config/mep/mep.c (mep_init_machine_status): Likewise.
24968         (mep_note_pragma_flag): Likewise.
24969
24970         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24971
24972         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24973
24974         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24975
24976         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24977         (i386_pe_maybe_record_exported_symbol): Likewise.
24978
24979         * config/i386/i386.c (get_dllimport_decl): Likewise.
24980         (ix86_init_machine_status): Likewise.
24981         (assign_386_stack_local): Likewise.
24982
24983         * config/frv/frv.c (frv_init_machine_status): Likewise.
24984
24985         * config/darwin.c (machopic_indirection_name): Likewise.
24986
24987         * config/cris/cris.c (cris_init_machine_status): Likewise.
24988
24989         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24990
24991         * config/avr/avr.c (avr_init_machine_status): Likewise.
24992
24993         * config/arm/arm.c (arm_init_machine_status): Likewise.
24994
24995         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24996         (alpha_need_linkage): Likewise.
24997         (alpha_use_linkage): Likewise.
24998
24999         * cgraph.c (cgraph_allocate_node): Likewise.
25000         (cgraph_create_edge_1): Likewise.
25001         (cgraph_create_indirect_edge): Likewise.
25002         (cgraph_add_asm_node): Likewise.
25003
25004         * cfgrtl.c (init_rtl_bb_info): Likewise.
25005
25006         * cfgloop.c (alloc_loop): Likewise.
25007         (rescan_loop_exit): Likewise.
25008
25009         * cfg.c (init_flow): Likewise.
25010         (alloc_block): Likewise.
25011         (unchecked_make_edge): Likewise.
25012
25013         * c-parser.c (c_parse_init): Likewise.
25014         (c_parse_file): Likewise.
25015
25016         * c-decl.c (bind): Likewise.
25017         (record_inline_static): Likewise.
25018         (push_scope): Likewise.
25019         (make_label): Likewise.
25020         (lookup_label_for_goto): Likewise.
25021         (finish_struct): Likewise.
25022         (finish_enum): Likewise.
25023         (c_push_function_context): Likewise.
25024
25025         * bitmap.c (bitmap_element_allocate): Likewise.
25026         (bitmap_gc_alloc_stat): Likewise.
25027
25028         * alias.c (record_alias_subset): Likewise.
25029         (init_alias_analysis): Likewise.
25030
25031 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
25032
25033         * fold-const.c (fold_comparison): Remove redundant parenthesis.
25034         * tree-inline.c (expand_call_inline): Pass translated return value of
25035         cgraph_inline_failed_string to diagnostic function.
25036
25037 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
25038             Shujing Zhao  <pearly.zhao@oracle.com>
25039
25040         PR c/37724
25041         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
25042         implicit bad conversions is initialization.
25043         (error_init): Use gmsgid instead of msgid for argument name and change
25044         the call for error.
25045         (pedwarn_init): Use gmsgid instead of msgid for argument name and
25046         change the call for pedwarn.
25047         (warning_init): Use gmsgid instead of msgid for argument name and
25048         change the call for warning.
25049
25050 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
25051
25052         * config/mips/mips-protos.h (mips_print_operand): Delete.
25053         (mips_print_operand_address): Delete.
25054         * config/mips/mips.h (mips_print_operand_punct): Delete.
25055         (PRINT_OPERAND): Delete.
25056         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25057         (PRINT_OPERAND_ADDRESS): Delete.
25058         * config/mips/mips.c (mips_print_operand_punct): Make static.
25059         (mips_print_operand_address): Make static.
25060         (mips_print_operand): Make static.  Call
25061         mips_print_operand_punct_valid_p.
25062         (mips_print_operand_punct_valid_p): New function.
25063         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25064         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25065
25066 2010-06-07  Jan Hubicka  <jh@suse.cz>
25067
25068         PR middle-end/44454
25069         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
25070         are allocated.
25071
25072 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
25073
25074         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
25075         name of RECORD.
25076
25077 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25078
25079         * doc/sourcebuild.texi (Effective-Target Keywords, Other
25080         attributes): Document gas.
25081
25082 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
25083
25084         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
25085         <TYPE_LEA>: Split instruction.
25086         <default>: Remove alternative 2 handling.
25087         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
25088         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
25089         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
25090
25091         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
25092         (ashift_zext lea splitter): Use DImode for multiplication.
25093
25094         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
25095         to generate addition.
25096
25097 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
25098
25099         * common.opt (fira-verbose): Use Var.
25100         (fpcc-struct-return): Use Init instead of VarExists.
25101         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
25102         toplev.c.
25103         * flags.h (flag_signed_char, flag_short_enums,
25104         flag_pcc_struct_return, flag_ira_verbose,
25105         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
25106         * toplev.c (flag_detailed_statistics, flag_signed_char,
25107         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
25108         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
25109         * toplev.h (flag_crossjumping, flag_if_conversion,
25110         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
25111         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
25112         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
25113         flag_cprop_registers, time_report, flag_ira_loop_pressure,
25114         flag_ira_coalesce, flag_ira_move_spills,
25115         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
25116
25117 2010-06-07  Jan Hubicka  <jh@suse.cz>
25118
25119         * df-core.c (df_analyze_problem): Do verification after allocation.
25120
25121         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
25122         (df_lr_alloc): Initialize problem data; move bitmaps to
25123         lr_bitmaps obstack.
25124         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
25125         (df_lr_verify_solution_start): Do not initialize problem data;
25126         allocate bitmaps in lr_bitmaps.
25127         (df_lr_verify_solution_end): Do not free problem data.
25128
25129 2010-06-07  Jan Hubicka  <jh@suse.cz>
25130
25131         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
25132         if caller is noreturn.
25133         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
25134         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
25135         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
25136         * ipa-pure-const.c (check_decl): Add IPA parameter.
25137         (state_from_flags): New function.
25138         (better_state, worse_state): New functions.
25139         (check_call): When in IPA mode, do not care about callees.
25140         (check_load, check_store): Update.
25141         (check_ipa_load, check_ipa_store): New.
25142         (check_stmt): When in IPA mode, use IPA checkers.
25143         (analyze_function): Use state_from_flags.
25144         (propagate): Check indirect edges and references.
25145
25146 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
25147
25148         PR rtl-optimization/44404
25149         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
25150         of count_occurrences to see if it's safe to modify mem_insn.
25151
25152 2010-06-07  Richard Guenther  <rguenther@suse.de>
25153
25154         * gimplify.c (gimplify_cleanup_point_expr): For empty body
25155         and EH-only cleanup drop the cleanup instead of inserting it
25156         unconditionally.
25157
25158 2010-06-07  Ira Rosen  <irar@il.ibm.com>
25159
25160         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
25161         documentation.
25162         * targhooks.c (default_builtin_vectorization_cost): New function.
25163         * targhooks.h (default_builtin_vectorization_cost): Declare.
25164         * target.h (enum vect_cost_for_stmt): Define.
25165         (builtin_vectorization_cost): Change argument and comment.
25166         * tree-vectorizer.h: Remove cost model macros.
25167         * tree-vect-loop.c: Include target.h.
25168         (vect_get_cost): New function.
25169         (vect_estimate_min_profitable_iters): Replace cost model macros with
25170         calls to vect_get_cost.
25171         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
25172         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
25173         default implementation.
25174         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
25175         calls to target hook builtin_vectorization_cost.
25176         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
25177         Likewise.
25178         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
25179         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
25180         implementation to return costs.
25181         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
25182         * config/spu/spu.h: Remove vectorizer cost model macros.
25183         * config/i386/i386.h: Likewise.
25184         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
25185         a call to target hook builtin_vectorization_cost.
25186
25187 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
25188
25189         PR target/44319
25190         * config/i386/i386.c (override_options): Turn zee pass on for level 2
25191         and above and defer till target is known.
25192         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
25193         turn off otherwise.
25194
25195 2010-05-25  Jan Hubicka  <jh@suse.cz>
25196
25197         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
25198         (df_compact_blocks): Likewise.
25199         * df.h (struct df): Turn hardware_regs_used,
25200         regular_block_artificial_uses, eh_block_artificial_uses,
25201         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
25202         bitmap_head.
25203         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
25204         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
25205         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
25206         df_scan_blocks, df_insn_delete, df_insn_rescan,
25207         df_insn_rescan_debug_internal, df_insn_rescan_all,
25208         df_process_deferred_rescans, df_process_deferred_rescans,
25209         df_notes_rescan, df_get_call_refs, df_get_call_refs,
25210         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
25211         df_record_entry_block_defs, df_record_exit_block_uses,
25212         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
25213         df_scan_verify): Update.
25214
25215 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
25216
25217         PR c++/44188
25218         * c-common.c (is_typedef_decl): Move this definition ...
25219         * tree.c (is_typedef_decl): ... here.
25220         (typdef_variant_p): Move definition here from cp/tree.c.
25221         * c-common.h (is_typedef_decl): Move this declaration ...
25222         * tree.h (is_typedef_decl): ... here.
25223         (typedef_variant_p): Move declaration here from cp/cp-tree.h
25224         * dwarf2out.c (is_naming_typedef_decl): New function.
25225         (gen_tagged_type_die): Split out of ...
25226         (gen_type_die_with_usage): ... this function. When an anonymous
25227         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
25228         is emitted for the typedef.
25229         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
25230         anonymous tagged types.
25231
25232 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25233
25234         PR c/20000
25235         * c-decl.c (grokdeclarator): Delete warning.
25236
25237 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
25238
25239         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
25240         newly built CALL_EXPR.
25241         * tree-profile.c (tree_profiling): Don't profile functions produced
25242         for built-in stuff.
25243
25244 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
25245
25246         PR bootstrap/44427
25247         PR bootstrap/44428
25248         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
25249         endianness-independent.
25250
25251 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
25252
25253         * c-common.c: Move to c-family/.
25254         * c-common.def: Likewise.
25255         * c-common.h: Likewise.
25256         * c-cppbuiltin.c: Likewise.
25257         * c-dump.c: Likewise.
25258         * c-format.c: Likewise.
25259         * c-format.h : Likewise.
25260         * c-gimplify.c: Likewise.
25261         * c-lex.c: Likewise.
25262         * c-omp.c: Likewise.
25263         * c.opt: Likewise.
25264         * c-opts.c: Likewise.
25265         * c-pch.c: Likewise.
25266         * c-ppoutput.c: Likewise.
25267         * c-pragma.c: Likewise.
25268         * c-pragma.h: Likewise.
25269         * c-pretty-print.c: Likewise.
25270         * c-pretty-print.h: Likewise.
25271         * c-semantics.c: Likewise.
25272         * stub-objc.c: Likewise.
25273
25274         * gengtype.c (get_file_langdir): Special-case files in c-family/.
25275         (get_output_file_with_visibility): Fix name for c-common.h.
25276         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
25277
25278         * c-tree.h: Update include path for moved files.
25279         * c-lang.c: Likewise.
25280         * c-lang.h: Likewise.
25281         * c-parser.c: Likewise.
25282         * c-convert.c: Likewise.
25283         * c-decl.c: Likewise.
25284         * c-objc-common.c: Likewise.
25285         * configure.ac: Make sure c-family/ exists in the build directory.
25286         * configure: Regenerate.
25287         * Makefile.in: Update paths for moved files.  Regroup files per
25288         location and update dependencies.  Move generated_files down after
25289         ALL_GTFILES_H.
25290
25291         * config/spu/spu-c.c: Update paths for moved files.
25292         * config/mep/mep-pragma.c: Likewise.
25293         * config/darwin-c.c: Likewise.
25294         * config/i386/msformat-c.c: Likewise.
25295         * config/i386/i386-c.c: Likewise.
25296         * config/avr/avr-c.c: Likewise.
25297         * config/sol2-c.c: Likewise.
25298         * config/ia64/ia64-c.c: Likewise.
25299         * config/rs6000/rs6000-c.c: Likewise.
25300         * config/arm/arm.c: Likewise.
25301         * config/arm/arm-c.c: Likewise.
25302         * config/h8300/h8300.c: Likewise.
25303         * config/v850/v850-c.c: Likewise.
25304
25305         * config/t-darwin: Fix dependencies for moved files.
25306         * config/t-sol2: Fix dependencies for moved files.
25307         * config/mep/t-mep: Fix dependencies for moved files.
25308         * config/ia64/t-ia64: Fix dependencies for moved files.
25309         * config/rs6000/t-rs6000: Fix dependencies for moved files.
25310         * config/v850/t-v850: Fix dependencies for moved files.
25311         * config/v850/t-v850e: Fix dependencies for moved files.
25312
25313         * config/m32c/m32c-pragma.c
25314
25315         * po/exgettext: Look in c-family/ also.
25316
25317 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
25318
25319         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
25320         (mark_control_dependent_edges_necessary): Call it instead of marking
25321         the last statement manually.
25322         (propagate_necessity): Likewise.
25323
25324 2010-06-05  Jan Hubicka  <jh@suse.cz>
25325
25326         * basic-block.h (compute_dominance_frontiers): Updated.
25327         (compute_idf): Likewise.
25328
25329         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
25330         for dominance frontiers.
25331         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
25332         (insert_updated_phi_nodes_for): Likewise.
25333         (update_ssa): Likewise.
25334         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25335         (compute_dominance_frontiers): Likewise.
25336         (compute_idf): Likewise.
25337         * df-problems.c (df_md_local_compute): Likewise.
25338
25339 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
25340
25341         * target.h (struct gcc_target): Add memory_move_cost field.
25342         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
25343         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
25344         * targhooks.c (default_memory_move_cost): New function.
25345         * targhooks.h (default_memory_move_cost): Declare function.
25346         * reload.h (memory_move_cost): Declare.
25347         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25348         * reginfo.c (memory_move_cost): New function.
25349         (memory_move_secondary_cost): Change type of 'in' argument to bool.
25350         * ira.h (ira_memory_move_cost): Update comment.
25351         * ira.c (ira_memory_move_cost): Update comment.
25352         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
25353         with memory_move_cost.
25354         * postreload.c (reload_cse_simplify_set): (Ditto.).
25355         * reload1.c (choose_reload_regs): (Ditto.).
25356         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
25357         (MEMORY_MOVE_COST):  Revise documentation.
25358
25359         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
25360         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
25361         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
25362         type of 'in' argument to bool.
25363         (TARGET_MEMORY_MOVE_COST): Define.
25364
25365 2010-06-05  Jan Hubicka  <jh@suse.cz>
25366
25367         * ipa-pure-const.c (propagate): Fix typo in handling of functions
25368         that cannot return.  Be more careful when merging the results with
25369         previously known ones.
25370
25371 2010-06-05  Matthias Klose  <doko@ubuntu.com>
25372
25373         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
25374         function to add the -iplugindir option.
25375         (find_plugindir_spec_function): Add new declaration and function.
25376         (static_spec_func): Use it for "find-plugindir".
25377
25378 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
25379
25380         PR c++/44361
25381         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
25382         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
25383         statement expression.
25384
25385 2010-06-05  Jan Hubicka  <jh@suse.cz>
25386
25387         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
25388         (df_rd_problem_data): Convert sparse_invalidated_by_call,
25389         dense_invalidated_by_call to bitmap head.
25390         (df_rd_alloc, df_rd_bb_local_compute_process_def,
25391         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
25392         df_rd_start_dump, df_lr_verify_transfer_functions,
25393         df_live_verify_transfer_functions, df_chain_create_bb,
25394         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
25395         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
25396         df_simulate_one_insn_forwards, df_md_alloc,
25397         df_md_bb_local_compute_process_def,
25398         df_md_bb_local_compute_process_def, df_md_local_compute,
25399         df_md_transfer_function df_md_free): Update.
25400
25401 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
25402
25403         PR c/44322
25404         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
25405         target type for ADDR_EXPR; require no changes to qualifiers except
25406         for function types.
25407         * c-tree.h (c_build_type_variant): Remove.
25408
25409 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25410
25411         * genautomata.c (get_excl_set): Do work per element, not per char.
25412         (check_presence_pattern_sets): Similar.
25413         (check_absence_pattern_sets): Similar.
25414
25415 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
25416
25417         * genautomata.c (curr_state_pass_num): Delete.
25418         (min_issue_delay_pass_states): Delete.
25419         (min_issue_delay): Delete.
25420         (initiate_min_issue_delay_pass_states): Delete.
25421         (output_min_issue_delay_table): Compute min_issue_delay_vect
25422         using a breadth-first search variant.
25423         (output_tables): Don't call initiate_min_issue_delay_pass_states.
25424
25425 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
25426
25427         PR boostrap/44421
25428         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
25429         (df_byte_lr_bb_local_compute): Likewise.
25430
25431 2010-06-03  Jason Merrill  <jason@redhat.com>
25432
25433         Implement noexcept operator (5.3.7)
25434         * c-common.c (c_common_reswords): Add noexcept.
25435         * c-common.h (enum rid): Add RID_NOEXCEPT.
25436
25437 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25438
25439         * config/darwin-driver.c (darwin_default_min_version): Use
25440         GCC-specific formats in diagnostics.
25441         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
25442         diagnostics.
25443         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
25444         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
25445         eval_spec_function, handle_braces, process_brace_body, main,
25446         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
25447         getenv_spec_function, compare_version_strings,
25448         version_compare_spec_function): Use GCC-specific formats in
25449         diagnostics.
25450
25451 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25452
25453         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
25454         that operand 0 and operand 1 are equal.
25455         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
25456         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
25457         and operand 1 are equal.
25458         <default>: Ditto.  Remove ??? comment.
25459         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
25460         and operand 1 are equal.
25461         <default>: Ditto.  Remove ??? comment.
25462         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
25463         are equal.
25464         (*add<mode>_4) <default>: Ditto.
25465         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
25466
25467 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
25468
25469         * config/i386/i386-protos.h (ix86_print_operand): Declare.
25470         * config/i386/i386.c (ix86_print_operand): Make non-static.
25471         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
25472         * output.h (output_operand): Declare.
25473         * final.c (output_operand): Make non-static.
25474
25475 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
25476
25477         PR rtl-optimization/44013
25478         * sched-deps.c (add_dependence_list_and_free): Don't free lists
25479         when processing debug insns.
25480
25481         PR debug/41371
25482         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
25483         recursing.  Check that recursion is bounded.  Rename inner var
25484         to avoid hiding incoming argument.
25485
25486 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25487
25488         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
25489         operands[2] == 255.
25490         (*addqi_3): Ditto.
25491         (*addqi_4): Ditto.
25492         (*addqi_5): Ditto.
25493         (*addqi_ext_1_rex64): Ditto.
25494         (*addqi_ext_1): Ditto.
25495
25496         (*addqi_4): Check for incdec_operand in QImode.
25497
25498         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
25499         using SWI mode iterator.
25500         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
25501         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
25502         mode iterator.
25503         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
25504         using SWI mode iterator.
25505
25506 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25507
25508         PR c/25880
25509         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
25510         * c-format.c (gcc_diag_flag_specs): Add hash.
25511         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
25512         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
25513         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
25514         pp_c_cv_qualifiers. Handle qualifiers spelling here.
25515         (pp_c_type_qualifier_list): Call the function above.
25516         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
25517         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
25518         (WARN_FOR_QUALIFIERS): New macro.
25519         (convert_for_assignment): Use it.
25520
25521 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
25522
25523         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
25524
25525 2010-06-04  Jan Hubicka  <jh@suse.cz>
25526
25527         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
25528         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
25529         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
25530         DF_BYTE_LR_OUT): Update for embedded bitmaps.
25531         * fwprop.c (single_def_use_enter_block): Likewise.
25532         * ddg.c (create_ddg_dep_from_intra_loop_link,
25533         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
25534         * loop-iv.c (latch_dominating_def): Likewise.
25535         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
25536         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
25537         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
25538         df_rd_transfer_function, df_rd_top_dump,
25539         df_rd_bottom_dump): Update.
25540         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
25541         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
25542         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
25543         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
25544         df_lr_verify_solution_start, df_lr_verify_solution_end,
25545         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
25546         df_live_free_bb_info, df_live_alloc, df_live_reset,
25547         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
25548         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
25549         df_live_verify_solution_start, df_live_verify_solution_end,
25550         df_live_verify_transfer_functions, df_chain_create_bb,
25551         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
25552         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25553         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
25554         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
25555         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
25556         df_byte_lr_transfer_function, df_byte_lr_top_dump,
25557         df_byte_lr_bottom_dump, df_create_unused_note,
25558         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
25559         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
25560         df_md_transfer_function, df_md_init, df_md_confluence_0,
25561         df_md_confluence_n,
25562         df_md_top_dump, df_md_bottom_dump): Update.
25563         (struct df_lr_problem_data): Embedd bitmap headers.
25564
25565 2010-06-04  Jan Hubicka  <jh@suse.cz>
25566
25567         * dce.c (dce_process_block): Do not re-scan already marked
25568         instructions.
25569
25570 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
25571
25572         PR rtl-optimization/39871
25573         PR rtl-optimization/40615
25574         PR rtl-optimization/42500
25575         PR rtl-optimization/42502
25576         * ira.c (init_reg_equiv_memory_loc: New function.
25577         (ira): Call it twice.
25578         * reload.h (calculate_elim_costs_all_insns): Declare.
25579         * ira-costs.c: Include "reload.h".
25580         (regno_equiv_gains): New static variable.
25581         (init_costs): Allocate it.
25582         (finish_costs): Free it.
25583         (ira_costs): Call calculate_elim_costs_all_insns.
25584         (find_costs_and_classes): Take estimated elimination costs
25585         into account.
25586         (ira_adjust_equiv_reg_cost): New function.
25587         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
25588         * reload1.c (init_eliminable_invariants, free_reg_equiv,
25589         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
25590         (elim_bb): New static variable.
25591         (reload): Move code out of here into init_eliminable_invariants and
25592         free_reg_equiv.  Call them.
25593         (calculate_elim_costs_all_insns): New function.
25594         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
25595         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
25596         but call note_reg_elim_costly if we turned a valid memory address
25597         into an invalid one.
25598         * Makefile.in (ira-costs.o): Depend on reload.h.
25599
25600 2010-06-04  Julian Brown  <julian@codesourcery.com>
25601
25602         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
25603         for pool ranges.
25604
25605 2010-06-04  Richard Guenther  <rguenther@suse.de>
25606
25607         PR lto/41584
25608         * cgraph.h (struct varpool_node): Add lto_file_data field.
25609         * lto-cgraph.c (input_varpool_node): Initialize it.
25610
25611 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
25612
25613         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
25614         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
25615         predicate in "type" attribute calculation.
25616         (*addsi_1_zext): Ditto.
25617         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
25618         (*addsi_2_zext): Ditto.
25619         (*add<mode>_3): Ditto.
25620         (*addsi_3_zext): Ditto.
25621         (*add<mode>_5): Ditto.
25622
25623 2010-06-03  Jan Hubicka  <jh@suse.cz>
25624
25625         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
25626         of bitmap_bit_p.
25627         * cfganal.c (compute_dominance_frontiers_1): Likewise.
25628
25629 2010-06-03  Jan Hubicka  <jh@suse.cz>
25630
25631         * df-problems.c (df_create_unused_note, df_note_bb_compute):
25632         micro-optimize the checks when to add new note.
25633
25634 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
25635
25636         * final.c (output_asm_insn): Call
25637         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
25638         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
25639         (output_address): Call targetm.asm_out.print_operand_address.
25640         Update comments.
25641         * target.h (struct gcc_target): Add print_operand,
25642         print_operand_address, and print_operand_punct_valid_p fields.
25643         * targhooks.h (default_print_operand): Declare.
25644         (default_print_operand_address): Declare.
25645         (default_print_operand_punct_valid_p): Declare.
25646         * targhooks.c (default_print_operand): Define.
25647         (default_print_operand_address): Define.
25648         (default_print_operand_punct_valid_p): Define.
25649         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
25650         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
25651         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
25652         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
25653         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
25654         * vmsdbgout.c (addr_const_to_string): Update comment.
25655         * config/i386/i386.c (print_operand): Rename to...
25656         (ix86_print_operand): ...this.  Make static.
25657         (print_operand_address): Rename to...
25658         (ix86_print_operand_address): ...this.  Make static.  Call
25659         ix86_print_operand instead of PRINT_OPERAND.
25660         (ix86_print_operand_punct_valid_p): New function.
25661         (TARGET_PRINT_OPERAND): Define.
25662         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25663         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25664         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
25665         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25666         (PRINT_OPERAND): Delete.
25667         (PRINT_OPERAND_ADDRESS): Delete.
25668         * config/i386/i386-protos.h (print_operand): Delete prototype.
25669         (print_operand_address): Delete prototype.
25670
25671 2010-06-03  Richard Guenther  <rguenther@suse.de>
25672
25673         PR tree-optimization/44403
25674         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
25675         Preserve pointer qualifiers.
25676         (vect_create_data_ref_ptr): Likewise.
25677
25678 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
25679
25680         PR c++/44294
25681         * defaults.h (MAX_FIXED_MODE_SIZE): New.
25682
25683         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
25684
25685 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
25686
25687         PR debug/44375
25688         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
25689         return false if merging the bbs would lead to goto_locus
25690         location being lost from the IL.
25691
25692 2010-06-03  Jan Hubicka  <jh@suse.cz>
25693             Jakub Jelinek  <jakub@redhat.com>
25694
25695         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
25696         set->regs[i] is NULL or has just one entry.
25697
25698 2010-06-03  Jan Hubicka  <jh@suse.cz>
25699
25700         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
25701         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
25702
25703 2010-06-03  Paul Brook  <paul@codesourcery.com>
25704
25705         * config/arm/arm.c (FL_TUNE): Define.
25706         (arm_default_cpu, arm_cpu_select): Remove.
25707         (all_cores): Populate core field.
25708         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
25709         (arm_find_cpu): New function.
25710         (arm_handle_option): Lookup cpu/architecture names.
25711         (arm_override_options): Cleanup mcpu/march/mtune handling.
25712         (arm_file_start): Ditto.
25713
25714 2010-06-03  Alan Modra  <amodra@gmail.com>
25715
25716         PR target/44169
25717         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
25718         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
25719         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
25720         (rs6000_emit_load_toc_table): Likewise.
25721
25722 2010-06-02  Jan Hubicka  <jh@suse.cz>
25723
25724         * passes.c (init_optimization_passes): Put ipa reference
25725         after ipa pure-const.
25726
25727 2010-06-02  Jan Hubicka  <jh@suse.cz>
25728
25729         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
25730         calls_read_all and calls_write_all.
25731         (get_reference_optimization_summary): Fix formatting.
25732         (is_proper_for_analysis): Check that decl is not readonly.
25733         (propagate_bits): Check CONST/PURE/noreturn flags.
25734         (ipa_init): Move all_module_statics to optimization_summary_obstack.
25735         (analyze_function): Ignore indirect edges.
25736         (copy_global_bitmap): For all module statics, do nothing.
25737         (generate_summary): Do not print calls_read_all/calls_write_all.
25738         (read_write_all_from_decl): Take node as argument; check
25739         cgraph_node_cannot_return.
25740         (propagate): Reorganize read_all/write_all computation;
25741         check indirect edges; check ecf flags; use all_module_statics
25742         in the results; do not free all_module_statics.
25743         (stream_out_bitmap): Handle all_module_statics.
25744         (ipa_reference_write_optimization_summary): Likewise; use
25745         varpool/cgraph encoders to get boundaries.
25746         (ipa_reference_read_optimization_summary): Read in all_module_statics;
25747         use it when possible.
25748
25749 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25750
25751         PR target/44218
25752         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
25753         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
25754
25755         * doc/extend.texi (powerpc builtins): Document vec_recip,
25756         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
25757
25758         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
25759         (rs6000_emit_swrsqrt): Ditto.
25760         (rs6000_emit_swdivsf): Delete.
25761         (rs6000_emit_swdivdf): Ditto.
25762         (rs6000_emit_swrsqrtsf): Ditto.
25763
25764         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
25765         describe the reciprocal estimate support for each type.
25766         (recip_options): Map -mrecip=<opt> into option bits.
25767         (gen_2arg_fn_t): New typedef for binary rtx gen function.
25768         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
25769         reciprocal estimate instructions.
25770         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
25771         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
25772         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
25773         cost information if -mdebug=cost or -mdebug=reg.
25774         (rs6000_override_options): Set -mrecip-precision for power6, and
25775         power7 machines.  If -mvsx or -mdfp, enable various options that
25776         came in previous instruction set ISAs, unless the option was
25777         explicitly disabled by the command line option.  Parse
25778         -mrecip=<opt> options.
25779         (rs6000_builtin_vectorized_function): Add support for vectorizing
25780         the reciprocal estimate builtins and expansions.
25781         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
25782         (bdesc_2arg): Add reciprocal estimate builtins.
25783         (bdesc_1arg): Add reciprocal square root estimate builtins.
25784         (rs6000_expand_builtin): Rewrite to use a switch statement,
25785         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
25786         (rs6000_init_builtins): Create declarations for reciprocal
25787         estimate builtins.
25788         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
25789         sized, prefer traditional floating point registers, if integer
25790         vector types, prefer altivec registers.  Don't actually look at
25791         the memory address any more.
25792         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
25793         builtins.
25794         (rs6000_load_constant_and_splat): New helper function to load up
25795         the constant for reciprocal estimate instructions.
25796         (rs6000_emit_madd): New helper function for generating
25797         multiply/add type instructions, based on the current switches.
25798         (rs6000_emit_msub): Ditto.
25799         (rs6000_emit_mnsub): Ditto.
25800         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
25801         replace a divide with a reciprocal estimate and fixup, adding
25802         support for machines with high precision and vectors.
25803         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
25804         low precision machines.
25805         (rs6000_emit_swdiv): New common function to be called to replace a
25806         division with reciprocal estimate and fixup.
25807         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
25808         for double and vector types.  Add support for high precision machines.
25809
25810         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
25811         the reciprocal estimate instructions can be generated.
25812         (TARGET_FRE): Ditto.
25813         (TARGET_FRSQRTES): Ditto.
25814         (TARGET_FRSQRTE): Ditto.
25815         (RS6000_RECIP_*): New macros for reciprocal estimate support.
25816
25817         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
25818         square root estimate on vectors.
25819         (re<mode>2): New insn for reciprocal division estimate on vectors.
25820
25821         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
25822         New builtin.
25823         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
25824         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
25825         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
25826         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
25827         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
25828         (RS6000_BUILTIN_RSQRT): Ditto.
25829         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
25830         floating point builtin.
25831
25832         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
25833         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
25834         __RECIP_PRECISION__ based on the command line switches.
25835         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
25836
25837         * config/rs6000/rs6000.opt (-mrecip): Document add support for
25838         replacing division instructions with reciprocal estimate and fixup.
25839         (-mrecip=<opt>): New option.
25840         (-mrecip-precision): Ditto.
25841
25842         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
25843         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
25844         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
25845         precision scalar.
25846
25847         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
25848         (UNSPEC_VREFP): Ditto.
25849         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
25850         conterparts with regard to support of -mno-fused-madd and -ffast-math.
25851         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
25852         reciprocal estimate instructions to be generated.
25853         (altivec_vrefp): Ditto.
25854
25855         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
25856         estimate support.
25857         (rreg): New mode attribute for reciprocal estimate support.
25858         (recip<mode>3): New insn for division using reciprocal estimate
25859         and fixup builtins.
25860         (divide define_split): New define_split to convert floating point
25861         division to use reciprocal estimate if the user used the
25862         appropriate options and the split is run when we can add new
25863         pseudo registers for the fixup.
25864         (rsqrt<mode>2): New insn for reciprocal square root support.
25865         (recipsf3): Move into recip<mode>3.
25866         (recipdf3): Ditto.
25867         (fres): Use TARGET_FRES.
25868         (rsqrtsf2): Move into rsqrt<mode>2.
25869         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
25870         (copysignsf3): Add support for VSX.
25871         (fred): Use TARGET_FRE.
25872         (fred_fpr): Ditto.
25873         (rsqrtdf_internal1): New function for frsqrte instruciton.
25874
25875         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
25876         (vec_rsqrt): Ditto.
25877
25878 2010-06-03  Richard Guenther  <rguenther@suse.de>
25879
25880         PR middle-end/44291
25881         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
25882         (set_user_assembler_libfunc): Likewise.
25883
25884 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25885
25886         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
25887         defaults.h.
25888         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
25889         to defaults.h
25890         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
25891         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
25892         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
25893         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
25894         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
25895         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
25896         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
25897         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
25898         * defaults.h: Updated for above mentioned changes.
25899
25900 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
25901
25902         * c-common.c: Remove header include of tm_p.h.
25903         * Makefile.in (c-common.o): Remove TM_P_H dependency.
25904
25905 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
25906
25907         * tree.h (struct tree_decl_map): New type.
25908         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
25909         (tree_decl_map_hash): New prototype.
25910         (debug_expr_for_decl, value_expr_for_decl): Change into
25911         tree_decl_map hashtab from tree_map.
25912         (init_ttree): Adjust initialization.
25913         (tree_decl_map_hash): New function.
25914         (decl_debug_expr_lookup, decl_debug_expr_insert,
25915         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
25916
25917 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25918
25919         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
25920         linker emulations.
25921         * configure: Regenerate.
25922         * config.in: Regenerate.
25923
25924         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
25925         (X86_64_EMULATION): Define.
25926         (TARGET_LD_EMULATION): Use them.
25927
25928         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
25929         (SPARC64_EMULATION): Define.
25930         (LINK_ARCH_SPEC): Use them.
25931
25932 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25933
25934         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
25935         smallest_mode_for_size for computing the precision types of new
25936         graphite IVs.  Do not call lang_hooks.types.type_for_size.
25937
25938 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25939
25940         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
25941         information.
25942         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
25943
25944 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
25945
25946         PR middle-end/44363
25947         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
25948         return false instead.
25949
25950 2010-06-02  Jan Hubicka  <jh@suse.cz>
25951
25952         PR middle-end/44295
25953         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
25954         create new cgraph node to check callee.
25955
25956 2010-06-02  Richard Guenther  <rguenther@suse.de>
25957
25958         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
25959
25960 2010-06-02  Richard Guenther  <rguenther@suse.de>
25961
25962         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
25963         (lto_wrapper_cleanup): ... this.  Do not exit.
25964         (fatal): Adjust.  Exit here.
25965         (fatal_perror): Likewise.
25966         (fatal_signal): New function.
25967         (main): Set up signal handlers to cleanup temporary files.
25968         * Makefile.in (lto-wrapper.o): Adjust dependencies.
25969
25970 2010-06-02  Richard Guenther  <rguenther@suse.de>
25971
25972         PR tree-optimization/44377
25973         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
25974
25975 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25976
25977         * config/s390/2097.md (z10_fhex): Remove insn reservation.
25978         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
25979         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
25980         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
25981         instruction.
25982         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
25983
25984 2010-06-02  Jan Hubicka  <jh@suse.cz>
25985
25986         * bitmap.c (bitmap_descriptor): Add search_iter.
25987         (bitmap_find_bit): Increment it.
25988         (print_statistics): Print it.
25989
25990 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
25991
25992         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
25993         instead of gimple_build_call_vec.  Delete unnecessary local variable.
25994
25995 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
25996
25997         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
25998         change from yesterday.
25999
26000 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
26001
26002         * c-ada-spec.c: Clean up redundant includes.
26003
26004 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
26005
26006         * gimplify.c: Do not include except.h and optabs.h.
26007         (gimplify_body): Do not initialize RTL profiling.
26008         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
26009         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
26010         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
26011         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
26012         langhooks.h.
26013
26014         * tree-pretty-print.h: Include pretty-print.h.
26015         * gimple-pretty-print.h: Include pretty-print.h.
26016
26017         * tree-pretty-print.c: Do not include diagnostic.h.
26018         * tree-vrp.c: Likewise.
26019         * tree-tailcall.c: Likewise
26020         * tree-scalar-evolution.c: Likewise
26021         * tree-ssa-dse.c: Likewise
26022         * tree-chrec.c: Likewise
26023         * tree-ssa-sccvn.c: Likewise
26024         * tree-ssa-copyrename.c: Likewise
26025         * tree-nomudflap.c: Likewise
26026         * tree-call-cdce.c: Likewise
26027         * tree-stdarg.c: Likewise
26028         * tree-ssa-math-opts.c: Likewise
26029         * tree-nrv.c: Likewise
26030         * tree-ssa-sink.c: Likewise
26031         * tree-browser.c: Likewise
26032         * tree-ssa-loop-ivcanon.c: Likewise
26033         * tree-ssa-loop.c: Likewise
26034         * tree-parloops.c: Likewise
26035         * tree-ssa-address.c: Likewise
26036         * tree-ssa-ifcombine.c: Likewise
26037         * tree-if-conv.c: Likewise
26038         * tree-data-ref.c: Likewise
26039         * tree-affine.c: Likewise
26040         * tree-ssa-phiopt.c: Likewise
26041         * tree-ssa-coalesce.c: Likewise
26042         * tree-ssa-pre.c: Likewise
26043         * tree-ssa-live.c: Likewise
26044         * tree-predcom.c: Likewise
26045         * tree-ssa-forwprop.c: Likewise
26046         * tree-ssa-dce.c: Likewise
26047         * tree-ssa-ter.c: Likewise
26048         * tree-ssa-loop-prefetch.c: Likewise
26049         * tree-optimize.c: Likewise
26050         * tree-ssa-phiprop.c: Likewise
26051         * tree-object-size.c: Likewise
26052         * tree-outof-ssa.c: Likewise
26053         * tree-ssa-structalias.c: Likewise
26054         * tree-switch-conversion.c: Likewise
26055         * tree-ssa-reassoc.c: Likewise
26056         * tree-ssa-operands.c: Likewise
26057         * tree-vectorizer.c: Likewise
26058         * tree-vect-data-refs.c: Likewise
26059         * tree-vect-generic.c: Likewise
26060         * tree-vect-stmts.c: Likewise
26061         * tree-vect-patterns.c: Likewise
26062         * tree-vect-slp.c: Likewise
26063         * tree-vect-loop.c: Likewise
26064         * tree-ssa-loop-ivopts.c: Likewise
26065         * tree-ssa-loop-im.c: Likewise
26066         * tree-ssa-loop-niter.c: Likewise
26067         * tree-ssa-loop-unswitch.c: Likewise
26068         * tree-ssa-loop-manip.c: Likewise
26069         * tree-ssa-loop-ch.c: Likewise
26070         * tree-dump.c: Likewise
26071         * tree-complex.c: Likewise
26072
26073         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
26074         * tree-ssa-uninit.c: Likewise
26075         * tree-ssa-threadupdate.c: Likewise
26076         * tree-ssa-uncprop.c: Likewise
26077         * tree-ssa-ccp.c: Likewise
26078         * tree-ssa-dom.c: Likewise
26079         * tree-ssa-propagate.c: Likewise
26080         * tree-ssa-alias.c: Likewise
26081         * tree-dfa.c: Likewise
26082         * tree-cfgcleanup.c: Likewise
26083         * tree-sra.c: Likewise
26084         * tree-ssa-copy.c: Likewise
26085         * tree-ssa.c: Likewise
26086         * tree-profile.c: Likewise
26087         * tree-cfg.c: Likewise
26088         * tree-ssa-threadedge.c: Likewise
26089         * tree-vect-loop-manip.c: Likewise
26090
26091         * tree-inline.c: Do not include diagnostic.h and expr.h.
26092         Include rtl.h.
26093         (copy_decl_for_dup_finish): Do not use NULL_RTX.
26094
26095         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
26096         * tree-loop-distribution.c: Likewise.
26097
26098 2010-06-01  Jan Hubicka  <jh@suse.cz>
26099
26100         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
26101
26102 2010-06-01  Jan Hubicka  <jh@suse.cz>
26103
26104         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
26105         remove return value.
26106         (split_bbs_on_noreturn_calls) .... here.
26107         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
26108         * tree-flow.h (fixup_noreturn_call): New.
26109
26110 2010-06-01  Jan Hubicka  <jh@suse.cz>
26111
26112         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
26113
26114 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
26115
26116         * tree.h (build_nt_call_list): Delete.
26117         * tree.c (build_nt_call_list): Delete.
26118
26119 2010-06-01  Jan Hubicka  <jh@suse.cz>
26120
26121         * fwprop.c: Make emit-rtl.h include last.
26122         * rtlanal.c: Include emit-rtl.h.
26123         * genautomata.c: Output emit-rtl include into insn-automata.c
26124         * df-scan.c: Include emit-rtl.h.
26125         * haifa-sched.c: Indlude emit-rtl.h.
26126         * mode-switching.c: Indlude emit-rtl.h.
26127         * graph.c: Indlude emit-rtl.h.
26128         * sel-sched.c: Include emit-rtl.h.
26129         * sel-sched-ir.c: Include emit-rtl.h.
26130         * ira-build.c: Include emit-rtl.h.
26131         * emit-rtl.c (first_insn, last_insn): Remove defines.
26132         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
26133         Move to emit-rtl.h.
26134         (set_new_first_and_last_insn, get_last_insn_anywhere,
26135         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
26136         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
26137         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
26138         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
26139         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
26140         Use accessor functions.
26141         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26142          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26143         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26144         mem_expr_equal_p): Move here from rtl.h.
26145         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
26146         Move here from emit-rtl.c; make inline.
26147         * cfglayout.h: Include emit-rtl.h.
26148         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
26149          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
26150         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
26151         mem_expr_equal_p, get_insns, set_first-insn,
26152         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
26153         * reg-stack.c: Include emit-rtl.h.
26154         * dce.c: Likewise.
26155
26156 2010-06-01  Jan Hubicka  <jh@suse.cz>
26157
26158         * cgraph.h (tree_function_versioning): Update prototype.
26159         (cgraph_function_versioning): Update prototype.
26160         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
26161         bitmap.
26162         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
26163         (cgraph_materialize_clone, save_inline_function_body): Update use of
26164         tree_function_versioning.
26165         * tree-inline.c (copy_bb): Look for previous copied block to link
26166         after; fix debug output.
26167         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
26168         (copy_body): Likewise.
26169         (expand_call_inline): Update use of copy_body.
26170         (tree_function_versioning): Update use of copy body; accept
26171         blocks_to_copy and new_entry.
26172
26173 2010-06-01  Jan Hubicka  <jh@suse.cz>
26174
26175         * gegenrtl.c: Remove unnecesary prototypes.
26176         (gendecl): Remove.
26177         (gendef): Produce static inline.
26178         (gencode): Remove.
26179         (main): Do not decode parameters; generate header only.
26180         * Makefile.in (genrtl.c): Remove.
26181
26182 2010-06-01  Jan Hubicka  <jh@suse.cz>
26183
26184         * tree-switch-conversion.c (build_one_array): Make it readonly.
26185
26186 2010-06-01  Richard Guenther  <rguenther@suse.de>
26187
26188         * optabs.c (init_optabs): Guard all accesses to reinit.
26189         * ipa-pure-const.c (propagate): Fix another typo.
26190         * opts.c (common_handle_option): Split assignment to bool.
26191         * c-opts.c (c_common_handle_option): Likewise.
26192
26193 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
26194             Matthew Gingell  <gingell@adacore.com>
26195
26196         * doc/invoke.texi: Mention -fdump-ada-spec.
26197         * tree-dump.c (dump_files): Add ada-spec.
26198         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
26199         * tree-pass.h (tree_dump_index): Add TDI_ada.
26200         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
26201         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
26202         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
26203         * c-decl.c: Include c-ada-spec.h.
26204         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
26205         functions.
26206         (c_write_global_declarations): Add handling of -fdump-ada-spec.
26207         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
26208         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
26209         * c-ada-spec.h, c-ada-spec.c: New files.
26210
26211 2010-06-01  Richard Guenther  <rguenther@suse.de>
26212
26213         PR lto/43853
26214         * ipa-pure-const.c (get_function_state): Hand back varying state
26215         if we do not have one.
26216         (has_function_state): New function.
26217         (duplicate_node_data): Adjust.
26218         (remove_node_data): Likewise.
26219         (pure_const_write_summary): Likewise.
26220         (propagate): Likewise.  Fix typo.
26221
26222 2010-06-01  Jan Hubicka  <jh@suse.cz>
26223
26224         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
26225         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
26226         (execute_all_ipa_transforms): Do not play with the states.
26227
26228 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26229
26230         * config/arm/t-linux-androideabi: New.
26231         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
26232
26233 2010-06-01  Jan Hubicka  <jh@suse.cz>
26234
26235         * tree-inline.c (estimate_num_insns): For stdarg functions look
26236         into call statement to count cost of argument passing.
26237
26238 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
26239
26240         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
26241         argument for fprintf.
26242         (ix86_output_addr_diff_elt): Likewise.
26243         (x86_function_profiler): Likewise.
26244         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
26245         (LPREFIX): Likewise.
26246         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
26247
26248 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26249
26250         PR target/44338
26251         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
26252         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
26253         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
26254         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
26255         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
26256         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
26257         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
26258         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
26259         TARGET_FUSED_MADD.
26260
26261 2010-05-31  Jan Hubicka  <jh@suse.cz>
26262
26263         * tree.h (tree_range_check_failed): Declare noreturn.
26264
26265 2010-05-31  Jan Hubicka  <jh@suse.cz>
26266
26267         * gimple.c (gimple_call_builtin_p): New function.
26268         * gimple.h (gimple_call_builtin_p): Declare.
26269         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
26270         to exit.
26271         (execute_warn_function_return): BUILT_IN_RETURN is return.
26272         (split_critical_edges): Return edges are not critical.
26273         (is_ctrl_altering_stmt): Builtin_in_return is altering.
26274         (gimple_verify_flow_info): Handle built_in_return.
26275         (execute_warn_function_return): Handle built_in_return.
26276         * ipa-pure-const.c (check_call): Ignore builtin_return.
26277
26278 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
26279
26280         PR middle-end/44337
26281         * expr.c (expand_assignment): Don't store anything for out-of-bounds
26282         array accesses with non-MEM.
26283
26284         PR tree-optimization/44182
26285         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
26286         newly needs to end a bb is followed by debug stmts, instead return
26287         true from the function at the end.
26288         (maybe_move_debug_stmts_to_successors): New function.
26289         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
26290
26291 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
26292
26293         PR target/44161
26294         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
26295
26296 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
26297
26298         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
26299         for nested functions in non-optimized compilation.
26300
26301 2010-05-31  Richard Guenther  <rguenther@suse.de>
26302
26303         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
26304
26305 2010-05-30  Jan Hubicka  <jh@suse.cz>
26306
26307         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
26308
26309 2010-05-30  Richard Guenther  <rguenther@suse.de>
26310
26311         PR lto/42975
26312         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
26313         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
26314         no longer needed.
26315
26316 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
26317
26318         * config/darwin.c (output_objc_section_asm_op): Add comment.
26319         (name_needs_quotes): Add '_' to list of valid comment chars.
26320         (machopic_output_function_base_name): Remove unneeded quotes.
26321         (darwin_encode_section_info): Adjust asm whitespace.
26322         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
26323         (ASM_OUTPUT_LOCAL): Ditto.
26324         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
26325         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
26326         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
26327
26328 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
26329
26330         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
26331         RS6000_OUTPUT_BASENAME unconditionally.
26332         (rs6000_output_function_epilogue): Likewise.
26333
26334 2010-05-30  Jan Hubicka  <jh@suse.cz>
26335
26336         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
26337         nodes.
26338
26339 2010-05-30  Richard Guenther  <rguenther@suse.de>
26340
26341         * tree-cfg.c (verify_gimple_assign_single): Implement
26342         verification for COND_EXPR rhs.
26343
26344 2010-05-30  Jan Hubicka  <jh@suse.cz>
26345
26346         * cgraph.h (cgraph_dump_file): Declare.
26347         * cgraphunit.c (cgraph_dump_file): Export.
26348         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
26349
26350 2010-05-30  Jan Hubicka  <jh@suse.cz>
26351
26352         * dwarf2out.c (reference_to_unused,
26353         premark_types_used_by_global_vars_helper): Avoid creation of new
26354         varpool nodes.
26355
26356 2010-05-30  Jan Hubicka  <jh@suse.cz>
26357
26358         * cgraph.h (cgraph_node_cannot_return,
26359         cgraph_edge_cannot_lead_to_return): New functions.
26360         * cgraph.c (cgraph_node_cannot_return,
26361         cgraph_edge_cannot_lead_to_return): Use them.
26362         * ipa-pure-const.c (pure_const_names): New static var.
26363         (check_call): Handle calls not leading to return.
26364         (pure_const_read_summary): Dump info read.
26365         (propagate): Dump info about propagation process; ignore side effects
26366         of functions not leading to exit; fix handling of pure functions.
26367
26368 2010-05-30  Jan Hubicka  <jh@suse.cz>
26369
26370         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
26371         for tail call epilogues.
26372
26373 2010-05-30  Jan Hubicka  <jh@suse.cz>
26374
26375         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
26376         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
26377         dump files.
26378
26379 2010-05-29  Jan Hubicka  <jh@suse.cz>
26380
26381         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
26382         node; remove references in node we no longer keep in cgrpah but need
26383         body of.
26384
26385 2010-05-29  Jan Hubicka  <jh@suse.cz>
26386
26387         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
26388
26389 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26390
26391         PR target/44165
26392         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
26393
26394 2010-05-29  Jan Hubicka  <jh@suse.cz>
26395
26396         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
26397         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
26398         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
26399         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
26400         debug_names_replaced_by, debug_update_ssa): Likewise.
26401         * sbitmap.c (debug_sbitmap): Likewise.
26402         * genrecog.c (debug_decision, debug_decision_list): Likewise.
26403         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26404         debug_tree_chain): Likewise.
26405         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
26406         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
26407         * optabs.c (debug_optab_libfuncs): Likewise.
26408         (verify_loop_closed_ssa): Likewise.
26409         * value-prof.c (verify_histograms): Likewise.
26410         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
26411         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
26412         * cfghooks.c (verify_flow_info): Likewise.
26413         * fold-const.c (debug_fold_checksum): Likewise.
26414         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
26415         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
26416         Likewise.
26417         * omega.c (debug_omega_problem): Likewise.
26418         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
26419         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
26420         * dominance.c (verify_dominators, debug_dominance_info,
26421         debug_dominance_tree): Likewise.
26422         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
26423         * df_regno_debug, df_ref_debug,
26424         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
26425         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
26426         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
26427         * sel-sched.c (debug_state): Likewise.
26428         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
26429         Likewise.
26430         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
26431         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
26432         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
26433         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
26434         Likewise.
26435         * c-pretty-print.c (debug_c_tree): Likewise.
26436         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
26437         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
26438         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
26439         * ebitmap.c (debug_ebitmap): Likewise.
26440         * function.c (debug_find_var_in_block_tree): Likewise.
26441         * print-rtl.c (debug_rtx): Likewise.
26442         (debug_rtx_count): Likewise.
26443         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
26444         * stor-layout.c (debug_rli): Likewise.
26445         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
26446         * tree-data-ref.c (debug_data_references,
26447         debug_data_dependence_relations, debug_data_reference,
26448         debug_data_dependence_relation, debug_rdg_vertex,
26449         debug_rdg_component, debug_rdg): Likewise.
26450         * tree-affine.c (debug_aff): Likewise.
26451         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
26452         Likewise.
26453         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
26454         * emit-rtl.c (verify_rtl_sharing): Likewise.
26455         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
26456         debug_value_expressions): Likewise.
26457         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
26458         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
26459         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
26460         * cfglayout.c (verify_insn_chain): Likewise.
26461         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
26462         debug_clast_stmt, debug_generated_program): Likewise.
26463         * ggc-page.c (debug_print_page_list): Likewise.
26464         * tree-ssa-ter.c (debug_ter): Likewise.
26465         * graphite-dependences.c (debug_pddr): Likewise.
26466         * sched-deps.c (debug_ds): Likewise.
26467         * tree-ssa.c (verify_ssa): Likewise.
26468         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
26469         debug_scattering_functions, debug_iteration_domains, debug_pdr,
26470         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
26471         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
26472         * tree-inline.c (debug_find_tree): Likewise.
26473         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
26474         debug_ppl_powerset_matrix): Likewise.
26475         * var-tracking.c (debug_dv): Likewise.
26476         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
26477         * cfgloop.c (verify_loop_structure): Likewise.
26478         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
26479         * c-common.c (verify_sequence_points): Likewise.
26480         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
26481         debug_candidates, debug_rgn_dependencies): Likewise.
26482         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
26483         * debug_constraint_graph, debug_solution_for_var,
26484         debug_sa_points_to_info): Likewise.
26485         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
26486         Likewie.
26487         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
26488         debug_loops, debug_loop, debug_loop_num): Likewise.
26489         * passes.c (debug_pass): Likewise.
26490         (dump_properties): Likewise; add cfglayout property.
26491         (debug_properties): Likewise.
26492         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
26493         * varpool.c (debug_varpool): Likewise.
26494         * regcprop.c (debug_value_data): Likewise.
26495         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
26496         debug_immediate_uses_for): Likewise.
26497
26498 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26499
26500         PR bootstrap/44315
26501         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
26502         Filter out insn-flags.h.
26503
26504 2010-05-29  Jan Hubicka  <jh@suse.cz>
26505
26506         * cgraph.h (struct varpool_node_set_def,
26507         struct cgraph_node_set_def): Remove unused AUX pointer.
26508         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
26509         VEC_empty macro.
26510
26511 2010-05-29  Jan Hubicka  <jh@suse.cz>
26512
26513         PR middle-end/44324
26514         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
26515
26516 2010-05-29  Richard Guenther  <rguenther@suse.de>
26517
26518         * lto-streamer.c (cached_bp): New global variable.
26519         (bitpack_create): Return the cached bitpack, if available.
26520         (bitpack_delete): Clear and cache the bitpack, if appropriate.
26521         (bp_pack_value): Remove redundant asserts.
26522
26523 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26524
26525         PR middle-end/44306
26526         * tree-if-conv.c (is_true_predicate): New.
26527         (is_predicated): Use is_true_predicate.
26528         (add_to_predicate_list): Same.  Do not use unshare_expr.
26529         (add_to_dst_predicate_list): Same.
26530
26531 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
26532
26533         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
26534         field on edges.
26535         (predicate_bbs): Same.
26536         (clean_predicate_lists): Same.
26537         (find_phi_replacement_condition): Do not AND the predicate from
26538         edge->aux.
26539
26540 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
26541
26542         PR bootstrap/44315
26543         * Makefile.in (build/gencondmd.o): Add a missing `\'.
26544
26545 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26546
26547         PR target/44261
26548         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
26549         (negdf2): Adjust expander pattern and use negdf2_slow.
26550         (negsf2): Likewise.
26551
26552 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
26553
26554         * basic-block.h (struct control_flow_graph): Move last_label_uid field
26555         up.
26556         * df.h (struct df_base_ref): Move regno field up.
26557         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
26558         * expr.h (struct separate_ops): Move location field up.
26559         * optabs.h (struct optab_d): Move libcall_basename field down.
26560         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
26561         * config/i386/i386.h (struct machine_function): Convert call_abi field
26562         into a bitfield.  Move cfa field to the end of the structure.
26563
26564 2010-05-29  Jan Hubicka  <jh@suse.cz>
26565
26566         * varpool.c (varpool_get_node): Fix lookup.
26567
26568 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26569
26570         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
26571         RTL specific prototypes with #ifdef RTX_CODE.
26572         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
26573         * config/spu/t-spu-elf: Fix dependencies.
26574
26575         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
26576
26577 2010-05-29  Mike Stump  <mikestump@comcast.net>
26578
26579         PR bootstrap/44315
26580         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
26581         TM_H when building to avoid dependency loops.
26582
26583 2010-05-29  Jan Hubicka  <jh@suse.cz>
26584
26585         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
26586         refs and body; not the whole node for masters of materialized clones.
26587
26588 2010-05-29  Mike Stump  <mikestump@comcast.net>
26589
26590         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
26591
26592 2010-05-29  Jan Hubicka  <jh@suse.cz>
26593
26594         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
26595         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
26596         use of clone_function_name.
26597         * cgraph.h (cgraph_create_virtual_clone,
26598         cgraph_function_versioning): update prototypes.
26599         (clone_function_name): Declare.
26600         * ipa-cp.c (ipcp_insert_stage): Update call of
26601         cgraph_create_virtual_clone.
26602         * omp-low.c (create_omp_child_function_name): Use
26603         cgraph_create_virtual_clone.
26604         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
26605         (cgraph_function_versioning): Take SUFFIX argument; produce new name
26606         and make decl local.
26607
26608 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26609
26610         * vec.h: Include statistics.h
26611         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
26612         with VEC_H.
26613
26614 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26615
26616         * c-lex.c: Do not include c-tree.h.
26617         * c-pretty-print.c: Likewise.
26618         * c-opts.c: Likewise.
26619         * c-gimplify.c: Likewise.
26620         * c-common.c: Likewise.
26621         * c-dump.c: Likewise.  Include c-common.h.
26622
26623 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26624
26625         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
26626         before including diagnostic-core.h.
26627         (c_cpp_error): New prototype moved from c-tree.h.
26628         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
26629         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
26630         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
26631         (c_cpp_error): Prototype moved to c-common.h.
26632         * Makefile.in: Update dependency for C_COMMON_H.
26633
26634 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
26635
26636         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
26637         * c-common.c (c_register_addr_space): Remove here.
26638         * c-decl.c (c_register_addr_space): Re-add here.
26639
26640 2010-05-28  Mike Stump  <mikestump@comcast.net>
26641
26642         * config/darwin-c.c: Remove c-tree.h include.
26643
26644 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26645
26646         * gcc.c: Include diagnostic.h.
26647         (error_count): Remove.  All users changed to use errorcount.
26648         (programname): Remove.  All users changed to use progname.
26649         (fancy_abort, internal_error, fatal_error, error, warning, inform,
26650         fnotice): Remove.
26651         (execute): Don't include "Internal error" and bug reporting
26652         information in argument of internal_error call.
26653         (process_command): Don't increment error_count after calling
26654         perror_with_name.
26655         (input_filename): Rename to gcc_input_filename.  All users
26656         changed.
26657         (main): Call diagnostic_initialize.  Register delete_temp_files
26658         with atexit.  Use seen_error to test for errors.
26659         * gcc.h: Include diagnostic-core.h.
26660         (fatal_error, error, warning): Remove.
26661         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
26662         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
26663         (gcc.o): Update dependencies.
26664
26665 2010-05-28  Jeff Law  <law@redhat.com>
26666
26667         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
26668         functions.
26669         * ira.h (ira_bad_reload_regno): Declare
26670         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
26671
26672         * ira-color.c (update_curr_costs): Free updated hard reg costs.
26673         (ira_reassign_conflict_allocnos): Remove bogus asserts.
26674         (allocno_reload_assign): Likewise.
26675
26676 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
26677
26678         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
26679         build1_stat.
26680
26681 2010-05-28  Richard Guenther  <rguenther@suse.de>
26682
26683         PR lto/44312
26684         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
26685         Stream fixed-point constants mode.
26686         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
26687         and TYPE_PRECISION.
26688         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
26689         Stream fixed-point constants mode.
26690         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
26691         and TYPE_PRECISION.
26692
26693 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26694
26695         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
26696         only place it was called from.
26697         (number_of_latch_executions): Do not return chrec_dont_know when the
26698         may_be_zero is a runtime condition: instead, return a COND_EXPR
26699         including the may_be_zero condition.
26700         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
26701         of nb_iterations.
26702         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
26703         COND_EXPRs.
26704
26705 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26706
26707         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
26708         generate COND_EXPRs for degenerate_phi_result.
26709
26710 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
26711
26712         PR middle-end/44293
26713         * tree-if-conv.c (if_convertible_loop_p): Check the
26714         if-convertibility of phi nodes in non predicated BBs.
26715
26716 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26717
26718         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
26719
26720 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26721
26722         PR driver/15303
26723         * gcc.c (inform, warning, inform): New functions.
26724         (fatal_ice): Rename to internal_error; change cmsgid parameter to
26725         gmsgid.  All callers changed.
26726         (notice): Rename to fnotice; add parameter fp.  All callers changed.
26727         (fatal_error): Rename to fatal_signal.  All users changed.
26728         (fatal): Rename to fatal_error; change cmsgid parameter to
26729         gmsgid.  All callers changed.
26730         (process_command): Use warning instead of error for warnings.
26731         (end_going_arg): Don't use _() around argument of error.
26732         (do_spec_1): Use inform for message from %n specs.  Use warning
26733         instead of error for warnings.
26734         (main): Use inform for comparison messages.  Use warning for
26735         message about unused linker input.
26736         (error): Increment error_count.  Print "error: ".
26737         * gcc.h (fatal): Change to fatal_error.
26738         (warning): Declare.
26739         * config/darwin-driver.c (darwin_default_min_version): Use warning
26740         instead of fprintf for warnings.
26741         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
26742
26743 2010-05-28  Julian Brown  <julian@codesourcery.com>
26744
26745         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
26746         (*thumb2_addsi3_compare0_scratch): New.
26747         * config/arm/constraints.md (Pv): New.
26748         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
26749         for ARM mode only.
26750         (*addsi3_compare0_scratch): Likewise.
26751
26752 2010-05-28  Jan Hubicka  <jh@suse.cz>
26753
26754         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
26755         check.
26756         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
26757         only on local statics.
26758
26759 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
26760
26761         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
26762
26763 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
26764
26765         PR bootstrap/44314
26766         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
26767         (OPTION_GLIBC): Define.
26768
26769 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26770
26771         PR debug/41048
26772         * dwarf2out.c (double_int_type_size_in_bits): New function.
26773         (round_up_to_align): Change first argument and return value to
26774         double_int.
26775         (field_byte_offset): Work internally on double_ints.
26776
26777         PR target/43636
26778         * builtins.c (expand_movstr): Use a temporary pseudo instead
26779         of target even when target is not NULL and not const0_rtx, but
26780         fails movstr predicate.
26781         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
26782
26783 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
26784
26785         * final.c (rest_of_clean_state): Use %m in errors instead of
26786         strerror (errno).
26787         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26788         instead of strerror.
26789         * toplev.c (process_options): Use %m in errors instead of strerror
26790         (errno).
26791         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
26792         (errno).
26793
26794 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
26795
26796         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
26797         (ix86_canonical_va_list_type): Make static.  Add declaration.
26798         (ix86_enum_va_list): Make static.  Reindent.
26799         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
26800         (ix86_canonical_va_list_type): Ditto.
26801         (ix86_enum_va_list): Ditto.
26802
26803 2010-05-28  Richard Guenther  <rguenther@suse.de>
26804
26805         * lto-wrapper.c (run_gcc): With -save-temps generate a
26806         user-visible ltrans filename.  Fixup ltrans unit numbering.
26807
26808 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
26809
26810         * c-common.c (c_common_nodes_and_builtins): Replace use
26811         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
26812         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
26813         to ix86_enum_va_list.
26814         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
26815         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
26816         (TARGET_ENUM_VA_LIST_P): Add hook description.
26817         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
26818         * target.h (gcc_target): Add enum_va_list hook.
26819
26820         PR bootstrap/44299
26821         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
26822         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
26823         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
26824
26825 2010-05-28  Alan Modra  <amodra@gmail.com>
26826
26827         PR target/44266
26828         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
26829         emit_library_call machinery to set up __tls_get_addr calls.
26830
26831 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26832
26833         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
26834
26835 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
26836
26837         Revert fix for PR c++/44188
26838         * c-common.c (is_typedef_decl): Revert the moving of  this
26839         definition ...
26840         * tree.c (is_typedef_decl): ... here.
26841         (typdef_variant_p): Revert the moving of this  definition
26842         here from cp/tree.c.
26843         * c-common.h (is_typedef_decl): Revert the moving of this
26844         declaration ...
26845         * tree.h (is_typedef_decl): ... here.
26846         (typedef_variant_p): Revert the moving of this  declaration here
26847         from cp/cp-tree.h
26848         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
26849         (gen_tagged_type_die): Revert the splitting out of ...
26850         (gen_type_die_with_usage): ... this function. Revert the anonymous
26851         tagged type handling.
26852         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
26853         typedefs naming anonymous tagged types.
26854
26855 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26856
26857         * config/rs6000/rs6000-modes.def (PSImode): Delete.
26858
26859 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
26860
26861         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
26862         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
26863         throughout.
26864         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
26865         "xer" to "ca".
26866         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
26867         XER_REGS to CA_REGS throughout.
26868         * config/rs6000/rs6000.h: Same.
26869         (ADDITIONAL_REGISTER_NAMES): Add "xer".
26870         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
26871         that mode_iterator "P" is the size for arithmetic carries as well.
26872         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
26873
26874 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
26875
26876         PR bootstrap/44255
26877         * combine.c (struct rtx_subst_pair): Define unconditionally.
26878         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
26879         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26880         Call make_compound_operation on pair->to.
26881         (propagate_for_debug): Don't call make_compound_operation here.
26882         Always use simplify_replace_fn_rtx.
26883
26884 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
26885
26886         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
26887         * config/xtensa/xtensa.c (override_options): Check
26888           TARGET_FORCE_NO_PIC and set flag_pic.
26889         * config/xtensa/xtensa.opt: Document -mforce-no-pic
26890
26891 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
26892
26893         PR bootstrap/44299
26894         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
26895         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
26896
26897 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
26898
26899         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
26900         toplev.h.
26901         * diagnostic.c: Don't include toplev.h.
26902         (progname): Define.  Moved from toplev.c.
26903         (seen_error): New function.
26904         * diagnostic.h: Include diagnostic-core.h.
26905         (diagnostic_t, emit_diagnostic): Don't declare here.
26906         * toplev.c (progname): Move to toplev.c.
26907         (emit_debug_global_declarations, compile_file, finalize,
26908         do_compile, toplev_main): Use seen_error.
26909         * toplev.h: Include diagnostic-core.h.
26910         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
26911         internal_error, warning, warning_at, error, error_n, error_at,
26912         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
26913         verbatim, fnotice, progname): Move to diagnostic-core.h.
26914         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
26915         (expand_builtin_expect): Use seen_error.
26916         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
26917         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
26918         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
26919         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
26920         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
26921         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26922         errorcount for errors.
26923         * c-opts.c (c_common_finish): Use seen_error.
26924         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26925         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
26926         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
26927         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
26928         (get_coverage_counts): Use seen_error.
26929         * dwarf2out.c (dwarf2out_finish): Use seen_error.
26930         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
26931         gimplify_body): Use seen_error.
26932         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
26933         * ipa-pure-const.c (gate_pure_const): Use seen_error.
26934         * ipa-reference.c (gate_reference): Use seen_error.
26935         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
26936         * lambda-code.c: Include diagnostic-core.h instead of
26937         diagnostic.h.
26938         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
26939         * lto-compress.c: Include diagnostic-core.h instead of
26940         diagnostic.h.
26941         * lto-section-in.c: Include diagnostic-core.h instead of
26942         diagnostic.h.
26943         * lto-streamer-out.c: Include diagnostic-core.h instead of
26944         diagnostic.h.
26945         * lto-streamer.c: Include diagnostic-core.h instead of
26946         diagnostic.h.
26947         (gate_lto_out): Use seen_error.
26948         * matrix-reorg.c: Include diagnostic-core.h instead of
26949         diagnostic.h.
26950         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
26951         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
26952         (gate_expand_omp, lower_omp_1): Use seen_error.
26953         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
26954         (rest_of_decl_compilation, rest_of_type_compilation,
26955         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
26956         * tree-cfg.c (label_to_block_fn): Use seen_error.
26957         * tree-inline.c (optimize_inline_calls): Use seen_error.
26958         * tree-mudflap.c (mudflap_finish_file): Use
26959         seen_error.
26960         * tree-optimize.c (gate_all_optimizations,
26961         gate_all_early_local_passes, gate_all_early_optimizations): Use
26962         seen_error.
26963         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
26964         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
26965         (varpool_remove_unreferenced_decls,
26966         varpool_assemble_pending_decls): Use seen_error.
26967         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
26968         (TOPLEV_H, DIAGNOSTIC_H): Update.
26969         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
26970         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
26971         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
26972         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
26973         coverage.o, lambda-code.o): Update dependencies.
26974
26975 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
26976
26977         PR c++/44188
26978         * c-common.c (is_typedef_decl): Move this definition ...
26979         * tree.c (is_typedef_decl): ... here.
26980         (typdef_variant_p): Move definition here from cp/tree.c.
26981         * c-common.h (is_typedef_decl): Move this declaration ...
26982         * tree.h (is_typedef_decl): ... here.
26983         (typedef_variant_p): Move declaration here from cp/cp-tree.h
26984         * dwarf2out.c (is_naming_typedef_decl): New function.
26985         (gen_tagged_type_die): Split out of ...
26986         (gen_type_die_with_usage): ... this function. When an anonymous
26987         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
26988         is emitted for the typedef.
26989         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
26990         anonymous tagged types.
26991
26992 2010-05-27  Jason Merrill  <jason@redhat.com>
26993
26994         * print-tree.c (debug_vec_tree): New fn.
26995         (print_vec_tree): New fn.
26996         * tree.h: Declare them.
26997         * gdbinit.in (pvt): New command.
26998
26999         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
27000
27001         * gdbinit.in (pdd): New command.
27002
27003 2010-05-27  Jan Hubicka  <jh@suse.cz>
27004
27005         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
27006         (update_caller_keys): Return early if there are no callers;
27007         only update fibheap when decresing the key.
27008         (update_callee_keys): Avoid recursion.
27009         (decide_inlining_of_small_functions): When badness does not match;
27010         re-insert into fibheap.
27011
27012 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
27013
27014         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
27015         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
27016         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
27017         (ALL_HOST_OBJS): Now a union of the above two.
27018         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
27019         all files in ALL_HOST_FRONTEND_OBJS.
27020         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
27021
27022         * c-common.c: Pretend to be a backend file by undefining
27023         IN_GCC_FRONTEND (still need rtl.h here).
27024
27025 2010-05-27  Jan Hubicka  <jh@suse.cz>
27026
27027         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
27028         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
27029
27030 2010-05-27  Jan Hubicka  <jh@suse.cz>
27031
27032         * sched-ebb.c: Rename struct deps to struct deps_desc.
27033         * ddg.c: Likewise.
27034         * sel-sched-ir.c: Likewise.
27035         * sched-deps.c: Likewise.
27036         * sched-int.h: Likewise.
27037         * sched-rgn.c: Likewise.
27038
27039 2010-05-27  Jon Beniston  <jon@beniston.com>
27040
27041         PR 43726
27042         * config/lm32/lm32.h: Remove definition of
27043         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
27044
27045 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
27046
27047         PR lto/44230
27048         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
27049
27050 2010-05-27  Richard Guenther  <rguenther@suse.de>
27051
27052         PR tree-optimization/44284
27053         * tree-vect-stmts.c (vectorizable_assignment): Handle
27054         sign-changing conversions as simple copy.
27055
27056 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27057
27058         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
27059         Bionic C library.
27060         (__gthread_active_p): Check for pthread_create if compiling against
27061         Bionic C library.
27062
27063 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27064
27065         Support compilation for Android platform.  Reimplement -mandroid.
27066
27067         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
27068         (*android*): Set ANDROID_DEFAULT.
27069         (arm*-*-linux*): Include linux-android.h.
27070         (arm*-*-eabi*): Don't include previous -mandroid implementation.
27071         * config/arm/eabi.h: Remove, move Android-specific parts ...
27072         * config/linux-android.h: ... here.  New file.
27073         * config/arm/eabi.opt: Rename to ...
27074         * config/linux-android.opt: ... this.
27075         (mandroid): Allow -mno-android option.  Initialize based on
27076         ANDROID_DEFAULT.
27077         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
27078         Move logic to corresponding LINUX_TARGET_* macros.
27079         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
27080         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
27081         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
27082         Android definitions.
27083         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
27084         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
27085         Document.
27086
27087 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
27088
27089         Add support for Bionic C library
27090
27091         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
27092         macro.
27093         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
27094         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
27095
27096         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
27097         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
27098         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
27099         to support multiple C libraries.  Handle Bionic.
27100         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
27101         (BIONIC_DYNAMIC_LINKER64): Define.
27102         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
27103         Update.
27104         (TARGET_HAS_SINCOS): Enable for Bionic.
27105
27106         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
27107         the last option specified on command line take effect.
27108         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
27109         (mbionic): New.
27110         (mglibc, muclibc): Update.
27111
27112         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
27113         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
27114         DEFAULT_LIBC.
27115
27116         * doc/invoke.texi (-mglibc, -muclibc): Update.
27117         (-mbionic): Document.
27118
27119 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27120
27121         * c-common.h (c_register_addr_space): Add prototype.
27122         (ADDR_SPACE_KEYWORD): Remove.
27123         * c-common.c (c_register_addr_space): New function.
27124         (c_addr_space_name): Reimplement.
27125         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
27126
27127         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
27128         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
27129
27130         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
27131         Remove TARGET_ADDR_SPACE_KEYWORDS.
27132
27133 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
27134
27135         * input.c: New file.
27136         * input.h (main_input_filename): Move declaration to toplev.h.
27137         * toplev.c (input_location, line_table): Move to input.c
27138         * toplev.h (main_input_filename): Move declaration from input.h.
27139         * tree.c (expand_location): Move to input.c.
27140         * Makefile.in (OBJS-common): Add input.o.
27141         (input.o): Add dependencies.
27142
27143 2010-05-27  Richard Guenther  <rguenther@suse.de>
27144
27145         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
27146         for non-existant files.
27147         (fork_execute): Mark args_name file as deleted.
27148
27149 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
27150
27151         PR bootstrp/44287
27152         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
27153         (narrow_signed_type): Likewise.
27154
27155 2010-05-26  Jan Hubicka  <jh@suse.cz>
27156
27157         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
27158         edge only when checking is enabled; check using former_clone_of;
27159         check inline clones too.
27160         (cgraph_materialize_clone): Record former_clone_of pointer.
27161         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
27162         combining redirections; dump args_to_skip bitmap
27163         (cgraph_materialize_all_clones): Do no redirection here.
27164         * ipa-inline.c (inline_transform): Do redirection here.
27165         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
27166         cheking only).
27167
27168 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27169
27170         * config/avr/avr-c.c: Do not include regs.h.
27171         Include cpplib.h for cpp_define and tree.h for c-common.h.
27172         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
27173         * config/avr/t-avr: Fix dependencies for avr-c.o.
27174
27175 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27176
27177         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
27178         string instead of SYMBOL_REF rtx.
27179         * rtl.h (set_stack_check_libfunc): Move prototype from here...
27180         * libfuncs.h: ...to here.  Adjust for explow.c change.
27181
27182 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27183
27184         * pretty-print.c: Don't include ggc.h.
27185         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
27186         (identifier_to_locale): Use them for allocation.
27187         * pretty-print.h (identifier_to_locale_alloc,
27188         identifier_to_locale_free): Declare.
27189         * toplev.c (alloc_for_identifier_to_locale): New.
27190         (general_init): Set identifier_to_locale_alloc and
27191         identifier_to_locale_free.
27192         * Makefile.in (pretty-print.o): Update dependencies.
27193
27194 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27195
27196         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
27197         pointer types if they have different alignment or mode.
27198
27199 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
27200
27201         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
27202         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27203         * config/sparc/sparc-protos.h (function_value): Remove declaration.
27204         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
27205         sparc_function_value_regno_p): New functions.
27206         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27207         TARGET_FUNCTION_VALUE_REGNO_P): Define.
27208         (function_value): Rename to...
27209         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
27210         argument to 'outgoing'.
27211         (function_arg_record_value, function_arg_union_value,
27212         function_arg_vector_value): Update comment.
27213
27214 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
27215
27216         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
27217         (fde_needed_for_eh_p): New predicate.
27218         (output_call_frame_info): Use it throughout to decide whether FDEs
27219         are needed for EH purpose.
27220         (dwarf2out_begin_prologue): Reorder assignments.
27221
27222 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27223
27224         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
27225         special case loop->header.
27226         (is_predicated): New.
27227         (if_convertible_loop_p): Call it.
27228
27229 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27230
27231         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
27232         iterator in parameter.  Do not generate code during the analysis.
27233         (tree_if_convert_cond_stmt): Removed.
27234         (tree_if_convert_stmt): Removed.
27235         (predicate_bbs): New.
27236         (if_convertible_loop_p): Call predicate_bbs.
27237         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
27238         now contains all the analysis part.
27239
27240 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27241
27242         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
27243         statements in the analysis part.
27244         (tree_if_convert_stmt): Update comment.
27245         (remove_conditions_and_labels): New.
27246         (combine_blocks): Call remove_conditions_and_labels.
27247         (tree_if_conversion): Update comment.
27248
27249 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27250
27251         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
27252         than 2 predecessors or more than 2 successors.
27253
27254 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27255
27256         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
27257         of loops in which the data dependence analysis fails.
27258
27259 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27260
27261         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
27262         CDI_POST_DOMINATORS.
27263         (tree_if_conversion): Same.
27264
27265 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27266
27267         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
27268
27269 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
27270
27271         * tree-if-conv.c: Update copyright years.  Fix comments.
27272         Fix indentation.
27273
27274 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
27275
27276         * builtin-types.def (BT_INT128): New primitive type.
27277         (BT_UINT128): Likewise.
27278         * c-common.c (c_common_r): Add __int128 keyword.
27279         (c_common_type_for_size): Handle __int128.
27280         (c_common_type_for_mode): Likewise.
27281         (c_common_signed_or_unsigned_type): Likewise.
27282         (c_common_nodes_and_builtins): Add builtin type
27283         if target supports 128-bit integer scalar.
27284         * c-common.h (enum rid): Add RID_INT128.
27285         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
27286         if target supports 128-bit integer scalar.
27287         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
27288         (finish_declspecs): Likewise.
27289         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
27290         (c_token_starts_declspecs): Likewise.
27291         (c_parser_declspecs): Likewise.
27292         (c_parser_attributes): Likewise.
27293         (c_parser_objc_selector): Likewise.
27294         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
27295         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
27296         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
27297         * tree.c (make_or_reuse_type): Likewise.
27298         (make_unsigned_type): Likewise.
27299         (build_common_tree_nodes_2): Likewise.
27300         * tree.h (enum integer_type_kind): Add itk_int128 and
27301         itk_unsigned_int128.
27302         (int128_integer_type_node): New define.
27303         (int128_unsigned_type_node): New define.
27304         * doc/extend.texi: Add documentation about __int128 type.
27305
27306 2010-05-26  Richard Guenther  <rguenther@suse.de>
27307
27308         * tree-ssa-sccvn.c (copy_nary): Adjust.
27309         (copy_phis): Rename to ...
27310         (copy_phi): ... this.  Adjust.
27311         (copy_references): Rename to ...
27312         (copy_reference): ... this.  Adjust.
27313         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
27314         result into the valid table.
27315
27316 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27317
27318         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
27319         insn-config.h, insn-codes.h, recog.h, and optabs.h.
27320
27321 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27322
27323         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
27324
27325 2010-05-26  Richard Guenther  <rguenther@suse.de>
27326
27327         * opts.c (common_handle_option): Handle OPT_Ofast.
27328
27329 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
27330
27331         * diagnostic.c: Don't include opts.h.
27332         (permissive_error_option): Define.
27333         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
27334         for classify_diagnostic.  Don't use memset for
27335         classify_diagnostic.  Initialize new and recently added fields.
27336         (diagnostic_classify_diagnostic): Use context->n_opts instead of
27337         N_OPTS.
27338         (diagnostic_report_diagnostic): Pass context parameter to
27339         diagnostic_report_warnings_p.  Use option_enabled and option_name
27340         hooks from context.
27341         (emit_diagnostic): Use permissive_error_option.
27342         (permerror): Likewise.
27343         * diagnostic.h: Don't include options.h.
27344         (struct diagnostic_context): Add n_opts, opt_permissive,
27345         inhibit_warnings, warn_system_headers, option_enabled and
27346         option_name fields.  Change classify_diagnostic to a pointer.
27347         * opts-diagnostic.h: New file.
27348         * opts.c: Include opts-diagnostic.h.
27349         (common_handle_option): Set global_dc fields for -Wfatal-errors,
27350         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
27351         (option_name): New function.
27352         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
27353         (c_common_handle_option): Set global_dc->permissive for
27354         -fpermissive.
27355         * c-common.c (c_cpp_error): Save and restore
27356         global_dc->warn_system_headers, not variable warn_system_headers.
27357         * toplev.c: Include opts-diagnostic.h.
27358         (general_init): Update call to diagnostic_initialize.  Set
27359         global_dc->show_column, global_dc->option_enabled and
27360         global_dc->option_name.
27361         (process_options): Don't set global_dc fields here.
27362         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
27363         (diagnostic.o, opts.o, toplev.o): Update dependencies.
27364
27365 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27366
27367         * config/picochip/picochip.md (movsi): Split a movsi from a
27368         const after reload.
27369
27370 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27371
27372         * ggc-zone.c: Update copyright year.
27373         (poison_region): Mark memory for Valgrind as undefined before
27374         memset () call and inaccessible afterwards.
27375         (ggc_pch_total_size): Change type of i to int.
27376
27377 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27378
27379         * ggc-common.c (ggc_free_overhead): Allow empty slot.
27380
27381 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27382
27383         * ggc-common.c: Update copyright year.
27384         (ggc_rlimit_bound): Remove prototype.  Compile only if
27385         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
27386         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
27387         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
27388         (ggc_min_heapsize_heuristic): Likewise.
27389
27390 2010-05-26  Richard Guenther  <rguenther@suse.de>
27391
27392         PR rtl-optimization/44164
27393         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
27394         no-common access-path disambiguation.
27395         (indirect_ref_may_alias_decl_p): Adjust.
27396         (indirect_refs_may_alias_p): Likewise.
27397         (refs_may_alias_p_1): Likewise.
27398
27399 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27400
27401         * c-typeck.c: Do not include expr.h.
27402
27403 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27404
27405         * rtl.h (decl_default_tls_model): Move prototype from here...
27406         * output.h: ...to here.
27407         * c-decl.c: Do not include rtl.h.
27408         * c-pragma.c: Likewise.
27409         * c-parser.c: Likewise.
27410         * c-gimplify.c: Likewise.  And also not hard-reg-set.
27411         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
27412         FIXME note for it.  Add a FIXME note for expr.h.
27413         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
27414         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
27415         defined.
27416
27417 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
27418
27419         PR target/44199
27420         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
27421         or total_size is larger than red zone size for non-V4 ABI, emit a
27422         stack_tie resp. frame_tie insn before stack pointer restore.
27423         * config/rs6000/rs6000.md (frame_tie): New insn.
27424
27425 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
27426
27427         * function.h (struct function): Add can_throw_non_call_exceptions bit.
27428         * lto-streamer-in.c (input_function): Stream it in.
27429         * lto-streamer-out.c (output_function): Stream it out.
27430         * function.c (allocate_struct_function): Set it.
27431         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
27432         for flag_non_call_exceptions.
27433         * cfgbuild.c (control_flow_insn_p): Likewise.
27434         (make_edges): Likewise.
27435         * cfgexpand.c (expand_stack_alignment): Likewise.
27436         * combine.c (distribute_notes): Likewise.
27437         * cse.c (cse_extended_basic_block): Likewise.
27438         * except.c (insn_could_throw_p): Likewise.
27439         * gcse.c (simple_mem): Likewise.
27440         * ipa-pure-const.c (check_call): Likewise.
27441         (check_stmt ): Likewise.
27442         * lower-subreg.c (lower-subreg.c): Likewise.
27443         * optabs.c (emit_libcall_block): Likewise.
27444         (prepare_cmp_insn): Likewise.
27445         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
27446         * postreload.c (rest_of_handle_postreload): Likewise.
27447         * reload1.c (reload_as_needed): Likewise.
27448         (emit_input_reload_insns): Likewise.
27449         (emit_output_reload_insns): Likewise.
27450         (fixup_abnormal_edges): Likewise.
27451         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
27452         * store-motion.c (find_moveable_store): Likewise.
27453         * tree-eh.c (stmt_could_throw_p): Likewise.
27454         (tree_could_throw_p): Likewise.
27455         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27456         * config/arm/arm.c (arm_expand_prologue): Likewise.
27457         (thumb1_expand_prologue): Likewise.
27458         * config/rx/rx.md (cbranchsf4): Likewise.
27459         (cmpsf): Likewise.
27460         * config/s390/s390.c (s390_emit_prologue): Likewise.
27461         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
27462         (inline_forbidden_into_p): New predicate.
27463         (expand_call_inline): Use it to forbid inlining.
27464         (tree_can_inline_p): Likewise.
27465
27466 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27467
27468         * config/i386/i386-c.c: Do not include rtl.h.
27469         * config/i386/t-i386: Update dependencies.
27470
27471 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27472
27473         * attribs.c: Do not include rtl.h.
27474         * Makefile.in: Update dependencies.
27475
27476 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
27477
27478         * double-int.h (double_int_and): New.
27479         * combine.c (try_combine): Clean up, use double_int_* and
27480         immed_double_int_const functions.
27481
27482 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27483
27484         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
27485         stderr to /dev/null instead of grep -q.
27486         * configure: Regenerate.
27487
27488 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
27489
27490         * Makefile.in (EXCEPT_H): Fix typo.
27491
27492 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
27493
27494         * ira-build.c (update_conflict_hard_reg_costs): New.
27495         (ira_build): Call update_conflict_hard_reg_costs.
27496
27497 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27498
27499         PR debug/41371
27500         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
27501         ENABLE_CHECKING.
27502         (intersect_loc_chains): Walk the s2var's loc_chain together
27503         with s1node chain as long as the locations are equal, don't
27504         call find_loc_in_1pdv in that case.
27505
27506         PR debug/42801
27507         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
27508         (copy_bind_expr): ... instead of here.
27509         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
27510         if the block hasn't been remapped.
27511         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
27512         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
27513
27514 2010-05-25  Richard Guenther  <rguenther@suse.de>
27515
27516         PR middle-end/44069
27517         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
27518         out-of-bounds array accesses.
27519
27520 2010-05-25  Richard Guenther  <rguenther@suse.de>
27521
27522         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
27523         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
27524         (run_gcc): Re-organize to make cleanup easier.
27525
27526 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27527
27528         * config/s390/s390.c (optimization_options): Fix and move the
27529         flag_prefetch_loop_arrays override ...
27530         (override_options): ... here.
27531
27532 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
27533
27534         * diagnostic.c: Don't include plugin.h.
27535         (diagnostic_report_diagnostic): Don't handle plugins specially
27536         here.  Pass context to internal_error callback.
27537         * diagnostic.h (struct diagnostic_context): Add context parameter
27538         to internal_error callback.
27539         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
27540         * plugin.h (struct diagnostic_context): Declare.
27541         (warn_if_plugins, plugins_internal_error_function): Declare.
27542         * toplev.c (general_init): Set global_dc->internal_error.
27543         * Makefile.in (diagnostic.o): Update dependencies.
27544
27545 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
27546
27547         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
27548         * config/rs6000/t-darwin64: New.
27549         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
27550         build crt2.
27551
27552 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
27553
27554         PR 44203
27555         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
27556         match the original (and intended) behaviour before r159557.  This
27557         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
27558         in two ways.
27559
27560 2010-05-25  Richard Guenther  <rguenther@suse.de>
27561
27562         * doc/invoke.texi: Document -Ofast.
27563         * target.h (struct gcc_target): Add handle_ofast.
27564         * target-def.h (TARGET_HANDLE_OFAST): Add.
27565         (TARGET_INITIALIZER): Adjust.
27566         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
27567         * common.opt (Ofast): Add.
27568
27569 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27570
27571         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
27572         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
27573
27574 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
27575
27576         PR target/43610
27577         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
27578         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
27579         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
27580         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
27581
27582 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
27583
27584         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
27585         DW_OP_minus with negated offset instead of DW_OP_plus.
27586         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
27587
27588 2010-05-25  Wei Guozhi  <carrot@google.com>
27589
27590         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
27591         tst instruction and a new alternative.
27592         * config/arm/constraints.md (Pu): New constraint.
27593
27594 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
27595
27596         * function.c (assign_stack_local_1): Initialize variable
27597         to avoid warning when bootstrapping at -O3.
27598
27599 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
27600
27601         * configure.ac (all_lang_makefiles): Remove everything related to it.
27602         * configure: Regenerate.
27603         * Makefile.in: Fix reference to ada Make-lang.in.
27604         Remove support for LANG_MAKEFILES.
27605
27606 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
27607             Sandra Loosemore  <sandra@codesourcery.com>
27608
27609         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
27610         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
27611         description.  Add arm_neon_fp16_ok.
27612         (Add Options): Add arm_neon and arm_neon_fp16.
27613
27614 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
27615
27616         * diagnostic.c: Don't include flags.h.
27617         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
27618         context parameters.  Check flags in the context passed as a parameter.
27619         (diagnostic_build_prefix): Add context parameter.  Check
27620         show_column flag in context.
27621         (diagnostic_action_after_output): Check fatal_errors flag in context.
27622         (diagnostic_report_current_module): Check show_column flag in context.
27623         (default_diagnostic_starter): Update call to
27624         diagnostic_build_prefix.
27625         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
27626         (emit_diagnostic): Pass context to permissive_error_kind.
27627         (permerror): Pass context to permissive_error_kind.
27628         * diagnostic.h (struct diagnostic_context): Add show_column,
27629         pedantic_errors, permissive and fatal_errors fields.
27630         (diagnostic_build_prefix): Update prototype.
27631         * langhooks.c
27632         * toplev.c (process_options): Set flags in global_dc from
27633         flag_show_column, flag_pedantic_errors, flag_permissive,
27634         flag_fatal_errors.
27635         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
27636         to diagnostic_build_prefix.
27637         * Makefile.in (diagnostic.o): Update dependencies.
27638
27639 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
27640
27641         * config/i386/ia32intrin.h (__crc32q): Define only if
27642         __SSE4_2__ is defined.
27643
27644 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
27645
27646         PR target/44132
27647         PR middle-end/43602
27648         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
27649         DECL_VISIBILITY_SPECIFIED.
27650         (emutls_decl): Set DECL_PRESERVE_P and copy
27651         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
27652         (emutls_finalize_control_var): New callback.
27653         (emutls_finish): Finalize emutls control variables.
27654         * toplev.c (compile_file): Move the call to emutls_finish ()
27655         before varpool_assemble_pending_decls ().
27656
27657 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
27658
27659         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
27660         added to the preprocessor condition.
27661
27662 2010-05-24  Paul Brook  <paul@codesourcery.com>
27663
27664         * gengtype-lex.l: Add HARD_REG_SET.
27665         * expr.c (expand_expr_real_1): Record writes to hard registers.
27666         * function.c (rtl_data): Add asm_clobbers.
27667         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
27668         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
27669         Use crtl->asm_clobbers.
27670
27671 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27672
27673         * doc/makefile.texi (Makefile): Mention stages 'profile'
27674         and 'feedback' for profiledbootstrap.
27675
27676 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
27677
27678         PR target/44245
27679         * config/i386/i386.c (def_builtin): Properly check
27680         OPTION_MASK_ISA_64BIT.
27681
27682 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
27683
27684         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
27685         typedefs with different but compatible types.  Allow duplicate
27686         typedefs with the same type except for pedantic non-C1X, but give
27687         warning for variably modified types.
27688         * c-typeck.c (tagged_types_tu_compatible_p,
27689         function_types_compatible_p, type_lists_compatible_p,
27690         comptypes_internal): Add parameter different_types_p; set
27691         *different_types_p for different but compatible types.  All
27692         callers changed.
27693         (comptypes_check_different_types): New.
27694         * c-tree.h (comptypes_check_different_types): Declare.
27695
27696 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27697
27698         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
27699         * jump.c: Include basic-block.h.
27700         * profile.c: Likewise.
27701         * tree-profile.c: Likewise.
27702         * coverage.c: Likewise.
27703         * basic-block.h (optimize_function_for_size_p): Move to function.h.
27704         (optimize_function_for_speed_p): Likewise.
27705         * function.h (optimize_function_for_size_p,
27706         optimize_function_for_speed_p): Moved here from basic-block.h.
27707         * Makefile.in: Update dependencies.
27708
27709 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27710
27711         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
27712         before calling make; allow override through $MAKE.
27713         * doc/invoke.texi (Optimize Options): Document override.
27714
27715 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
27716
27717         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
27718         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27719         (rs6000_mode_dependent_address_ptr): Make static.
27720         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27721         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
27722         Remove.
27723
27724 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
27725
27726         PR target/43869
27727         * config/i386/i386.c: Make sure that the correct regparm is passed.
27728
27729 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
27730
27731         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
27732         * sbitmap.c: ...to here to internalize sbitmap element access.
27733         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
27734         Explain why basic-block.h is included.
27735         * function.h: Include tm.h for CUMULATIVE_ARGS.
27736         * Makefile.in: Update dependencies.
27737
27738 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27739
27740         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
27741         New core types.
27742         * sbitmap.h (struct sbitmap_def): Do not typedef here.
27743         * sbitmap.c: Include sbitmap.h.
27744         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
27745         hard-reg-set.h.  Split everything related to regsets out from here...
27746         * regset.h: ...to here.  New file.
27747         * df.h: Include regset.h and sbitmap.h.
27748         * tree-flow.h: Likewise.
27749         * cfgloop.h: Likewise.
27750         * except.h: Do not include sbitmap.h.  Include hashtab.h.
27751         * cgraph.h: Include vec.h and function.h.
27752         * reload.h (struct insn_chain): Change types of live_throughout
27753         and dead_or_set from regset_head to bitmap_head.
27754         (compute_use_by_pseudos): Be defined also if regset.h is not included.
27755         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
27756         spilled_regs from regset_head to bitmap_head to avoid dependency
27757         in regset.h.
27758         * sel-sched-ir.h: Include regset.h.
27759         * reload.c: Include df.h before reload.h.
27760         * caller-save.c: Likewise.
27761         * reload1.c: Likewise.
27762         * ira.c: Likewise.
27763         (mark_elimination): Update type of r to bitmap, consistent with
27764         DF_LR_IN.
27765         * dominance.c: Include bitmap.h.
27766         * modulo-sched.c: Include df.h.
27767         * cfganal.c: Include bitmap.h and sbitmap.h.
27768         * cfgbuild.c: Include sbitmap.h.
27769         * lcm.c: Include sbitmap.h.
27770         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
27771         * domwalk.c: Include sbitmap.h, exclude ggc.h.
27772         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
27773         * cselib.c: Include bitmap.h.
27774         * tree-optimize.c: Include regset.h.
27775         * stmt.c: Include bitmap.h.
27776         * Makefile.in: Update dependencies.
27777
27778 2010-05-22  Jan Hubicka  <jh@suse.cz>
27779
27780         * cgraph.h (struct varpool_node): Add same_comdat_group.
27781         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
27782         pointer.
27783         (output_varpool): Update call of lto_output_varpool_node.
27784         (input_varpool): Read same_comdat_group pointer.
27785         (input_varpool_1): Fixup same_comdat_group pointer.
27786         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
27787         group is needed, all are.
27788         * varpool.c (varpool_remove_node): Remove node from same comdat group
27789         linklist too.
27790         (varpool_analyze_pending_decls): Walk same comdat groups.
27791
27792 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
27793
27794         * rtl.h (union rtunion_def): Remove rt_bit member.
27795         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
27796         * print-rtl (print_rtx): Do not print the member.
27797         * gengtype.c (adjust_field_rtx_def): Do not handle it.
27798         * gengenrtl.c (type_from_format): Likewise.
27799         (accessor_from_format): Likewise.
27800
27801 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
27802
27803         * dbgcnt.c: Include toplev.h instead of errors.h.
27804         * ira-emit.c: Don't include errors.h.
27805         * ira.c: Include toplev.h instead of errors.h.
27806         * lto-compress.c: Include toplev.h instead of errors.h.
27807         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
27808         ira.o, dbgcnt.o): Update dependencies.
27809
27810 2010-05-22  Richard Guenther  <rguenther@suse.de>
27811
27812         * gimple.c (gimple_types_compatible_p): Check type qualifications
27813         before merging pointer to complete and pointer to incomplete type.
27814         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
27815         we use our own resolution algorithm.  The gold linker plugin
27816         doesn't do the job we want it to do here.
27817
27818 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
27819
27820         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27821         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27822         (sparc_mode_dependent_address_p): New function.
27823
27824 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
27825
27826         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
27827
27828         * timevar.c: Do not include any core headers.
27829         (timevar_print): De-i18n-ize.
27830         (print_time): Likewise.
27831         * timevar.h (timevar_push, timevar_pop): Make inline functions.
27832
27833 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
27834
27835         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
27836         langhooks-def.h.
27837         (diagnostic_initialize): Initialize x_data not last_function.
27838         (diagnostic_report_current_function): Move to tree-diagnostic.c.
27839         (default_diagnostic_starter): Call
27840         diagnostic_report_current_module not
27841         diagnostic_report_current_function.
27842         (diagnostic_report_diagnostic): Initialize x_data not
27843         abstract_origin.
27844         (verbatim): Likewise.
27845         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
27846         x_data.
27847         (struct diagnostic_context): Change last_function to x_data.
27848         (diagnostic_auxiliary_data): Replace with
27849         diagnostic_context_auxiliary_data and
27850         diagnostic_info_auxiliary_data.
27851         (diagnostic_last_function_changed, diagnostic_set_last_function,
27852         diagnostic_report_current_function): Move to tree-diagnostic.h.
27853         (print_declaration, dump_generic_node, print_generic_stmt,
27854         print_generic_stmt_indented, print_generic_expr,
27855         print_generic_decl, debug_c_tree, dump_omp_clauses,
27856         print_call_name, debug_generic_expr, debug_generic_stmt,
27857         debug_tree_chain, default_tree_printer): Move to
27858         tree-pretty-print.h.
27859         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
27860         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
27861         gimple-pretty-print.h.
27862         * pretty-print.c: Don't include tree.h
27863         (pp_base_format): Don't handle %K here.
27864         (pp_base_tree_identifier): Move to tree-pretty-print.c.
27865         * pretty-print.h (text_info): Change abstract_origin to x_data.
27866         (pp_tree_identifier, pp_unsupported_tree,
27867         pp_base_tree_identifier): Move to tree-pretty-print.h.
27868         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
27869         tree-pretty-print.h: New files.
27870         * tree-pretty-print.c: Include tree-pretty-print.h.
27871         (percent_K_format): New.  Moved from pretty-print.c.
27872         (pp_base_tree_identifier): Move from pretty-print.c.
27873         * c-objc-common.c: Include tree-pretty-print.h.
27874         (c_tree_printer): Handle %K here.
27875         * langhooks.c: Include tree-diagnostic.h.
27876         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
27877         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
27878         (default_tree_printer): Handle %K using percent_K_format.
27879         (general_init): Use default_tree_diagnostic_starter.
27880         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
27881         (free_lang_data): Use default_tree_diagnostic_starter.
27882         * c-pretty-print.c: Include tree-pretty-print.h.
27883         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27884         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27885         * dwarf2out.c: Include tree-pretty-print.h.
27886         * except.c: Include tree-pretty-print.h.
27887         * gimple-pretty-print.c: Include tree-pretty-print.h and
27888         gimple-pretty-print.h.
27889         * gimplify.c: Include tree-pretty-print.h.
27890         * graphite-poly.c: Include tree-pretty-print.h and
27891         gimple-pretty-print.h.
27892         * ipa-cp.c: Include tree-pretty-print.h.
27893         * ipa-inline.c: Include gimple-pretty-print.h.
27894         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27895         * ipa-pure-const.c: Include gimple-pretty-print.h.
27896         * ipa-struct-reorg.c: Include tree-pretty-print.h and
27897         gimple-pretty-print.h.
27898         * ipa-type-escape.c: Include tree-pretty-print.h.
27899         * print-rtl.c: Include tree-pretty-print.h.
27900         * print-tree.c: Include gimple-pretty-print.h.
27901         * sese.c: Include tree-pretty-print.h.
27902         * tree-affine.c: Include tree-pretty-print.h.
27903         * tree-browser.c: Include tree-pretty-print.h.
27904         * tree-call-cdce.c: Include gimple-pretty-print.h.
27905         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
27906         * tree-chrec.c: Include tree-pretty-print.h.
27907         * tree-data-ref.c: Include tree-pretty-print.h and
27908         gimple-pretty-print.h.
27909         * tree-dfa.c: Include tree-pretty-print.h.
27910         * tree-if-conv.c: Include tree-pretty-print.h and
27911         gimple-pretty-print.h.
27912         * tree-inline.c: Include tree-pretty-print.h.
27913         * tree-into-ssa.c: Include tree-pretty-print.h and
27914         gimple-pretty-print.h.
27915         * tree-nrv.c: Include tree-pretty-print.h.
27916         * tree-object-size.c: Include tree-pretty-print.h and
27917         gimple-pretty-print.h.
27918         * tree-outof-ssa.c: Include tree-pretty-print.h and
27919         gimple-pretty-print.h.
27920         * tree-parloops.c: Include tree-pretty-print.h and
27921         gimple-pretty-print.h.
27922         * tree-predcom.c: Include tree-pretty-print.h and
27923         gimple-pretty-print.h.
27924         * tree-scalar-evolution.c: Include tree-pretty-print.h and
27925         gimple-pretty-print.h.
27926         * tree-sra.c: Include tree-pretty-print.h.
27927         * tree-ssa-address.c: Include tree-pretty-print.h.
27928         * tree-ssa-alias.c: Include tree-pretty-print.h.
27929         * tree-ssa-ccp.c: Include tree-pretty-print.h and
27930         gimple-pretty-print.h.
27931         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
27932         * tree-ssa-copy.c: Include tree-pretty-print.h and
27933         gimple-pretty-print.h.
27934         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
27935         * tree-ssa-dce.c: Include tree-pretty-print.h and
27936         gimple-pretty-print.h.
27937         * tree-ssa-dom.c: Include tree-pretty-print.h and
27938         gimple-pretty-print.h.
27939         * tree-ssa-dse.c: Include gimple-pretty-print.h.
27940         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
27941         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
27942         * tree-ssa-live.c: Include tree-pretty-print.h and
27943         gimple-pretty-print.h.
27944         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
27945         gimple-pretty-print.h.
27946         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
27947         gimple-pretty-print.h.
27948         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
27949         gimple-pretty-print.h.
27950         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
27951         gimple-pretty-print.h.
27952         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
27953         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
27954         * tree-ssa-operands.c: Include tree-pretty-print.h and
27955         gimple-pretty-print.h.
27956         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
27957         gimple-pretty-print.h.
27958         * tree-ssa-pre.c: Include tree-pretty-print.h and
27959         gimple-pretty-print.h.
27960         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
27961         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
27962         gimple-pretty-print.h.
27963         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
27964         gimple-pretty-print.h.
27965         * tree-ssa-sink.c: Include gimple-pretty-print.h.
27966         * tree-ssa-ter.c: Include tree-pretty-print.h and
27967         gimple-pretty-print.h.
27968         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
27969         * tree-ssa.c: Include tree-pretty-print.h and
27970         gimple-pretty-print.h.
27971         * tree-stdarg.c: Include gimple-pretty-print.h.
27972         * tree-switch-conversion.c: Include gimple-pretty-print.h.
27973         * tree-tailcall.c: Include tree-pretty-print.h and
27974         gimple-pretty-print.h.
27975         * tree-vect-data-refs.c: Include tree-pretty-print.h and
27976         gimple-pretty-print.h.
27977         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
27978         gimple-pretty-print.h.
27979         * tree-vect-loop.c: Include tree-pretty-print.h and
27980         gimple-pretty-print.h.
27981         * tree-vect-patterns.c: Include gimple-pretty-print.h.
27982         * tree-vect-slp.c: Include tree-pretty-print.h and
27983         gimple-pretty-print.h.
27984         * tree-vect-stmts.c: Include tree-pretty-print.h and
27985         gimple-pretty-print.h.
27986         * tree-vectorizer.c: Include tree-pretty-print.h.
27987         * tree-vrp.c: Include tree-pretty-print.h and
27988         gimple-pretty-print.h.
27989         * value-prof.c: Include tree-pretty-print.h and
27990         gimple-pretty-print.h.
27991         * var-tracking.c: Include tree-pretty-print.h.
27992         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
27993         (tree-diagnostic.o): New dependencies.
27994         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
27995         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
27996         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
27997         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
27998         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
27999         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
28000         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
28001         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
28002         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
28003         tree-ssa-address.o, tree-ssa-loop-niter.o,
28004         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
28005         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
28006         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
28007         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
28008         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
28009         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
28010         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
28011         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
28012         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
28013         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
28014         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
28015         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
28016         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
28017         tree-switch-conversion.o, var-tracking.o, value-prof.o,
28018         cfgexpand.o, pretty-print.o): Update dependencies.
28019
28020 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
28021
28022         * tree-ssa-structalias.c: Remove tm_p.h from include.
28023
28024 2010-05-21  Jeff Law  <law@redhat.com>
28025
28026         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
28027
28028 2010-05-21  Jason Merrill  <jason@redhat.com>
28029
28030         * tree-eh.c (cleanup_is_dead_in): New.
28031         (lower_try_finally): Don't generate a dead cleanup region.
28032         (lower_cleanup): Likewise.
28033
28034 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28035
28036         PR debug/44223
28037         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
28038         unchain each use from the cyclic next_regno_use chain first.
28039
28040 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28041
28042         * real: Do not include gmp.h, mpfr.h, and mpc.h.
28043         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
28044         (real_value_negate, real_value_abs): New prototypes.
28045         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
28046         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
28047         new include file for interface between MPFR and REAL_VALUE_TYPE.
28048         * real.c: Include realmpfr.h.
28049         (real_arithmetic2): Remove legacy function.
28050         (real_value_negate): New.
28051         (real_value_abs): New.
28052         (mfpr_from_real, real_from_mpfr): Move from here...
28053         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
28054         * builtins.c: Include realmpfr.h.
28055         * fold-const.c: Include realmpfr.h.
28056         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
28057         (fold_negate_const): Likewise.
28058         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
28059         * toplev.c: Include realmpfr.h.
28060         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
28061         and real_value_negate.
28062         * fixed-value.c (check_real_for_fixed_mode): Likewise.
28063         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
28064         (vfp3_const_double_index): Likewise.
28065         (arm_print_operand): Likewise.
28066         * Makefile.in: Update dependencies.
28067
28068 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28069
28070         * config/s390/s390.c (override_options): Increase the default
28071         of max-completely-peel-times.
28072
28073 2010-05-21  Julian Brown  <julian@codesourcery.com>
28074             Mark Mitchell  <mark@codesourcery.com>
28075
28076         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
28077         sibling calls for Thumb-1.
28078         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
28079         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
28080         Thumb-2.
28081         (*call_insn, *call_value_insn): Don't use for Thumb-2.
28082         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
28083         for Thumb-2.
28084         (return): New expander.
28085         (*arm_return): New name for ARM return insn.
28086         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
28087
28088 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
28089
28090         * config.gcc (sparc64-*-rtems*): New target.
28091
28092 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28093
28094         * tree.c (build_function_decl_skip_args): Fix grammar.
28095         (build_function_type_list_1): Fix typos, adjust formatting.
28096
28097 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
28098
28099         * tree.h: Include real.h and fixed-value.h as basic datatypes.
28100         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
28101         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
28102         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
28103         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
28104         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
28105         tree-pretty-print.c, tree-loop-distribution.c,
28106         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
28107         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
28108         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
28109         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
28110         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
28111         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
28112         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
28113         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
28114         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
28115         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
28116         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
28117         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
28118         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
28119         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
28120         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
28121         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
28122         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
28123         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
28124         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
28125         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
28126         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
28127         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
28128         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
28129         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
28130         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
28131         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
28132         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
28133         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
28134         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
28135         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
28136         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
28137         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
28138         config/score/score7.c, config/score/score.c, config/arm/arm.c,
28139         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
28140         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
28141         config/bfin/bfin.c: Clean up redundant includes.
28142         * Makefile.in: Update accordingly.
28143
28144 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
28145
28146         PR middle-end/44204
28147         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
28148         statement has no arguments.
28149
28150 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
28151
28152         PR/44139
28153         * varasm.c (emutls_decl): Merge attributes to new decl.
28154
28155 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
28156
28157         PR middle-end/44101
28158         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
28159         around the uniquized constructor if its type requires a conversion.
28160
28161 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
28162
28163         PR debug/44205
28164         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
28165         at -O0 goto_locus of any of the incoming edges differs from
28166         goto_locus of outgoing edge, or gimple_location of any of the
28167         labels differs.
28168
28169 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
28170
28171         * ira.c (ira_non_ordered_class_hard_regs): Define.
28172         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
28173         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
28174         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
28175         cost of unaligned hard regs when allocating multi-reg pseudos.
28176
28177 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
28178
28179         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
28180         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
28181         for TARGET_NO_FLOAT.
28182         * config/mips/mips.c (mips_file_start): Expand conditional expression
28183         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
28184         (mips_override_options): Move -mno-float override -msoft-float and
28185         -mhard-float.
28186         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
28187         Condition(TARGET_SUPPORTS_NO_FLOAT).
28188         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
28189         __mips_no_float here.
28190         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
28191         (TARGET_SUPPORTS_NO_FLOAT): Define.
28192         * config/mips/sdemtk.opt: Delete.
28193
28194 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
28195
28196         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
28197
28198 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
28199
28200         PR target/43733
28201         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
28202         * configure: Regenerate.
28203         * config.in: Regenerate.
28204         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
28205         instead of sahf only for 64bit targets.
28206
28207 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28208
28209         PR debug/44178
28210         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
28211         setup_ref_regs for DEBUG_INSNs.
28212
28213 2010-05-20  Jan Hubicka  <jh@suse.cz>
28214
28215         PR middle-end/44197
28216         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
28217
28218 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
28219
28220         PR bootstrap/43870
28221         * df-scan.c (df_ref_compare): Stabilize sort.
28222
28223 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
28224
28225         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
28226         argument.  Don't use DW_OP_piece if offset is non-zero,
28227         put offset into second DW_OP_bit_piece argument.
28228         (dw_sra_loc_expr): Adjust callers.  For memory expressions
28229         compute offset.
28230
28231 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
28232
28233         PR target/44202
28234         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
28235         settings for 16-bit-constant "addo" alternative.
28236
28237 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
28238
28239         * config/mips/mips-dsp.md (add<DSPV:mode>3,
28240         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
28241
28242         PR target/43764
28243         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
28244         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
28245         Use it.
28246
28247 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
28248
28249         * diagnostic.c (FLOAT, FFS): Don't undefine.
28250         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
28251         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
28252         include ordering.
28253
28254 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
28255
28256         * combine.c (propagate_for_debug): Call make_compound_operation
28257         on the source value.
28258         (try_combine): When implementing a split chosen by find_split_point,
28259         either copy i2src or set it to null.  Assert that i2src is not null
28260         before substituting into CALL_INSN_FUNCTION_USAGE.
28261
28262 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
28263
28264         * double-int.h (double_int_ior): New function.
28265         * tree.h (build_int_cst_wide_type): Remove.
28266         * tree.c (build_int_cst_wide_type): Remove.
28267         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
28268         of build_int_cst_wide_type.
28269         * stor-layout.c (set_sizetype): (Ditto.).
28270         * dojump.c (do_jump): Use build_int_cstu instead of
28271         build_int_cst_wide_type.
28272
28273 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28274
28275         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
28276         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
28277         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
28278         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
28279         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
28280         propagate the 'data' argument to copy_tree_r.
28281         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
28282         Propagate 'data' argument to walk_tree.
28283         (copy_if_shared): New function.
28284         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
28285         (unmark_visited): New function.
28286         (unshare_body): Call copy_if_shared instead of doing it manually.
28287         (unvisit_body): Call unmark_visited instead of doing it manually.
28288
28289 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
28290
28291         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
28292         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
28293         * hooks.c: Likewise.
28294         * target-def.h (TARGET_FOLD_BUILTIN): Define to
28295         hook_tree_tree_int_treep_bool_null.
28296         * target.h (struct gcc_target): Update signature of fold_builtin
28297         field.
28298         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
28299         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
28300         instead of the call expression.
28301         (fold_builtin_call_array): Pass n and argarray directly.
28302         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
28303         consing a list.
28304         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
28305         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
28306         `i' and use it in place of `arity'.
28307         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
28308         Dereference `args' directly.
28309         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
28310
28311 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28312
28313         * doc/sourcebuild.texi (Effective-Target Keywords): Document
28314         3dnow, sse3, sse2.
28315         (Directives): Document optional dg-require-effective-target
28316         selector.
28317
28318 2010-05-19  Richard Guenther  <rguenther@suse.de>
28319
28320         PR lto/44196
28321         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
28322
28323 2010-05-19  Richard Guenther  <rguenther@suse.de>
28324
28325         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
28326         * common.opt (fwhopr=): New.
28327         * opts.c (common_handle_option): Handle OPT_fwhopr.
28328         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
28329         * collect2.c (main): Match -fwhopr*.
28330         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
28331         Execute ltrans stage in parallel when jobs is bigger than 1.
28332
28333 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28334
28335         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
28336         pentiumpro on Solaris 8/x86 with Sun as.
28337         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
28338         hidden alias bug.
28339         (gcc_cv_as_ix86_quad): Check for .quad directive.
28340         * configure: Regenerate.
28341         * config.in: Regenerate.
28342         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
28343
28344 2010-05-19  Martin Jambor  <mjambor@suse.cz>
28345
28346         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
28347         also for indirect edges.  Actual printing moved...
28348         (ipa_print_node_jump_functions_for_edge): ...here.
28349         (ipa_compute_jump_functions): Renamed to
28350         ipa_compute_jump_functions_for_edge and made static.
28351         (ipa_compute_jump_functions): New function.
28352         (make_edge_direct_to_target): Check if the number of arguments on
28353         the newly direct edge is the same as the number of parametrs of
28354         the callee.
28355         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
28356         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
28357         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
28358         analysis functions unconditionally, call the new
28359         ipa_analyze_params_uses on the node instead of every edge.
28360
28361 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
28362
28363         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
28364         to tree.
28365         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
28366         also checks for a constant int vs.  non-constant but
28367         loop-invariant steps.
28368         (find_or_create_group): Change the sort algorithm to only consider
28369         steps that are constant ints.
28370         (idx_analyze_ref): Adopt code to handle a tree instead of a
28371         HOST_WIDE_INT for step.
28372         (gather_memory_references_ref): Handle tree instead of int and be
28373         prepared to see a NULL_TREE.
28374         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
28375         prefetches if the step cannot be calculated at compile time.
28376         (issue_prefetch_ref): Issue prefetches for non-constant but
28377         loop-invariant steps.
28378
28379 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28380
28381         Revert:
28382         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28383
28384         * tree.h (build_call_list): Remove.
28385         * tree.c (build_call_list): Remove.
28386
28387 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
28388
28389         * tree.h (build_call_list): Remove.
28390         * tree.c (build_call_list): Remove.
28391
28392 2010-05-18  Jan Hubicka  <jh@suse.cz>
28393
28394         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
28395
28396 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
28397
28398         PR rtl-optimization/43332
28399         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
28400
28401 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
28402
28403         * tree.h (build_int_cstu): Implement as static inline.
28404         * tree.c (build_int_cstu): Remove function.
28405         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
28406         sign extended.
28407
28408 2010-05-18  Richard Guenther  <rguenther@suse.de>
28409
28410         PR lto/44143
28411         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
28412         (debug): Initialize from -save-temps.
28413         (collect_execute): Print command-line when verbose.
28414         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
28415         for ltrans invocation.  Produce -dumpbase flag again.
28416         (process_args): Remove.
28417         (main): Simplify.
28418         * collect2.c (maybe_run_lto_and_relink): Only pass object
28419         files to lto-wrapper.
28420         * gcc.c (LINK_COMMAND_SPEC): Likewise.
28421
28422 2010-05-18  Jan Hubicka  <jh@suse.cz>
28423
28424         * opts.c (decode_options): Do not disable whopr at ipa_cp.
28425         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
28426
28427 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28428
28429         PR lto/44184
28430         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
28431         in a GIMPLE_ASM.
28432         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
28433         in a GIMPLE_ASM.
28434
28435 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
28436
28437         PR debug/41371
28438         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
28439         rtx_equal_p inline.
28440
28441 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
28442
28443         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
28444         lto-macho as lto_binary_reader.
28445
28446         * darwin.c (darwin_asm_named_section): Do not add assembler comment
28447         after .section directive; just print it before the directive instead.
28448
28449 2010-05-17  Jan Hubicka  <jh@suse.cz>
28450
28451         * cgraph.c (cgraph_create_virtual_clone): Only check
28452         versionable_function_p when not in wpa and checking is enabled.
28453         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
28454         there are no more functions to materialize.
28455
28456 2010-05-17  Jan Hubicka  <jh@suse.cz>
28457
28458         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
28459         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
28460         New functions.
28461         (output_cgraph): Call output_cgraph_opt_summary.
28462         (input_cgrpah): Call input_cgraph_opt_summary.
28463         (output_cgraph_opt_summary_p, output_node_opt_summary,
28464         input_node_opt_summary, input_cgraph_opt_section): New functions.
28465         * lto-section-in.c (lto_section_name): Add cgraphopt.
28466         * tree-inline.c (tree_function_versioning): Handle parm_num.
28467         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
28468         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
28469
28470 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28471
28472         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
28473         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
28474         the insn to prefetch ratio heuristic to loops with known trip count.
28475
28476 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
28477
28478         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
28479         (schedule_prefetches): Do not generate a prefetch if the unroll factor
28480         is far from what is required by the prefetch.
28481
28482 2010-05-17  Jan Hubicka  <jh@suse.cz>
28483
28484         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
28485         (ipcp_estimate_growth): Likewise.
28486         (ipcp_const_param_count): Likewise.
28487         (ipcp_insert_stage): Likewise.
28488         * ipa-prop.c (visit_load_for_mod_analysis): New function.
28489         (visit_store_addr_for_mod_analysis): Set used flag.
28490         (ipa_detect_param_modifications): Set used flag for SSE params;
28491         update use of walk_stmt_load_store_addr_ops.
28492         (ipa_print_node_params): Print used flag.
28493         (ipa_write_node_info): Stream used flag.
28494         (ipa_read_node_info): Likewise.
28495         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
28496         (ipa_is_param_used): New function.
28497         (lto_ipa_fixup_call_notes): Remove unused declaration.
28498
28499 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28500
28501         PR target/44074
28502         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
28503         * configure: Regenerate.
28504         * config.in: Regenerate.
28505         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
28506         !HAVE_AS_IX86_REP_LOCK_PREFIX.
28507         Don't emit whitespace.
28508         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
28509         (*rep_movsi): Likewise.
28510         (*rep_movsi_rex64): Likewise.
28511         (*rep_movqi): Likewise.
28512         (*rep_movqi_rex64): Likewise.
28513         (*rep_stosdi_rex64): Likewise.
28514         (*rep_stossi): Likewise.
28515         (*rep_stossi_rex64): Likewise.
28516         (*rep_stosqi): Likewise.
28517         (*rep_stosqi_rex64): Likewise.
28518         (*cmpstrnqi_nz_1): Use {%;} after repz.
28519         (*cmpstrnqi_nz_rex_1): Likewise.
28520         (*cmpstrnqi_1): Likewise.
28521         (*cmpstrnqi_rex_1): Likewise.
28522         (*strlenqi_1): Use {%;} after repnz.
28523         (*strlenqi_rex_1): Likewise.
28524         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
28525         (*sync_compare_and_swap<mode>): Likewise.
28526         (sync_double_compare_and_swap<mode>): Likewise.
28527         (*sync_double_compare_and_swapdi_pic): Likewise.
28528         (sync_old_add<mode>): Likewise.
28529         (sync_add<mode>): Likewise.
28530         (sync_sub<mode>): Likewise.
28531         (sync_<code><mode>): Likewise.
28532
28533 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28534
28535         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
28536         otr_token and polymorphic.
28537         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
28538         (cgraph_clone_edge): Copy the above fields.
28539         * tree.c (get_binfo_at_offset): New function.
28540         * tree.h (get_binfo_at_offset): Declare.
28541         * ipa-prop.h (enum jump_func_type): Added known_type jump function
28542         type, reordered items, updated comments.
28543         (union jump_func_value): Added base_type field, reordered fields.
28544         (enum ipa_lattice_type): Moved down in the file.
28545         (struct ipa_param_descriptor): New field polymorphic.
28546         (ipa_is_param_polymorphic): New function.
28547         * ipa-prop.c: Include gimple.h and gimple-fold.h.
28548         (ipa_print_node_jump_functions): Print known type jump functions.
28549         (compute_complex_pass_through): Renamed to...
28550         (compute_complex_assign_jump_func): this.
28551         (compute_complex_ancestor_jump_func): New function.
28552         (compute_known_type_jump_func): Likewise.
28553         (compute_scalar_jump_functions): Create known type and complex ancestor
28554         jump functions.
28555         (ipa_note_param_call): New parameter polymorphic, set the corresponding
28556         flag in the call note accordingly.
28557         (ipa_analyze_call_uses): Renamed to...
28558         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
28559         variable var only in the block where it is used.
28560         (ipa_analyze_virtual_call_uses): New function.
28561         (ipa_analyze_call_uses): Likewise.
28562         (combine_known_type_and_ancestor_jfs): Likewise.
28563         (update_jump_functions_after_inlining): Implemented handling of a
28564         number of new jump function types combination.
28565         (print_edge_addition_message): Removed.
28566         (make_edge_direct_to_target): New function.
28567         (try_make_edge_direct_simple_call): Likewise.
28568         (try_make_edge_direct_virtual_call): Likewise.
28569         (update_call_notes_after_inlining): Renamed to...
28570         (update_indirect_edges_after_inlining): this.  Moved edge creation for
28571         indirect calls to try_make_edge_direct_simple_call, also calls
28572         try_make_edge_direct_virtual_call for virtual calls.
28573         (ipa_print_node_params): Changed the header message.
28574         (ipa_write_jump_function): Stream also known type jump functions.
28575         (ipa_read_jump_function): Likewise.
28576         (ipa_write_indirect_edge_info): Stream new fields in
28577         cgraph_indirect_call_info.
28578         (ipa_read_indirect_edge_info): Likewise.
28579         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
28580         GIMPLE_FOLD_H.
28581
28582 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28583
28584         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
28585
28586 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28587
28588         * tree.h (CALL_EXPR_ARGS): Delete.
28589         (call_expr_arglist): Delete.
28590         * tree.c (call_expr_arglist): Delete.
28591         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
28592         targetm.fold_builtin.
28593         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
28594         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
28595         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
28596         arglist parameter.  Use CALL_EXPR_ARG.
28597         (picochip_expand_builtin_3op): Likewise.
28598         (picochip_expand_builtin_2opvoid): Likewise.
28599         (picochip_expand_array_get): Likewise.
28600         (picochip_expand_array_put): Likewise.
28601         (picochip_expand_array_testport): Likewise.
28602         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
28603         rather than arglist.
28604         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
28605         CALL_EXPR_ARGS.
28606         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
28607         than TREE_VALUE and TREE_CHAIN.
28608         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
28609         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
28610         the arglist.
28611
28612 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28613
28614         PR bootstrap/42347
28615         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
28616         to have no fallthru edge.
28617
28618         PR middle-end/44102
28619         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
28620         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
28621         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
28622         add BARRIER after previous bb if needed.
28623
28624 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
28625
28626         * tree.c (build_function_type_list_1): Remove bogus assert condition.
28627
28628 2010-05-17  Alan Modra  <amodra@gmail.com>
28629
28630         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
28631         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
28632         with copy_reg rtx param.
28633         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
28634         Correct cases where code for ABI_V4 did not initialise the reg
28635         used to access frame.  Also leave frame_reg_rtx as sp for large
28636         frames that save no regs.
28637
28638 2010-05-17  Martin Jambor  <mjambor@suse.cz>
28639
28640         PR middle-end/44133
28641         * tree-sra.c (create_access_replacement): New parameter rename, mark
28642         the replaement for renaming only when it is true.
28643         (get_access_replacement): Pass true in the rename parameter of
28644         create_access_replacement.
28645         (get_unrenamed_access_replacement): New function.
28646         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
28647         replacement declaration from it.
28648
28649 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
28650
28651         * function.c (try_fit_stack_local, add_frame_space): New static
28652         functions.
28653         (assign_stack_local_1): Use them.  Look for opportunities to use
28654         space previously wasted on alignment.
28655         * function.h (struct frame_space): New.
28656         (struct rtl_data): Add FRAME_SPACE_LIST member.
28657         * reload1.c (something_was_spilled): New static variable.
28658         (alter_reg): Set it.
28659         (reload): Test it in addition to testing if the frame size changed.
28660
28661 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
28662
28663         * config/s390/s390.c: Define sane prefetch settings and activate
28664         flag_prefetch_loop_arrays on -O3.
28665         * config/s390/s390.h: Declare that read can use write prefetch.
28666
28667 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
28668
28669         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
28670         build.
28671
28672 2010-05-16  Jan Hubicka  <jh@suse.cz>
28673
28674         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
28675         function body; do not check stdarg field of struct function.
28676
28677 2010-05-16  Jan Hubicka  <jh@suse.cz>
28678
28679         * cgraph.c (dump_cgraph_node): Dump versionable flag.
28680         * cgraph.h (cgraph_local_info): Add versionable flag.
28681         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
28682         (ipcp_versionable_function_p): Use it.
28683         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28684         versionable flag.
28685
28686 2010-05-16  Jan Hubicka  <jh@suse.cz>
28687
28688         * cgraph.c (cgraph_clone_node): Take decl argument and insert
28689         clone into hash when it is different from orig.
28690         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
28691         * cgraph.h (cgraph_clone_node): Update prototype.
28692         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
28693         (lto_cgraph_encoder_delete): Delete body map.
28694         (lto_cgraph_encoder_size): Move to header.
28695         (lto_cgraph_encoder_encode_body_p,
28696         lto_set_cgraph_encoder_encode_body): New.
28697         (lto_output_node): Do not take written_decls argument; output clone_of
28698         pointer.
28699         (add_node_to): Add include_body_argument; call
28700         lto_set_cgraph_encoder_encode_body on master of the clone.
28701         (add_references): Update use of add_node_to.
28702         (compute_ltrans_boundary): Likewise.
28703         (output_cgraph): Do not create written_decls bitmap.
28704         (input_node): Take nodes argument; stream in clone_of correctly.
28705         (input_cgraph_1): Update use of input_node.
28706         * lto-streamer-out.c (lto_output): Use encoder info to decide
28707         what bodies to output.
28708         * ipa-inline.c (cgraph_clone_inlined_nodes,
28709         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
28710         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
28711         (lto_cgraph_encoder_size): Define here.
28712         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
28713         Declare.
28714
28715 2010-05-16  Richard Guenther  <rguenther@suse.de>
28716
28717         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
28718         -fipa-type-escape.
28719         * ipa-type-escape.c (gate_type_escape_vars): Run when
28720         -fipa-struct-reorg runs.
28721         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
28722         * common.opt (fipa-type-escape): Remove.
28723
28724 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28725
28726         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
28727         (decode_options): Likewise.
28728         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
28729
28730 2010-05-16  Jan Hubicka  <jh@suse.cz>
28731
28732         * ipa.c (function_and_variable_visibility): Also bring local all
28733         aliases.
28734
28735 2010-05-16  Richard Guenther  <rguenther@suse.de>
28736
28737         * alias.c (nonoverlapping_memrefs_p): Remove use of
28738         IPA type-escape information.
28739
28740 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
28741
28742         * c-common.c (c_common_reswords): Add _Static_assert for C.
28743         * c-parser.c (c_token_starts_declaration,
28744         c_parser_next_token_starts_declaration,
28745         c_parser_static_assert_declaration_no_semi,
28746         c_parser_static_assert_declaration): New.
28747         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
28748         Handle static assertions if static_assert_ok.
28749         (c_parser_external_declaration, c_parser_declaration_or_fndef,
28750         c_parser_compound_statement_nostart, c_parser_label,
28751         c_parser_for_statement, c_parser_objc_methodprotolist,
28752         c_parser_omp_for_loop): All callers of
28753         c_parser_declaration_or_fndef changed.
28754         (c_parser_struct_declaration): Handle static assertions.
28755         (c_parser_compound_statement_nostart): Use
28756         c_parser_next_token_starts_declaration and
28757         c_token_starts_declaration to detect start of declarations.
28758         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
28759         Likewise.
28760
28761 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28762
28763         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
28764         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28765         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
28766         TARGET_FUNCTION_VALUE_REGNO_P): Define.
28767         (mmix_function_outgoing_value): Rename to...
28768         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
28769         (mmix_function_value_regno_p): Make static.
28770         (mmix_libcall_value): New function.
28771         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
28772         mmix_function_value_regno_p): Remove declaration.
28773
28774 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
28775
28776         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
28777         BUILT_IN_ALLOCA if stack checking is enabled.
28778
28779 2010-05-16  Richard Guenther  <rguenther@suse.de>
28780
28781         * var-tracking.c (vars_copy_1): Inline ...
28782         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28783         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
28784         (variable_merge_over_cur): Adjust.  Merge asserts.
28785         (variable_merge_over_src): Likewise.
28786         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
28787         (variable_post_merge_new_vals): Merge asserts.
28788         (variable_post_merge_perm_vals): Likewise.
28789         (find_mem_expr_in_1pdv): Likewise.
28790         (dataflow_set_different_value): Remove.
28791         (onepart_variable_different_p): Merge asserts.
28792         (variable_different_p): Likewise.
28793         (dataflow_set_different_1): Inline ...
28794         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
28795         (emit_notes_for_differences_1): Merge asserts.
28796
28797 2010-05-16  Richard Guenther  <rguenther@suse.de>
28798
28799         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
28800         * optabs.c (libfunc_decl_hash): Likewise.
28801         * varasm.c (emutls_decl): Likewise.
28802
28803 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
28804
28805         * c-decl.c: Don't include gimple.h.
28806         (merge_decls): Do not copy gimple_body.
28807
28808 2010-05-15  Jason Merrill  <jason@redhat.com>
28809
28810         * c.opt: Add -fnothrow-opt.
28811
28812 2010-05-15  Jan Hubicka  <jh@suse.cz>
28813
28814         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
28815         analyzed.
28816         * passes.c (ipa_write_summaries): Write all analyzed nodes.
28817
28818 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
28819
28820         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
28821         * Makefile.in: Add it.
28822         Fix all other Makefile dependencies for changes below.
28823         * tree.h: Include it instead of defining VEC primitives here.
28824         * gimple.h: Likewise.
28825         * rtl.h: Likewise.
28826         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
28827         * except.h: Include vecir.h, break dependence on tree.h.
28828
28829         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
28830         Move from here...
28831         * tree-iterator.c: ...to here.
28832         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
28833
28834         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
28835         tm_p.h.
28836         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
28837         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
28838         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
28839         tree-mudflap.h, and target.h.
28840         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
28841         predict.h, tree-inline.h, gimple.h, and langhooks.h.
28842         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
28843         Add FIXME for why gimple.h is still included (should be unnecessary
28844         since GCC 4.5 gimplification unit-at-a-time).
28845         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
28846         * c-pragma.c: Add FIXME for why function.h needs to be included just
28847         for cfun, at front-end level.
28848         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
28849         Do not include ggc.h, but include vecprim.h for VEC(char).
28850         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
28851         Explain why target.h is included.
28852         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
28853         Explain why gimple.h is included.
28854         * c-ppoutput.c: Do not include tm.h.
28855         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
28856         * c-parses.c: Explain why rtl.h is included, and that this (and only
28857         this) is also why tm.h must be included.
28858         Do not include except.h.
28859         * c-lang.c: Do not include ggc.h.
28860
28861 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
28862
28863         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
28864
28865 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
28866
28867         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
28868         unions by default if those structs and unions have no tags.  Do
28869         not condition anonymous struct and unions handling on flag_iso.
28870         Allow anonymous structs and unions for C1X.
28871         (finish_struct): Do not diagnose lack of named fields when
28872         anonymous structs and unions present for C1X.  Accept flexible
28873         array members in structure with anonymous structs or unions but no
28874         directly named fields.
28875         * doc/extend.texi (Unnamed Fields): Update.
28876
28877 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
28878
28879         * gimple.h (compare_field_offset): Rename into...
28880         (gimple_compare_field_offset): ...this.
28881         * gimple.c (compare_field_offset): Rename into...
28882         (gimple_compare_field_offset): ...this.  Compare the full access if
28883         the offset is self-referential.
28884         (gimple_types_compatible_p): Adjust for above renaming.
28885         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
28886         DECL_NONADDRESSABLE_P flag of fields before merging them.
28887
28888 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
28889
28890         * tree.h (ctor_to_list): Delete.
28891         * tree.c (ctor_to_list): Delete.
28892
28893 2010-05-15  Jan Hubicka  <jh@suse.cz>
28894
28895         * ipa-reference.c: Include toplev.h
28896         (is_proper_for_analysis): Only add to all_module_statics
28897         if it is allocated.
28898         (write_node_summary_p, stream_out_bitmap,
28899         ipa_reference_write_optimization_summary,
28900         ipa_reference_read_optimization_summary): New.
28901         (struct ipa_opt_pass_d pass_ipa_reference): Add
28902         optimization summary streaming.
28903         * lto-cgraph.c (referenced_from_this_partition_p,
28904         reachable_from_this_partition_p): New functions.
28905         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
28906         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
28907         * opts.c (decode_options): Enable ipa_reference.
28908         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
28909         * lto-streamer.h (referenced_from_this_partition_p,
28910         reachable_from_this_partition_p): Declare.
28911
28912 2010-05-15  Richard Guenther  <rguenther@suse.de>
28913
28914         PR tree-optimization/44038
28915         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
28916         taking the address of a V_C_E of a constant.
28917
28918 2010-05-14  Jan Hubicka  <jh@suse.cz>
28919
28920         * tree.h (memory_identifier_string): Remove.
28921         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
28922         (ipa_reference_global_vars_info_d): Remove statics_not_read and
28923         statics_not_written.
28924         (ipa_reference_optimization_summary_d): New structure.
28925         (ipa_reference_optimization_summary_t): New type and vector.
28926         (ipa_reference_vars_info_d): Embedd structures instead of using
28927         pointers.
28928         (reference_vars_to_consider): Remove out of GGC space.
28929         (module_statics_escape): Remove.
28930         (global_info_obstack): Rename to ...
28931         (optimization_summary_obstack): ... this one.
28932         (initialization_status_t): Remove.
28933         (memory_identifier_string): Remove.
28934         (get_reference_vars_info): Fix indenting.
28935         (set_reference_vars_info): Likewise.
28936         (get_reference_optimization_summary): New.
28937         (set_reference_optimization_summary): New.
28938         (get_global_reference_vars_info): Remove.
28939         (ipa_reference_get_read_global): Remove.
28940         (ipa_reference_get_written_global): Remove.
28941         (ipa_reference_get_not_read_global): Update.
28942         (ipa_reference_get_not_written_global): Update.
28943         (is_proper_for_analysis): Outlaw addressable.
28944         (propagate_bits): Update for new datastructures.
28945         (analyze_variable): Remove.
28946         (init_function_info): Update for new datastructures.
28947         (clean_function_local_data): Remove.
28948         (clean_function): Remove.
28949         (copy_global_bitmap): Use optimizations_summary_obstack.
28950         (duplicate_node_data): Duplicate optimization summary only.
28951         (remove_node_data): Remove optimization summary only.
28952         (generate_summary): Do not analyze variables; do not compute
28953         module_statics_escape; do not prune solutions by it.
28954         (read_write_all_from_decl): Fix typos in comments.
28955         (propagate): Doscover readonly and nonaddressable first;
28956         update for new datastructures; share global bitmaps.
28957         * ipa-reference.h (ipa_reference_get_read_global,
28958         ipa_reference_get_written_global): Remove.
28959         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
28960         * Makefile.in: Remove ipa-refereference from GT files.
28961
28962 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
28963
28964         PR debug/44112
28965         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
28966         for all SYMBOL_REF_DECLs.
28967
28968 2010-05-14  Jan Hubicka  <jh@suse.cz>
28969
28970         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
28971         (varpool_all_refs_explicit_p): New inline function.
28972         * ipa-reference.c: Update comment.
28973         (module_statics_written): Remove.
28974         (get_static_decl): Remove.
28975         (ipa_init): Do not initialize module_statics_written.
28976         (analyze_function): Likewise.
28977         (generate_summary): Likewise; do not compute module_statics_readonly
28978         and do not update variable flags.
28979         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
28980         * ipa.c: Inlucde flags.h
28981         (cgraph_local_node_p): New.
28982         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
28983         promote functions to local.
28984         (ipa_discover_readonly_nonaddressable_vars): New function.
28985         (function_and_variable_visibility): Use cgraph_local_node_p.
28986         * varpool.c (varpool_finalize_decl): Set force_output for
28987         DECL_PRESERVE_P vars.
28988
28989 2010-05-14  Jan Hubicka  <jh@suse.cz>
28990
28991         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
28992
28993 2010-05-14  Richard Guenther  <rguenther@suse.de>
28994
28995         PR tree-optimization/44119
28996         * tree-ssa-pre.c (eliminate): Properly mark replacement of
28997         a PHI node necessary.
28998
28999 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
29000
29001         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
29002
29003 2010-05-14  Jason Merrill  <jason@redhat.com>
29004
29005         PR c++/44127
29006         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
29007         (gimple_call_set_nothrow): New.
29008         * gimple.c (gimple_build_call_from_tree): Call it.
29009         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
29010
29011         PR c++/44127
29012         * gimplify.c (gimplify_seq_add_stmt): No longer static.
29013         * gimple.h: Declare it.
29014         * gimple.c (gimple_build_eh_filter): No ops.
29015
29016 2010-05-14  Jan Hubicka  <jh@suse.cz>
29017
29018         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
29019         nodes already in queue.
29020         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
29021         re-enqueueing node.
29022
29023 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
29024
29025         PR debug/44136
29026         * cfgexpand.c (expand_debug_expr): If non-memory op0
29027         has BLKmode, return NULL.
29028
29029 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
29030
29031         * config.gcc: Add support for --with-cpu option for bdver1.
29032         * config/i386/i386.h (TARGET_BDVER1): New macro.
29033         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
29034         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29035         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
29036         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
29037         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
29038         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
29039         (processor_type): Add PROCESSOR_BDVER1.
29040         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
29041         processor_type in config/i386/i386.h.
29042         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
29043         movaps <reg, reg> instead of movapd <reg, reg> when replacing
29044         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
29045         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
29046         to emit packed xor instead of packed double/packed integer
29047         xor for SSE and AVX when moving a zero value.
29048         * config/i386/sse.md: Add check for
29049         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
29050         movapd/movdqa for SSE and AVX.
29051         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
29052         single logical operations i.e and, or and xor instead of packed double
29053         logical operations for SSE and AVX.
29054         * config/i386/i386-c.c (ix86_target_macros_internal):
29055         Add PROCESSOR_BDVER1.
29056         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
29057         (has_fma4, has_xop): New.
29058         * config/i386/i386.c (bdver1_cost): New variable.
29059         (m_BDVER1): New macro.
29060         (m_AMD_MULTIPLE): Add m_BDVER1.
29061         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
29062         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
29063         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
29064         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
29065         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
29066         x86_tune_sse_partial_reg_dependency,
29067         x86_tune_sse_unaligned_load_optimal,
29068         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
29069         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
29070         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
29071         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
29072         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
29073         Enable/disable for bdver1.
29074         (processor_target_table): Add bdver1_cost.
29075         (cpu_names): Add bdver1.
29076         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
29077          processor_alias_table.
29078         (ix86_expand_vector_move_misalign): Change.
29079         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
29080         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
29081         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
29082         of movupd/movdqu for SSE and AVX.
29083         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
29084         (ix86_tune_adjust_cost): Add code for bdver1.
29085         (standard_sse_constant_opcode): Add check for
29086         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
29087         of packed double xor for SSE and AVX.
29088
29089 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
29090
29091         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
29092         result to unsigned.
29093
29094 2010-05-14  Tristan Gingold  <gingold@adacore.com>
29095
29096         * toplev.c (default_debug_hooks): Remove this variable.
29097         (process_options): Remove assignments to default_debug_hooks.
29098
29099 2010-05-14  Martin Jambor  <mjambor@suse.cz>
29100
29101         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
29102         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
29103         * langhooks.h (struct lang_hooks_for_decls): Removed field
29104         fold_obj_type_ref.
29105         * tree.c (free_lang_data): Remove assignment to
29106         lang_hooks.fold_obj_type_ref.
29107         * tree.def (OBJ_TYPE_REF): Update comment.
29108
29109 2010-05-14  Richard Guenther  <rguenther@suse.de>
29110
29111         PR tree-optimization/44124
29112         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
29113
29114 2010-05-14  Alan Modra  <amodra@gmail.com>
29115
29116         PR target/44075
29117         * config/rs6000/rs6000.c (struct machine_function): Reorder
29118         fields for better packing.  Add lr_save_state.
29119         (rs6000_ra_ever_killed): Return lr_save_state if set.
29120         (rs6000_emit_eh_reg_restore): Set lr_save_state.
29121
29122 2010-05-13  Jan Hubicka  <jh@suse.cz>
29123
29124         * varpool.c (decide_is_variable_needed): Drop code checking
29125         TREE_SYMBOL_REFERENCED.
29126
29127 2010-05-13  Jan Hubicka  <jh@suse.cz>
29128
29129         * final.c (output_addr_const): Do not call mark_decl_referenced.
29130         * cgraphunit.c (process_function_and_variable_attributes): Use
29131         mark_needed_node dirrectly.
29132         (assemble_thunk): Do not call mark_decl_referenced.
29133
29134 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
29135
29136         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
29137
29138 2010-05-13  Jeff Law  <law@redhat.com>
29139
29140         * ira-conflicts.c (print_allocno_conflicts): New function broken out
29141         from...
29142         (print_conflicts): Call print_allocno_conflicts.
29143
29144 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29145
29146         PR debug/44104
29147         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
29148         if it is NULL.
29149
29150 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
29151
29152         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
29153         t-mingw-w64 or t-mingw-w32 for multilib configuration.
29154         * config/i386/t-mingw-w32: New.
29155         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
29156
29157 2010-05-13  Martin Jambor  <mjambor@suse.cz>
29158
29159         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
29160         gimple-fold.c).
29161         * gimple-fold.c (get_base_binfo_for_type): New function.
29162         (gimple_get_relevant_ref_binfo): Likewise.
29163         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29164         (gimple_fold_obj_type_ref): Likewise.
29165         (fold_gimple_call): Simplify condition for folding virtual calls
29166         and call gimple_fold_obj_type_ref.
29167         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
29168         (gimple_fold_obj_type_ref_known_binfo): Likewise.
29169
29170 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
29171
29172         * config/rs6000/rs6000-protos.h
29173         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
29174         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
29175         (rs6000_debug_mode_dependent_address)
29176         (rs6000_mode_dependent_address_ptr): Likewise.
29177
29178 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
29179
29180         PR debug/43983
29181         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
29182         by SRA.
29183         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
29184         * tree-sra.c (create_access_replacement): Call unshare_expr before
29185         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
29186         * dwarf2out.c: Include tree-flow.h.
29187         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
29188         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
29189         Handle DW_OP_bit_piece.
29190         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
29191         construct_piece_list, adjust_piece_list): New functions.
29192         (add_var_loc_to_decl): Handle SRA optimized variables.
29193         Adjust for var_loc_note to loc field renaming.
29194         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
29195         in VAR_LOCATION note.
29196         (new_loc_descr_op_bit_piece): New function.
29197         (dw_sra_loc_expr): New function.
29198         (dw_loc_list): Use it.  Don't handle the last range after the
29199         loop, handle it inside of the loop.  Adjust for var_loc_note
29200         to loc field renaming.
29201         (add_location_or_const_value_attribute): Only special case
29202         single entry loc lists if loc is NOTE_P.  Adjust for
29203         var_loc_note to loc field renaming.
29204         (dwarf2out_var_location): Don't set newloc->var_loc_note
29205         and newloc->next here.
29206
29207 2010-05-12  Jan Hubicka  <jh@suse.cz>
29208
29209         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
29210         flag.
29211         * cgraph.h (cgraph_only_called_directly_p,
29212         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
29213         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
29214         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
29215         (assemble
29216         * ipa.c (cgraph_remove_unreachable_nodes): Use
29217         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
29218         flags.
29219         * tree-inline.c (copy_bb): Check address_taken flag.
29220         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
29221         externally_visible flag.
29222
29223 2010-05-12  Jason Merrill  <jason@redhat.com>
29224
29225         PR bootstrap/44048
29226         PR target/44099
29227         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
29228         * sdbout.c (plain_type_1): Likewise.
29229         * dwarf2out.c (is_base_type): Likewise.
29230         (gen_type_die_with_usage): Likewise.  Generate
29231         DW_TAG_unspecified_type for any LANG_TYPE.
29232
29233 2010-05-12  Jan Hubicka  <jh@suse.cz>
29234
29235         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
29236         indrect edges too.
29237         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
29238         (cgraph_clone_edge): Update.
29239         (cgraph_node_remove_callees): Remove indirect calls too.
29240         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
29241         (cgraph_create_indirect_edge): Update prototype.
29242         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
29243         is_proper_for_analysis.
29244         (add_new_function, visited_nodes, function_insertion_hook_holder,
29245         get_local_reference_vars_info, mark_address_taken, mark_address,
29246         mark_load, mark_store, check_asm_memory_clobber, check_call,
29247         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
29248         (ipa_init): Do not initialize visited_nodes;
29249         function_insertion_hook_holder.
29250         (analyze_variable): Rewrite.
29251         (analyze_function): Rewrite.
29252         (copy_local_bitmap): Remove.
29253         (duplicate_node_dat): Do not duplicate local info.
29254         (generate_summary): Simplify to only walk cgraph.
29255         (write_node_summary_p, ipa_reference_write_summary,
29256         ipa_reference_read_summary): Remove.
29257         (propagate): Do not remove function insertion;
29258         generate summary.
29259         (pass_ipa_reference): NULLify summary handling fields.
29260         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
29261         (input_edge): Input ecf_flags.
29262         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
29263         (update_indirect_edges_after_inlining): Ignore edges with unknown
29264         param.
29265
29266 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
29267
29268         * implicit-zee.c: New file.
29269         * tree-pass.h (pass_implicit_zee): Declare.
29270         * passes.c (init_optimization_passes): Add zee pass.
29271         * common.opt (fzee): New flag.
29272         * timevar.def (TV_ZEE): Define.
29273         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
29274         and beyond.
29275         * Makefile.in (implicit-zee.o): Add new build file.
29276
29277 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29278             Nathan Froyd  <froydnj@codesourcery.com>
29279
29280         * c-common.c (sync_resolve_params): Remove write-only variable.
29281
29282 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
29283
29284         * target.h (struct gcc_target): Add mode_dependent_address_p field.
29285         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29286         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
29287         * targhooks.c (default_mode_dependent_address_p): New function.
29288         * targhooks.h (default_mode_dependent_address_p): Declare function.
29289         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
29290         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
29291         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
29292         target hook. Change return type to bool.
29293         * recog.h (mode_dependent_address_p): Change return type to bool.
29294
29295 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29296             Nathan Froyd  <froydnj@codesourcery.com>
29297
29298         * tree-mudflap.c (build_function_type_0, build_function_type_1,
29299         build_function_type_2, build_function_type_3): Remove.
29300         (mudflap_init): Use build_function_type_list.
29301
29302 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
29303             Nathan Froyd  <froydnj@codesourcery.com>
29304
29305         * coverage.c (build_fn_info_value): Call build_constructor instead of
29306         build_constructor_from_list.
29307         (build_ctr_info_value): Likewise.
29308         (build_gcov_info): Likewise.
29309
29310 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
29311
29312         * tree.c (build_constructor): Compute TREE_CONSTANT for the
29313         resultant constructor.
29314         (build_constructor_single): Don't set TREE_CONSTANT.
29315         (build_constructor_from_list): Don't compute TREE_CONSTANT.
29316
29317 2010-05-12  Jan Hubicka  <jh@suse.cz>
29318
29319         * cgraph.h (struct varpool_node): Add aux.
29320         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
29321         * varpool.c (varpool_remove_node): Do not remove initializer.
29322         (varpool_reset_queue): Export.
29323         (varpool_finalize_decl): Volatile vars are forced to be output.
29324         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
29325         replaced decl.
29326         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
29327         process_references, varpool_can_remove_if_no_refs): New functions.
29328         (cgraph_remove_unreachable_nodes): Handle variables too.
29329
29330 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
29331
29332         PR target/44088
29333         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
29334
29335 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
29336
29337         PR middle-end/44085
29338         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
29339         change value of ORT_TASK.
29340         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
29341         (omp_notice_threadprivate_variable): New function.
29342         (omp_notice_variable): Call it for threadprivate variables.
29343         If enclosing ctx is a task, print enclosing task rather than
29344         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
29345         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
29346         if task has untied clause.
29347
29348         PR debug/42278
29349         * dwarf2out.c (base_type_die): Don't add name attribute here.
29350         (modified_type_die): Instead of sizetype use
29351         its underlying original type.  If a DW_TAG_base_type doesn't
29352         have name added, add __unknown__.
29353         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
29354         always call force_type_die instead.
29355
29356 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
29357
29358         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
29359         for __stack_chk_guard.
29360
29361 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29362
29363         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
29364         don't call start_source_file debug hook here...
29365         (finish_options): ... but here, after outputting predefined and
29366         command line defines and undefs.
29367
29368         PR middle-end/44071
29369         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
29370         no fallthru edge.
29371         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
29372         optimizing away empty bb with no successors, move over its
29373         footer chain to fallthru predecessor.
29374         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
29375         (rtl_split_edge): For asm goto call patch_jump_insn even if
29376         splitting fallthru edge.
29377
29378         PR c++/44059
29379         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
29380         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
29381         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
29382         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
29383         on DW.ref.* decls.
29384
29385         PR c++/44062
29386         * c-parser.c (c_parser_expression): Mark LHS of a comma
29387         expression as read if it is a decl, handled component or
29388         COMPOUND_EXPR with that on the RHS.
29389         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
29390         if it is a decl or handled component.
29391
29392 2010-05-11  Jan Hubicka  <jh@suse.cz>
29393
29394         * lto-symtab.c (lto_symtab_free): New function.
29395         * lto-streamer.h (lto_symtab_free): Declare.
29396
29397 2010-05-11  Jan Hubicka  <jh@suse.cz>
29398
29399         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
29400         that if function is needed it is reachable.
29401         (lto_output_node): See if it the function is reachable or referenced.
29402         (output_cgraph): Update call of lto_output_node.
29403         * lto-streamer.h (reachable_from_other_partition_p): Declare.
29404
29405 2010-05-11  Jan Hubicka  <jh@suse.cz>
29406
29407         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
29408         Mark as used.
29409
29410 2010-05-11  Jan Hubicka  <jh@suse.cz>
29411
29412         PR tree-optimize/44063
29413         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
29414         queue.
29415         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
29416         limits.
29417         (estimate_function_body_sizes): Compute sizes even when disregarding.
29418
29419 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
29420
29421         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
29422
29423 2010-05-11  Jan Hubicka  <jh@suse.cz>
29424
29425         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
29426         into every boundary.
29427
29428 2010-05-11  Jan Hubicka  <jh@suse.cz>
29429
29430         * matrix-reorg.c (matrix_reorg): Rebuild edges.
29431
29432 2010-05-11  Jan Hubicka  <jh@suse.cz>
29433
29434         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
29435         lto_streamer_cache_delete): Put nodes into heap.
29436         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
29437         heap.
29438
29439 2010-05-11  Jan Hubicka  <jh@suse.cz>
29440
29441         * cgraphbuild.c (cgraph_rebuild_references): New.
29442         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
29443         out extern inlines.
29444         * cgraph.h (cgraph_rebuild_references): Declare.
29445         * tree-inline.c (tree_function_versioning): Use it.
29446         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
29447
29448 2010-05-11  Jan Hubicka  <jh@suse.cz>
29449
29450         * cgraph.c: Include ipa-utils.h
29451         (cgraph_create_virtual_clone): Update references.
29452         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
29453
29454 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29455
29456         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
29457         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
29458         cache size.
29459
29460 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
29461
29462         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
29463
29464 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
29465
29466         * gcc.c (execute): For -### don't quote arguments that
29467         contain just alphanumerics and _/-. characters.
29468         * doc/invoke.texi: Document that change for -###.
29469
29470         PR debug/44023
29471         * df-problems.c (struct dead_debug): Add to_rescan field.
29472         (dead_debug_init): Clear to_rescan field.
29473         (dead_debug_finish): Rescan all debug insns in to_rescan
29474         bitmap and free the bitmap.
29475         (dead_debug_insert_before): Instead of rescanning debug insns
29476         immediately queue their rescanning until dead_debug_finish.
29477         (df_note_bb_compute): After dead_debug_add do continue instead
29478         of break.
29479
29480 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
29481
29482         PR debug/44028
29483         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
29484         clear also INSN_REG_USE_LIST.
29485
29486 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29487
29488         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
29489
29490 2010-05-10  Jan Hubicka  <jh@suse.cz>
29491
29492         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
29493         commited change.
29494
29495 2010-05-10  Jan Hubicka  <jh@suse.cz>
29496
29497         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
29498         Allocate encoders.
29499         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
29500         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
29501         (lto_streamer_cache_create): Init alloc pool.
29502         (lto_streamer_cache_delete): Free alloc pool.
29503         * lto-streamer.h: Include alloc pool.
29504         (lto_streamer_cache_d): Use alloc pool.
29505         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
29506
29507 2010-05-10  Jan Hubicka  <jh@suse.cz>
29508
29509         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
29510         * cgraphbuild.c: Include except.h
29511         (record_type_list, record_eh_tables): New function.
29512         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
29513
29514 2010-05-10  Jan Hubicka  <jh@suse.cz>
29515
29516         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
29517         __frame_dummy_init_array_entry, force_to_data): Attribute as used
29518         rather than unused.
29519
29520 2010-05-10  Michael Matz  <matz@suse.de>
29521
29522         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
29523         (can_reassociate_p): Use FLOAT_TYPE_P.
29524         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
29525         (vect_force_simple_reduction): ... this.
29526         * tree-parloops.c (gather_scalar_reductions): Use
29527         vect_force_simple_reduction.
29528         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
29529         vect_is_simple_reduction, add modify argument, if true rewrite
29530         "a-b" into "a+(-b)".
29531         (vect_is_simple_reduction, vect_force_simple_reduction): New
29532         functions.
29533         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
29534
29535 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
29536             Vladimir Makarov  <vmakarov@redhat.com>
29537
29538         PR rtl-optimization/44012
29539         * ira-build.c (remove_unnecessary_allocnos): Nullify
29540         regno_allocno_map of the removed allocno.
29541
29542 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29543
29544         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
29545         to /dev/null.
29546         * configure: Regenerate.
29547
29548 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29549
29550         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
29551         unused.
29552         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
29553         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
29554         support in Sun ld.
29555         * configure: Regenerate.
29556
29557 2010-05-10  Richard Guenther  <rguenther@suse.de>
29558
29559         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
29560         marked if the entry identifier is marked.
29561
29562 2010-05-10  Richard Guenther  <rguenther@suse.de>
29563
29564         * c-common.c (struct c_common_attributes): Add fnspec attribute.
29565         (handle_fnspec_attribute): New function.
29566         * gimple.h (gimple_call_return_flags): Declare.
29567         (gimple_call_arg_flags): Likewise.
29568         * gimple.c (gimple_call_arg_flags): New function.
29569         (gimple_call_return_flags): Likewise.
29570         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
29571         New argument flags.
29572         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
29573         return value flags.
29574         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
29575         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
29576         main work to ...
29577         (make_heapvar_for): ... this new function.
29578         (handle_rhs_call): Handle fnspec attribute argument specifiers.
29579         (handle_lhs_call): Likewise.
29580         (find_func_aliases): Adjust.
29581
29582 2010-05-10  Richard Guenther  <rguenther@suse.de>
29583
29584         PR tree-optimization/44050
29585         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
29586
29587 2010-05-10  Wei Guozhi  <carrot@google.com>
29588
29589         PR target/42879
29590         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
29591
29592 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29593
29594         PR c/10676
29595         * c-typeck.c (lookup_field): Take a type directly.  Update
29596         recursive calls.
29597         (build_component_ref): Update call to lookup_field.
29598         (set_init_label): Use lookup_field to find initialized field.
29599         Handle returned list of fields like a sequence of designators.
29600
29601 2010-05-09  Richard Guenther  <rguenther@suse.de>
29602
29603         PR middle-end/44024
29604         * fold-const.c (tree_single_nonzero_warnv_p): Properly
29605         handle &FUNCTION_DECL.
29606
29607 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
29608
29609         PR c/4784
29610         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
29611         structures and unions recursively.
29612         (detect_field_duplicates): Move duplicate detection with a hash to
29613         detect_field_duplicates_hash.  Always use a hash if anonymous
29614         structures or unions are present.
29615         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
29616         give errors.
29617
29618 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
29619
29620         PR target/44046
29621         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
29622         detect Atom, Core 2 and Core i7.
29623
29624 2010-05-09  Richard Guenther  <rguenther@suse.de>
29625
29626         * gcc.c (store_arg): Handle temporary file deletion for
29627         joined arguments.
29628
29629 2010-05-09  Richard Guenther  <rguenther@suse.de>
29630
29631         PR middle-end/44043
29632         * ipa-inline.c (estimate_function_body_sizes): Return after
29633         disregarding inline limits.
29634
29635 2010-05-09  Richard Guenther  <rguenther@suse.de>
29636
29637         * gcc.c (store_arg): Revert last change.
29638
29639 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
29640
29641         PR middle-end/28685
29642         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
29643         (optimize_ops_list): Call it.
29644
29645 2010-05-08  Richard Guenther  <rguenther@suse.de>
29646
29647         PR tree-optimization/44030
29648         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
29649         NECESSARY flag if we propagate from a inserted expression.
29650
29651 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
29652
29653         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
29654         domain types as equal if they are both PLACEHOLDER_EXPRs.
29655
29656 2010-05-08  Richard Guenther  <rguenther@suse.de>
29657
29658         * lto-wrapper.c (run_gcc): Remove linker output from
29659         command line for LTRANS invocation.
29660
29661 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29662
29663         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
29664         lto-macho as lto_binary_reader.
29665         * target.h (struct gcc_target): New hooks lto_start and lto_end.
29666         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
29667         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
29668         in lto_start and lto_end calls.
29669         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
29670         magic numbers.
29671         (scan_prog_file): Update is_elf_or_coff call.
29672         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
29673
29674         * collect2.c (main): Fix enum comparison.
29675
29676         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
29677         Add prototypes.
29678         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
29679         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
29680         and TARGET_ASM_LTO_END.
29681         * darwin.c: Include obstack.h and lto-streamer.h.
29682         (lto_section_names_offset, lto_section_names_obstack,
29683         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
29684         global variables.
29685         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
29686         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
29687         to a temporary file.
29688         (darwin_asm_lto_end): New function.  Restore asm_out_file.
29689         (darwin_asm_named_section): For LTO sections, replace the name with
29690         the offset of the section name in a string table, and build this
29691         table.
29692         (darwin_file_start): Initialize global vars for LTO support.
29693         (darwin_file_end): If output to asm_out_file was redirected, append it
29694         to the proper asm_out_file here.  Add the section names section.
29695
29696 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
29697
29698         * c-pragma.c (pending_weak_d, pending_weak): New.
29699         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
29700         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
29701         handle_pragma_weak): Update the uses of pending_weaks.
29702
29703 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29704
29705         PR documentation/44016
29706         * doc/standards.texi (Standards): Link to unversioned
29707         cxx0x_status.html page.
29708
29709 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
29710
29711         PR target/43708
29712         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
29713         in addition to TREE_USED, to avoid "set but unused" warnings.
29714
29715 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29716
29717         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
29718         (is_loop_prefetching_profitable): Do not insert prefetches
29719         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
29720         times the prefetch ahead distance.
29721
29722 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29723
29724         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
29725         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
29726         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
29727         the unroll_factor.
29728
29729 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
29730
29731         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
29732         a diagnostic info when the insn-to-mem ratio is too small.
29733
29734 2010-05-07  Richard Guenther  <rguenther@suse.de>
29735
29736         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
29737         the linker plugin.
29738         (store_arg): Queue temp_filename for deletion instead of
29739         the whole argument.
29740
29741 2010-05-07  Richard Guenther  <rguenther@suse.de>
29742
29743         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
29744         (run_gcc): Handle LTRANS phase invocation.
29745         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
29746
29747 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
29748
29749         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
29750         this is also meaningful on PARM_DECLs and RESULT_DECLs.
29751
29752 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29753
29754         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
29755
29756 2010-05-07  Richard Guenther  <rguenther@suse.de>
29757
29758         PR tree-optimization/44020
29759         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
29760         code when PRE is not yet initialized.
29761
29762 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29763
29764         * config/mips/dbxmdebug.h: Remove.
29765         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
29766
29767 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29768
29769         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
29770         with null pointer and also warn about ordered comparison of zero with
29771         pointer if -Wextra.
29772
29773 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29774
29775         * graphite-blocking.c
29776         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
29777         * graphite-clast-to-gimple.c
29778         (clast_to_gcc_expression): Same.
29779         (precision_for_value): Same.
29780         (precision_for_interval): Same.
29781         (gcc_type_for_interval): Same.
29782         (graphite_create_new_guard): Same.
29783         (compute_bounds_for_level): Same.
29784         (graphite_create_new_loop_guard): Same.
29785         * graphite-interchange.c
29786         (build_linearized_memory_access): Same.
29787         (pdr_stride_in_loop): Same.
29788         (memory_strides_in_loop_1): Same.
29789         (memory_strides_in_loop): Same.
29790         (extend_scattering): Same.
29791         (psct_scattering_dim_for_loop_depth): Same.
29792         (pbb_number_of_iterations): Same.
29793         * graphite-poly.h
29794         (debug_iteration_domains): Same.
29795         * graphite-ppl.c
29796         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
29797         (ppl_set_inhomogeneous_gmp): Same.
29798         (ppl_strip_loop): Same.
29799         (ppl_lexico_compare_linear_expressions): Same.
29800         (ppl_read_polyhedron_matrix): Same.
29801         (ppl_max_for_le_pointset): Same.
29802         * graphite-ppl.h
29803         (ppl_read_polyhedron_matrix): Same.
29804         (tree_int_to_gmp): Same.
29805         (gmp_cst_to_tree): Same.
29806         (ppl_set_inhomogeneous): Same.
29807         (ppl_set_inhomogeneous_tree): Same.
29808         (ppl_set_coef): Same.
29809         (ppl_set_coef_tree): Same.
29810         * graphite-sese-to-poly.c
29811         (build_pbb_scattering_polyhedrons): Same.
29812         (build_scop_scattering): Same.
29813         (scan_tree_for_params_right_scev): Same.
29814         (scan_tree_for_params): Same.
29815         (find_params_in_bb): Same.
29816         (find_scop_parameters): Same.
29817         (add_upper_bounds_from_estimated_nit): Same.
29818         (build_loop_iteration_domains): Same.
29819         (add_condition_to_domain): Same.
29820         (pdr_add_memory_accesses): Same.
29821
29822 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
29823
29824         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
29825         CLooG's value_* macros to their respective mpz_* counterparts.
29826         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
29827         (graphite_create_new_loop_guard): Same.
29828         * graphite-interchange.c (build_linearized_memory_access): Same.
29829         (pdr_stride_in_loop): Same.
29830         (memory_strides_in_loop_1): Same.
29831         (1st_interchange_profitable_p): Same.
29832         * graphite-poly.c (extend_scattering): Same.
29833         (psct_scattering_dim_for_loop_depth): Same.
29834         (pbb_number_of_iterations): Same.
29835         (pbb_number_of_iterations_at_time): Same.
29836         * graphite-poly.h (new_1st_loop): Same.
29837         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
29838         (oppose_constraint): Same.
29839         (insert_constraint_into_matrix): Same.
29840         (ppl_set_inhomogeneous_gmp): Same.
29841         (ppl_set_coef_gmp): Same.
29842         (ppl_strip_loop): Same.
29843         (ppl_lexico_compare_linear_expressions): Same.
29844         (ppl_max_for_le_pointset): Same.
29845         (ppl_min_for_le_pointset): Same.
29846         (ppl_build_realtion): Same.
29847         * graphite-ppl.h (gmp_cst_to_tree): Same.
29848         (ppl_set_inhomogeneous): Same.
29849         (ppl_set_inhomogeneous_tree): Same.
29850         (ppl_set_coef): Same.
29851         (ppl_set_coef_tree): Same.
29852         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
29853         (build_scop_scattering): Same.
29854         (add_value_to_dim): Same.
29855         (scan_tree_for_params_right_scev): Same.
29856         (scan_tree_for_params_int): Same.
29857         (scan_tree_for_params): Same.
29858         (find_params_in_bb): Same.
29859         (find_scop_parameters): Same.
29860         (add_upper_bounds_from_estimated_nit): Same.
29861         (build_loop_iteration_domains): Same.
29862         (create_linear_expr_from_tree): Same.
29863         (add_condition_to_domain): Same.
29864         (pdr_add_memory_accesses): Same.
29865
29866 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
29867             Jason Merrill  <jason@redhat.com>
29868
29869         * c-common.c (c_common_reswords): Add nullptr.
29870         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
29871         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
29872         (gen_type_die_with_usage): Likewise.
29873         * dbxout.c (dbxout_type): Likewise.
29874         * sdbout.c (plain_type_1): Likewise.
29875
29876 2010-05-06  Jason Merrill  <jason@redhat.com>
29877
29878         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
29879         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
29880         ret appropriately.
29881         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
29882
29883         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
29884         stripping WITH_SIZE_EXPR.
29885         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
29886         change.
29887
29888 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29889
29890         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
29891         list of obsolete configurations.
29892         Disabled check for obsolete configurations.
29893         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29894         Removed support for previous versions.
29895         * config/mips/iris.h: Removed.
29896         * config/mips/iris5.h: Removed.
29897         * config/mips/iris6.h: Merged old iris.h contents.
29898         (TARGET_IRIX): Removed.
29899         (DRIVER_SELF_SPECS): Removed mabi=32.
29900         (IDENT_ASM_OP): Removed undef.
29901         (STARTFILE_SPEC): Removed mabi=32.
29902         (ENDFILE_SPEC): Likewise.
29903         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
29904         (MACHINE_TYPE): Update for IRIX 6.5.
29905         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
29906         TARGET_IRIX by TARGET_IRIX6.
29907         (mips_file_start): Likewise.
29908         (mips_output_external): Remove IRIX 5/6 O32 support.
29909         (mips_output_function_prologue): Likewise.
29910         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
29911         TARGET_IRIX6.
29912         (TARGET_CPU_CPP_BUILTINS): Likewise.
29913         (TARGET_IRIX): Removed.
29914         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
29915         (MULTILIB_DIRNAMES): Removed 32.
29916         (MULTILIB_OSDIRNAMES): Removed ../lib.
29917         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
29918         (Specific, mips-sgi-irix5): Document removal.
29919         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
29920         Remove references to older IRIX 6 releases and the O32 ABI.
29921
29922 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
29923
29924         PR bootstrap/43994
29925         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
29926         instead of DF_REF_REAL_REG.
29927
29928 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
29929
29930         PR target/43888
29931         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
29932         handling to still return true for x64 targets.
29933
29934 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29935
29936         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
29937
29938 2010-05-06  Jan Hubicka  <jh@suse.cz>
29939
29940         PR tree-optimization/43791
29941         * ipa-inline.c (update_caller_keys): Remove bogus
29942         disregard_inline_limits check.
29943
29944 2010-05-06  Michael Matz  <matz@suse.de>
29945
29946         PR tree-optimization/43984
29947         * tree-ssa-pre.c (inserted_phi_names): Remove.
29948         (inserted_exprs): Change to bitmap.
29949         (create_expression_by_pieces): Set bits, don't append to vector.
29950         (insert_into_preds_of_block): Don't handle inserted_phi_names.
29951         (eliminate): Don't look at inserted_phi_names, remove deleted
29952         insns from inserted_exprs.
29953         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
29954         (init_pre, fini_pre): Allocate and free bitmaps.
29955         (execute_pre): Insert insns on edges before elimination.
29956
29957 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
29958
29959         * tree.c (initializer_zerop): Handle STRING_CST.
29960
29961 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29962
29963         PR 40989
29964         * doc/invoke.texi (Wimplicit): Document as C only.
29965         * opts.c (common_handle_option): Add argument kind.
29966         (handle_option): Rename as read_cmdline_option. Factor out code to...
29967         (handle_option): ... here. New.
29968         (handle_options): Rename as read_cmdline_options.
29969         (decode_options): Update call.
29970         (set_option): Use option index instead of option pointer. Classify
29971         diagnostics correctly.
29972         (enable_warning_as_error): Call handle_option.
29973         * opts.h (set_option): Update declaration.
29974         (handle_option): Declare.
29975         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
29976         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
29977         * c-opts.c (set_Wimplicit): Delete.
29978         (c_family_lang_mask): New static constant.
29979         (c_common_handle_option): Add argument kind. Use handle_option
29980         instead of set_Wimplicit.
29981         (c_common_post_options): warn_implicit and warn_implicit_int
29982         are disabled by default.
29983         * c-common.c (warn_implicit): Do not define here.
29984         * c-common.h (warn_implicit): Do not declare here.
29985         (c_common_handle_option): Update declaration.
29986         * lto-opts.c (lto_reissue_options): Update call to set_option.
29987
29988 2010-05-06  Richard Guenther  <rguenther@suse.de>
29989
29990         PR tree-optimization/43571
29991         * domwalk.c (walk_dominator_tree): Walk the dominator
29992         sons in more optimal order.
29993
29994 2010-05-06  Richard Guenther  <rguenther@suse.de>
29995
29996         PR tree-optimization/43934
29997         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
29998         (stmt_cost): Likewise.
29999         (extract_true_false_args_from_phi): New helper.
30000         (determine_max_movement): For PHI nodes verify we can hoist them
30001         and compute their cost.
30002         (determine_invariantness_stmt): Handle PHI nodes.
30003         (move_computations_stmt): Likewise.  Hoist PHI nodes in
30004         if-converted form using COND_EXPRs.
30005         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
30006         (tree_ssa_lim): Likewise.
30007         * tree-flow.h (tree_ssa_lim): Adjust prototype.
30008         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
30009
30010 2010-05-06  Richard Guenther  <rguenther@suse.de>
30011
30012         PR tree-optimization/43987
30013         * tree-ssa-structalias.c (could_have_pointers): For possibly
30014         address-taken variables force pointers to be recorded.
30015         (create_variable_info_for_1): Likewise.
30016         (push_fields_onto_fieldstack): Pass in wheter all fields
30017         must have pointers.
30018         (find_func_aliases): Query types instead of vars whether
30019         they contain pointers where appropriate.
30020
30021 2010-05-06  Jan Hubicka  <jh@suse.cz>
30022
30023         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
30024         (record_reference, mark_address, mark_load, mark_store): Record
30025         references.
30026         (record_references_in_initializer): Update call of record_references.
30027         (rebuild_cgraph_edges): Remove all references before rebuiding.
30028         * cgraph.c (cgraph_create_node): Clear ref list.
30029         (cgraph_remove_node): Remove references.
30030         (dump_cgraph_node): Dump references.
30031         (cgraph_clone_node): Clone references.
30032         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
30033         (struct cgraph_node, varpool_node): Add ref_lst.
30034         * ipa-ref.c: New file.
30035         * ipa-ref.h: New file.
30036         * ipa-ref-inline.h: New file.
30037         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
30038         (referenced_from_other_partition_p): New function.
30039         (lto_output_varpool_node): Take set arugment; call
30040         referenced_from_other_partition.
30041         (lto_output_ref): New.
30042         (add_references): New.
30043         (output_refs): New.
30044         (output_cgraph): Compute boundary based on references; output refs.
30045         (output_varpool): Accept cgraph_node_set argument.
30046         (input_ref): New.
30047         (input_refs): New.
30048         (input_cgraph): Call input_refs.
30049         * lto-section-in.c (lto_section_name): Add refs.
30050         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
30051         (ipa-ref.o): New file.
30052         * varpool.c (varpool_node): Clear ipa ref list.
30053         (varpool_remove_node): Remove references.
30054         (dump_varpool_node): Dump references.
30055         (varpool_assemble_decl): Only compile finalized ones.
30056         (varpool_extra_name_alias): Initialize ref list.
30057         * lto-streamer.c (lto-get_section_name): Add .refs section.
30058         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
30059         (referenced_from_other_partition_p): Declared.
30060
30061 2010-05-06  Ira Rosen  <irar@il.ibm.com>
30062
30063         PR tree-optimization/43901
30064         * tree-vect-stmts.c (vectorizable_call): Assert that vector
30065         type is not NULL if it's transformation phase, and return
30066         FALSE if it's analysis.
30067         (vectorizable_conversion, vectorizable_operation,
30068         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
30069
30070 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
30071
30072         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30073         Delete.
30074         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
30075         New define.
30076         * config/mips/mips-protos.h
30077         (mips_small_register_classes_for_mode_p): Delete prototype.
30078
30079 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
30080
30081         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
30082         * config/arm/arm.c (multiple_operation_profitable_p,
30083         compute_offset_order): New static functions.
30084         (load_multiple_sequence, store_multiple_sequence): Use them.
30085         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
30086         memory offsets, not register numbers.
30087         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
30088
30089 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
30090
30091         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
30092         (get_pending_sizes, put_pending_size, put_pending_sizes):
30093         Update the uses of pending_sizes.
30094         * c-decl.c (store_parm_decls): Likewise.
30095         * c-tree.h (struct c_arg_info): Likewise.
30096         * tree.h: Update the prototype for get_pending_sizes and
30097         put_pending_sizes.
30098
30099 2010-05-05  Jason Merrill  <jason@redhat.com>
30100
30101         PR debug/43370
30102         * c-common.c (handle_aligned_attribute): Respect
30103         ATTR_FLAG_TYPE_IN_PLACE.
30104
30105         PR testsuite/43758
30106         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
30107         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30108         (TARGET_INITIALIZER): Use it.
30109         * c-common.c (attribute_takes_identifier_p): Call it.
30110         * c-common.h: Update prototype.
30111         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
30112         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
30113
30114 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30115
30116         PR debug/43950
30117         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
30118         DW_ID_down_case for Fortran compilation units.
30119
30120 2010-05-05  Jan Hubicka  <jh@suse.cz>
30121
30122         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
30123         handle aliases.
30124
30125 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
30126
30127         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
30128         a variable-sized RESULT_DECL.
30129
30130 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
30131
30132         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
30133
30134 2010-05-05  Jason Merrill  <jason@redhat.com>
30135
30136         PR c++/43787
30137         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
30138         returns GS_OK.
30139         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
30140
30141 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
30142             Jakub Jelinek  <jakub@redhat.com>
30143
30144         PR debug/43478
30145         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
30146         (dead_debug_init, dead_debug_finish): New functions.
30147         (dead_debug_add, dead_debug_insert_before): Likewise.
30148         (df_note_bb_compute): Initialize a dead_debug object, add dead
30149         debug uses to it, insert debug bind insns before death insns,
30150         reset debug insns that refer to pending uses at the end.
30151         * rtl.h (make_debug_expr_from_rtl): New prototype.
30152         * varasm.c (make_debug_expr_from_rtl): New function.
30153
30154 2010-05-05  Jan Hubicka  <jh@suse.cz>
30155
30156         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
30157         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
30158         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
30159         lto_varpool_encoder_deref, lto_varpool_encoder_size,
30160         lto_varpool_encoder_encode_initializer_p,
30161         lto_set_varpool_encoder_encode_initializer): New functions.
30162         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
30163         call output_varpool.
30164         (input_varpool_node): Do not always set analyzed.
30165         (input_cgraph_1): Return vector of cgraph nodes.
30166         (input_varpool_1): Return vector of varpools.
30167         (input_cgraph): Free the vectors.
30168         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30169         output only initializers needed.
30170         (lto_output): Only call output_cgraph.
30171         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
30172         * lto-section-out.c (lto_new_out_decl_state): Initialize
30173         state->varpool_node_encoder.
30174         * lto-streamer.h (lto_varpool_encoder_d): New.
30175         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
30176         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
30177         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
30178         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
30179         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
30180         Declare.
30181         (output_varpool, input_varpool): Remove declarations.
30182
30183 2010-05-05  Jan Hubicka  <jh@suse.cz>
30184
30185         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
30186         with body can prevail.
30187
30188 2010-05-05  Jan Hubicka  <jh@suse.cz>
30189
30190         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
30191         size.
30192
30193 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
30194
30195         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
30196
30197         * gengtype.h (erro_at_line): Constify pos argument.
30198
30199         * gengtype.c: Include hashtab.h.
30200         (enum gc_used): Document GC_MAYBE_POINTED_TO.
30201         (error_at_line): Constify pos argument.
30202         (do_typedef): Initialize p->opt field.
30203         (get_file_gtfilename): Fix comment typo.
30204         (struct walk_type_data): Constify line field.
30205         (get_output_file_for_structure): New function.
30206         (write_local_func_for_structure): Constify orig_s argument.
30207         Use get_output_file_for_structure.
30208         (write_func_for_structure): Use get_output_file_for_structure.
30209         (INDENT): New define.
30210         (dump_pair, dump_type, dump_type_list, dump_typekind)
30211         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
30212         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
30213         functions.
30214         (seen_types): New variable.
30215         (main): New variable do_dump.  Process "-d" command line option.
30216         Call dump_everything if dump requested.
30217
30218 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
30219
30220         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
30221         in a temporary instead of invoking the macro multiple times.
30222         (track_expr_p): Likewise.
30223
30224 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
30225
30226         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
30227         per new semantics.
30228         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
30229         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
30230         conditions for printing notes.
30231         * common.opt (-Wcoverage-mismatch): Allow negative, default to
30232         true, update documentation.
30233         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
30234
30235 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
30236
30237         PR c/43981
30238         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
30239         on dimen.
30240
30241 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30242
30243         PR target/43799
30244         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
30245         (*sse_prologue_save_insn1): Likewise.
30246         (SSE prologue save splitter): Likewise.
30247
30248 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
30249
30250         * tree.c (free_lang_data_in_one_sizepos): New inline function.
30251         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
30252         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
30253         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
30254         all decls.  Call it on DECL_FIELD_OFFSET of fields.
30255         (find_decls_types_r): Follow DECL_VALUE_EXPR.
30256         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
30257
30258 2010-05-04  Martin Jambor  <mjambor@suse.cz>
30259
30260         * tree-sra.c (build_access_from_expr_1): The first parameter type
30261         changed to simple tree.
30262         (build_access_from_expr): Likewise, gsi parameter was eliminated.
30263         (scan_assign_result): Renamed to assignment_mod_result, enum elements
30264         renamed as well.
30265         (build_accesses_from_assign): Removed all parameters except for a
30266         simple gimple statement.  Now returns a simple bool.
30267         (scan_function): All non-analysis parts moved to separate functions
30268         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
30269         parameters and updated both callers.
30270         (sra_modify_expr): Removed parameter data.
30271         (sra_modify_function_body): New function.
30272         (perform_intra_sra): Call sra_modify_function_body to modify the
30273         function body.
30274         (replace_removed_params_ssa_names): Parameter data changed into
30275         adjustments vector.
30276         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
30277         changed the parameter dont_convert to convert with the opposite
30278         meaning.
30279         (sra_ipa_modify_assign): Parameter data changed into adjustments
30280         vector, return value changed to bool.
30281         (ipa_sra_modify_function_body): New function.
30282         (sra_ipa_reset_debug_stmts): Updated a comment.
30283         (modify_function): Use ipa_sra_modify_function_body to modify function
30284         body.
30285
30286 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
30287
30288         PR middle-end/43671
30289         * alias.c (true_dependence): Handle the same VALUE in x and mem.
30290         (canon_true_dependence): Likewise.
30291         (write_dependence_p): Likewise.
30292
30293 2010-05-04  Jan Hubicka  <jh@suse.cz>
30294
30295         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
30296         * cgraphbuild.c: Include ipa-utils.h
30297         (record_reference_ctx): New struct.
30298         (record_reference): Simplify to work on initializers; not statements.
30299         (mark_address, mark_load, mark_store): New.
30300         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30301         walk PHI nodes too.
30302         (record_references_in_initializer): Update use of record_reference.
30303         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
30304         walk PHI nodes too.
30305
30306 2010-05-04  Jan Hubicka  <jh@suse.cz>
30307
30308         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
30309         node will be removed anyway.
30310         (lto_varpool_replace_node): Allow also unanalyzed nodes;
30311         relink aliases of node into prevailing node.
30312         * varpool.c (varpool_remove_node): Remove aliases properly;
30313         when removing node, remove all its aliases too; remove DECL_INITIAL
30314         of removed node; ggc_free the varpool node.
30315
30316 2010-05-04  Richard Guenther  <rguenther@suse.de>
30317
30318         PR tree-optimization/43879
30319         * tree-ssa-structalias.c (alias_get_name): Use
30320         DECL_ASSEMBLER_NAME if available.
30321         (create_function_info_for): Return the varinfo node.
30322         (ipa_pta_execute): Associate same-body aliases and extra names
30323         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
30324
30325 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
30326
30327         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
30328
30329 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
30330
30331         PR bootstrap/43964
30332         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
30333         only if HONOR_REG_ALLOC_ORDER is not defined.
30334
30335 2010-05-04  Richard Guenther  <rguenther@suse.de>
30336
30337         PR tree-optimization/43949
30338         * tree-vrp.c (extract_range_from_binary_expr): Only handle
30339         TRUNC_MOD_EXPR.
30340
30341 2010-04-26  Jason Merrill  <jason@redhat.com>
30342
30343         * c.opt (-fstrict-enums): New.
30344         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
30345
30346 2010-05-03  David Ung  <davidu@mips.com>
30347             James E. Wilson  <wilson@codesourcery.com>
30348
30349         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
30350         emit the trap instruction before the divide for TUNE_74K.
30351
30352 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
30353
30354         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
30355         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
30356         based on the above, for new target hook.
30357
30358         * hooks.c (hook_bool_mode_true): New generic hook.
30359         * hooks.h (hook_bool_mode_true): Add prototype.
30360
30361         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
30362         target hook.
30363         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
30364         target hook, set to hook_bool_mode_false.
30365         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
30366         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
30367         with targetm.small_register_classes_for_mode_p.
30368         (find_reusable_reload): Likewise.
30369         (combine_reloads): Likewise.
30370         * reload1.c (reload_as_needed): Likewise.
30371         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
30372         * ifcvt.c (noce_process_if_block, check_cond_move_block,
30373         dead_or_predicable): Likewise.
30374         * regmove.c (optimize_reg_copy_1): Likewise.
30375         * calls.c (prepare_call_address): Likewise.
30376         (precompute_register_parameters): Likewise.
30377
30378         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
30379         hook definition.
30380         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30381         implementation of the hook that considers all register classes
30382         small except for SH64.
30383         (sh_override_options): Use the new hook.
30384         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
30385         Add prototype.
30386
30387         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
30388         hook definition.
30389         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
30390         implementation of the hook that considers all register classes
30391         small for THUMB1.
30392         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
30393         Add prototype.
30394
30395         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
30396         hook definition.
30397         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
30398         implementation of the hook that considers all register classes
30399         small for MIPS16.
30400         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
30401         Add prototype.
30402
30403         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
30404         hook definition.
30405         * config/m32c/m32c.h: Likewise.
30406         * config/pdp11/pdp11.h: Likewise.
30407         * config/avr/avr.h: Likewise.
30408         * config/xtensa/xtensa.h: Likewise.
30409         * config/m68hc11/m68hc11.h: Likewise.
30410         * config/mn10300/mn10300.h: Likewise.
30411         * config/mcore/mcore.h: Likewise.
30412         * config/h8300/h8300.h: Likewise.
30413         * config/bfin/bfin.h: Likewise.
30414
30415         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
30416         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
30417
30418 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
30419
30420         * double-int.h (tree_to_double_int): Remove macro.
30421         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
30422         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30423         (tree_to_double_int): New function.
30424         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
30425         Move ...
30426         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
30427
30428 2010-05-03  Richard Guenther  <rguenther@suse.de>
30429
30430         PR tree-optimization/43971
30431         * tree-ssa-structalias.c (get_constraint_for_1): Fix
30432         constraints in the !flag_delete_null_pointer_checks case.
30433
30434 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
30435
30436         PR debug/43972
30437         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
30438         result mode matches original rtl mode.
30439
30440 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
30441
30442         PR target/43888
30443         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
30444
30445 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30446
30447         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
30448         when processing flag options.
30449
30450 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30451
30452         * gcov-iov.c (main): Change format string placeholder
30453         from %#08x to 0x%08x.
30454         * genchecksum.c (dosum): Change format string placeholder
30455         from %#02x to 0x%02x.
30456
30457 2010-05-02  Richard Guenther  <rguenther@suse.de>
30458
30459         PR tree-optimization/43879
30460         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
30461
30462 2010-05-02  Bruno Haible  <bruno@clisp.org>
30463
30464         * doc/extend.texi (Function Attributes): Fix a typo.
30465
30466 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30467
30468         Revert:
30469         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
30470         placeholder from 0x%x to %#x.
30471         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30472         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
30473         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
30474         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
30475         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
30476         * config/i386/i386.c (ix86_target_string): Ditto.
30477         * config/i386/i386.c (output_pic_addr_const): Ditto.
30478         (print_operand): Ditto.
30479
30480 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
30481
30482         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
30483         placeholder from 0x%x to %#x.
30484         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
30485         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
30486         (ASM_OUTPUT_DEBUG_DATA): Ditto.
30487         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
30488         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
30489         * optc-gen.awk: Ditto.
30490         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
30491         (HOST_WIDE_INT_PRINT_HEX): Ditto.
30492         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
30493         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
30494
30495 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30496
30497         * target.h (struct calls): Add function_value_regno_p field.
30498         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
30499         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
30500         * targhooks.c (default_function_value_regno_p): New function.
30501         * targhooks.h (default_function_value_regno_p): Declare function.
30502         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
30503         * builtins.c. (apply_result_size): (Ditto.).
30504         * combine.c. (likely_spilled_retval_p): (Ditto.).
30505         * mode-switching.c. Include 'target.h'.
30506         (create_pre_exit): Use function_value_regno_p hook.
30507         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
30508         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
30509         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
30510
30511         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
30512         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
30513         (ix86_function_value_regno_p): Declare as static, change argument
30514         type to const unsigned int.
30515         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
30516
30517 2010-05-01  Richard Guenther  <rguenther@suse.de>
30518
30519         PR tree-optimization/43949
30520         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
30521         types.
30522         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
30523
30524 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
30525
30526         * rtl.h (CONST_DOUBLE_P): Define.
30527         (rtx_to_double_int): Declare.
30528         * emit-rtl.c (rtx_to_double_int): New function.
30529         * dwarf2out.c (insert_double): New function.
30530         (loc_descriptor, add_const_value_attribute): Clean up, use
30531         rtx_to_double_int and insert_double functions.
30532
30533 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
30534
30535         * doc/extend.texi (Inline): Add missing return keyword to examples.
30536         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
30537         "command-line".
30538
30539 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
30540
30541         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
30542         the variable part of the offset as well.  Use highest_pow2_factor for
30543         all alignment checks.
30544
30545 2010-04-30  Richard Guenther  <rguenther@suse.de>
30546
30547         PR tree-optimization/43879
30548         * tree-ssa-structalias.c (type_could_have_pointers): Functions
30549         can have pointers.
30550
30551 2010-04-30  Jan Hubicka  <jh@suse.cz>
30552
30553         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
30554         varpool.
30555         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
30556
30557 2010-04-30  Jan Hubicka  <jh@suse.cz>
30558
30559         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
30560         New.
30561         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
30562         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
30563         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
30564         cgraph_node_set_needs_ltrans_p): Remove.
30565
30566 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30567
30568         * sdbout.c: Include vec.h, do not include varray.h.
30569         (deferred_global_decls, sdbout_global_decl,
30570         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
30571         * toplev.c: Do not include varray.h.
30572         (dump_memory_report): Do not dump VARRAY statistics.
30573         * gengtype.c (open_base_file): Ignore varray.h.
30574         * Makefile.in: Update for abovementioned changes.
30575         Remove all traces of varray.c and varray.h.
30576         * varray.c: Remove file.
30577         * varray.h: Remove file.
30578
30579 2010-04-30  Jan Hubicka  <jh@suse.cz>
30580
30581         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
30582         references.
30583
30584 2010-04-30  Jan Hubicka  <jh@suse.cz>
30585
30586         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
30587         needed.
30588
30589 2010-04-30  Richard Guenther  <rguenther@suse.de>
30590
30591         * tree-ssa-structalias.c (get_constraint_for_1): Generate
30592         constraints for CONSTRUCTOR.
30593
30594 2010-04-30  Richard Guenther  <rguenther@suse.de>
30595
30596         PR lto/43946
30597         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
30598         first after all lowering passes.
30599
30600 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
30601
30602         * toplev.c: Include varray.h for statistics dumping.
30603         * tree.h: Do not declare varray_head_tag.
30604         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
30605         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
30606         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
30607         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
30608         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
30609         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
30610         c-common.c, c-common.h, reg-stack.c, basic-block.h,
30611         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
30612         include varray.h.
30613         * Makefile.in: Update for abovementioned changes.
30614
30615 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
30616
30617         PR debug/43942
30618         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
30619
30620 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
30621
30622         * config/picochip/picochip.c (picochip_legitimize_address): Define.
30623         Use this function to do machine-specific conversion.
30624         (picochip_legitimize_reload_address): Likewise.
30625         (picochip_legitimate_address_p): Check valid base register only if
30626         strict.
30627         (picochip_check_conditional_copy): Check for modw only if opnd is
30628         register.
30629         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
30630         to call the function in c.
30631         * config/picochip/picochip-protos.h
30632         (picochip_legitimize_reload_address): Define.
30633         * config/picochip/picochip.md (supported_compare1): Define.
30634
30635 2010-04-30  Jan Hubicka  <jh@suse.cz>
30636
30637         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
30638         (cgraph_global_info): Remove inlined.
30639         (LTO_cgraph_tag_names): Remove.
30640         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
30641         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
30642         simplify cgraph tags and document.
30643         (lto_output_node): Use only LTO_cgraph_unavail_node and
30644         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
30645         for_functions_valid, global info, process and output flags.
30646         (input_overwrite_node): Initialize estimated stack size and
30647         estimated growth.  Do not read flags we no longer store.
30648         (input_node): Likewise do not read info no longer stored.
30649         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
30650         flag.
30651
30652 2010-04-30  Richard Guenther  <rguenther@suse.de>
30653
30654         PR tree-optimization/43879
30655         * tree-ssa-structalias.c (get_constraint_for_1): Properly
30656         handle non-zero initializers.
30657
30658 2010-04-30  Richard Guenther  <rguenther@suse.de>
30659
30660         * builtins.c (fold_builtin_1): Delete free (0).
30661
30662 2010-04-29  Jan Hubicka  <jh@suse.cz>
30663
30664         * gengtype.c (open_base_files): Add lto-streamer.h
30665         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
30666         (pass_ipa_cp): GGC collect.
30667         * toplev. (compile_file): Do not output symbols.
30668         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
30669         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
30670         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
30671         * lto-section-in.c: Include ggc.h
30672         (lto_new_in_decl_state): Alloc in GGC.
30673         (lto_delete_in_decl_state): Likewise.
30674         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
30675         Collect.
30676
30677 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30678
30679         PR target/42895
30680         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
30681         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
30682         (HONOR_REG_ALLOC_ORDER): Describe new macro.
30683         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
30684         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
30685         account only if HONOR_REG_ALLOC_ORDER is not defined.
30686         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
30687         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
30688
30689 2010-04-29  Jon Grant  <04@jguk.org>
30690
30691         * collect2.c (vflag): Change type from int to bool.
30692         (debug): Likewise.
30693         (helpflag): New global bool.
30694         (main): Set vflag and debug with boolean, not integer truth values.
30695         Accept new "--help" option and output usage text if found.
30696         * collect2.h (vflag): Update prototype.
30697         (debug): Likewise.
30698
30699 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30700
30701         PR bootstrap/43936
30702         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
30703
30704 2010-04-29  Richard Guenther  <rguenther@suse.de>
30705
30706         PR bootstrap/43935
30707         * plugin.h (invoke_plugin_callbacks): Annotate arguments
30708         with ATTRIBUTE_UNUSED.
30709
30710 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
30711
30712         PR target/43921
30713         * config/i386/i386.c (get_some_local_dynamic_name): Replace
30714         INSN_P with NONDEBUG_INSN_P.
30715         (distance_non_agu_define): Likewise.
30716         (distance_agu_use): Likewise.
30717
30718 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
30719
30720         From Dominique d'Humieres  <dominiq@lps.ens.fr>
30721         PR bootstrap/43858
30722         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
30723         test_set.
30724
30725 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
30726
30727         * plugin.h (invoke_plugin_callbacks): New inline function.
30728         * plugin.c (flag_plugin_added): New global flag.
30729         (add_new_plugin): Initialize above flag.
30730         (invoke_plugin_callbacks): Rename to ...
30731         (invoke_plugin_callbacks_full): ... this.
30732
30733 2010-04-28  Jan Hubicka  <jh@suse.cz>
30734
30735         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
30736         (lto_varpool_replace_node): New.
30737         (lto_symtab_resolve_symbols): Resolve varpool nodes.
30738         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
30739         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
30740         * cgraph.h (varpool_node_ptr): New type.
30741         (varpool_node_ptr): New vector.
30742         (varpool_node_set_def): New structure.
30743         (varpool_node_set): New type.
30744         (varpool_node_set): New vector.
30745         (varpool_node_set_element_def): New structure.
30746         (varpool_node_set_element, const_varpool_node_set_element): New types.
30747         (varpool_node_set_iterator): New type.
30748         (varpool_node): Add prev pointers, add used_from_other_partition,
30749         in_other_partition.
30750         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
30751         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
30752         varpool_get_node, varpool_remove_node): Declare.
30753         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
30754         varpool_node_set_size): New inlines.
30755         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
30756         * tree-pass.h (varpool_node_set_def): Forward declare.
30757         (ipa_opt_pass_d): Summary writting takes vnode sets too.
30758         (ipa_write_optimization_summaries): Update prototype.
30759         * ipa-cp.c (ipcp_write_summary): Update.
30760         * ipa-reference.c (ipa_reference_write_summary): Update.
30761         * lto-cgraph.c (lto_output_varpool_node): New static function.
30762         (output_varpool): New function.
30763         (input_varpool_node): New static function.
30764         (input_varpool_1): New function.
30765         (input_cgraph): Input varpool.
30766         * ipa-pure-const.c (pure_const_write_summary): Update.
30767         * lto-streamer-out.c (lto_output): Update, output varpool too.
30768         (write_global_stream): Kill WPA hack.
30769         (produce_asm_for_decls): Update.
30770         (output_alias_pair_p): Handle variables.
30771         (output_unreferenced_globals): Output only needed partition of varpool.
30772         * ipa-inline.c (inline_write_summary): Update.
30773         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
30774         cgraph.
30775         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
30776         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
30777         varpool_node_set_new, varpool_node_set_add,
30778         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
30779         debug_varpool_node_set): New functions.
30780         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
30781         (execute_one_pass): Process new decls too.
30782         (ipa_write_summaries_2): Pass around vsets.
30783         (ipa_write_summaries_1): Likewise.
30784         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
30785         to add.
30786         (ipa_write_optimization_summaries_1): Pass around vsets.
30787         (ipa_write_optimization_summaries): Likewise.
30788         * varpool.c (varpool_get_node): New.
30789         (varpool_node): Update doubly linked lists.
30790         (varpool_remove_node): New.
30791         (dump_varpool_node): More dumping.
30792         (varpool_enqueue_needed_node): Update doubly linked lists.
30793         (decide_is_variable_needed): Kill ltrans hack.
30794         (varpool_finalize_decl): Kill lto hack.
30795         (varpool_assemble_decl): Skip decls in other partitions.
30796         (varpool_assemble_pending_decls): Update doubly linkes lists.
30797         (varpool_empty_needed_queue): Likewise.
30798         (varpool_extra_name_alias): Likewise.
30799         * lto-streamer.c (lto_get_section_name): Add vars section.
30800         * lto-streamer.h (lto_section_type): Update.
30801         (output_varpool, input_varpool): Declare.
30802
30803 2010-04-28  Mike Stump  <mikestump@comcast.net>
30804
30805         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
30806
30807 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30808
30809         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
30810         record or union type with RECORD_OR_UNION_TYPE_P predicate.
30811         (lto_input_ts_type_tree_pointers): Likewise.
30812         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
30813         (lto_output_ts_type_tree_pointers): Likewise.
30814
30815 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30816
30817         Uniquization of constants at the Tree level
30818         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
30819         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
30820         bit to the end.
30821         (tree_output_constant_def): Declare.
30822         * gimplify.c (gimplify_init_constructor): When using block copy, first
30823         uniquize the constant constructor on the RHS.
30824         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
30825         DECL_IN_CONSTANT_POOL flag.
30826         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
30827         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
30828         constant pool.
30829         (assemble_variable): Deal with symbols belonging to the tree constant
30830         pool.
30831         (get_constant_section): Add ALIGN parameter and simplify.
30832         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
30833         (assemble_constant_contents): Use the expression of the VAR_DECL.
30834         (output_constant_def_contents): Use the alignment of the VAR_DECL.
30835         (tree_output_constant_def): New global function.
30836         (mark_constant): Use the expression of the VAR_DECL.
30837         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
30838         its expression.
30839         (output_object_block): Likewise and assemble the expression.
30840
30841 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
30842
30843         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
30844         hash_tree, eq_tree): New tree hash table.
30845         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
30846         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
30847         lto_orig_address_remove): Reimplement.
30848
30849 2010-04-28  Xinliang David Li  <davidxl@google.com>
30850
30851         PR c/42643
30852         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
30853         (compute_uninit_opnds_pos): New function.
30854         (is_non_loop_exit_postdominating): New function.
30855         (compute_control_dep_chain): New function.
30856         (find_pdom): New function.
30857         (convert_control_dep_chain_into_preds): New function.
30858         (find_predicates): New function.
30859         (find_control_equiv_block): New function.
30860         (collect_phi_def_edges): New function.
30861         (find_def_preds): New function.
30862         (find_dom): New function.
30863         (dump_predicates): New function.
30864         (get_cmp_code): New function.
30865         (is_value_included_in): New function.
30866         (find_matching_predicate_in_rest_chains): New function.
30867         (use_pred_not_overlap_with_undef_path_pred): New function.
30868         (is_use_properly_guarded): New function.
30869         (normalize_cond_1): New function.
30870         (is_and_or_or): New function.
30871         (normalize_cond): New function.
30872         (is_gcond_subset_of): New function.
30873         (is_subset_of_any): New function.
30874         (is_or_set_subset_of): New function.
30875         (is_and_set_subset_of): New function.
30876         (is_norm_cond_subset_of): New function.
30877         (is_pred_expr_subset_of): New function.
30878         (is_pred_chain_subset_of): New function.
30879         (is_included_in): New function.
30880         (is_superset_of): New function.
30881         (find_uninit_use): New function.
30882         (warn_uninitialized_phi): New function.
30883         (compute_possibly_undefined_names): New function.
30884         (ssa_undefined_value_p): New function.
30885         (execute_late_warn_uninitialized): New function.
30886         * tree-ssa.c (ssa_undefined_value_p): Removed.
30887         (warn_uninit): Changed to extern.
30888         (warn_uninitialized_phi): Removed.
30889         (warn_uninitialized_vars): Changed to extern.
30890         (execute_late_warn_uninitialized): Removed
30891         * tree-flow.h: Add new prototypes.
30892         * timevar.def: Add new time variable.
30893         * Makefile.in: Add new build file.
30894
30895 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
30896
30897         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
30898         type if available.
30899
30900 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30901
30902         PR target/22224
30903         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
30904
30905 2010-04-28  Martin Jambor  <mjambor@suse.cz>
30906
30907         * cgraph.h (struct cgraph_node): New field indirect_calls.
30908         (struct cgraph_indirect_call_info): New type.
30909         (struct cgraph_edge): Removed field indirect_call. New fields
30910         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
30911         (cgraph_create_indirect_edge): Declare.
30912         (cgraph_make_edge_direct): Likewise.
30913         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
30914         * ipa-prop.h (struct ipa_param_call_note): Removed.
30915         (struct ipa_node_params): Removed field param_calls.
30916         (ipa_create_all_structures_for_iinln): Declare.
30917         * cgraph.c: Described indirect edges and uids in initial comment.
30918         (cgraph_add_edge_to_call_site_hash): New function.
30919         (cgraph_edge): Search also among the indirect edges, use
30920         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
30921         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
30922         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
30923         site hash.
30924         (initialize_inline_failed): Assign a reason to indirect edges.
30925         (cgraph_create_edge_1): New function.
30926         (cgraph_create_edge): Moved some functionality to
30927         cgraph_create_edge_1.
30928         (cgraph_create_indirect_edge): New function.
30929         (cgraph_edge_remove_callee): Add an assert checking for
30930         non-indirectness.
30931         (cgraph_edge_remove_caller): Special-case indirect edges.
30932         (cgraph_remove_edge): Likewise.
30933         (cgraph_set_edge_callee): New function.
30934         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
30935         (cgraph_make_edge_direct): New function.
30936         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
30937         the declaration of the call statement matches.
30938         (cgraph_node_remove_callees): Special-case indirect edges.
30939         (cgraph_clone_edge): Likewise.
30940         (cgraph_clone_node): Clone also the indirect edges.
30941         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
30942         indirect_call, dump count of indirect_calls edges.
30943         * ipa-prop.c (iinlining_processed_edges): New variable.
30944         (ipa_note_param_call): Create indirect edges instead of
30945         creating notes.  New parameter node.
30946         (ipa_analyze_call_uses): New parameter node, pass it on to
30947         ipa_note_param_call.
30948         (ipa_analyze_stmt_uses): Likewise.
30949         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
30950         (print_edge_addition_message): Work on edges rather than on notes.
30951         (update_call_notes_after_inlining): Likewise, renamed to
30952         update_indirect_edges_after_inlining.
30953         (ipa_create_all_structures_for_iinln): New function.
30954         (ipa_free_node_params_substructures): Do not free notes.
30955         (ipa_edge_duplication_hook): Propagate bits within
30956         iinlining_processed_edges bitmap.
30957         (ipa_node_duplication_hook): Do not duplicate notes.
30958         (free_all_ipa_structures_after_ipa_cp): Renamed to
30959         ipa_free_all_structures_after_ipa_cp.
30960         (free_all_ipa_structures_after_iinln): Renamed to
30961         ipa_free_all_structures_after_iinln.
30962         (ipa_write_param_call_note): Removed.
30963         (ipa_read_param_call_note): Removed.
30964         (ipa_write_indirect_edge_info): New function.
30965         (ipa_read_indirect_edge_info): Likewise.
30966         (ipa_write_node_info): Do not stream notes, do stream information
30967         in indirect edges.
30968         (ipa_read_node_info): Likewise.
30969         (lto_ipa_fixup_call_notes): Removed.
30970         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
30971         * ipa-inline.c (pass_ipa_inline): Likewise.
30972         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
30973         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
30974         * tree-inline.c (copy_bb): Removed an unnecessary double check for
30975         is_gimple_call.
30976         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
30977         edges.
30978         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
30979         (output_cgraph): Stream also indirect edges.
30980         (lto_output_edge): Added capability to stream indirect edges.
30981         (input_edge): Likewise.
30982         (input_cgraph_1): Likewise.
30983         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
30984         of indirect edges.
30985
30986 2010-04-28  Richard Guenther  <rguenther@suse.de>
30987
30988         PR tree-optimization/43879
30989         PR tree-optimization/43909
30990         * tree-ssa-structalias.c (struct variable_info): Add
30991         only_restrict_pointers flag.
30992         (new_var_info): Initialize it.  Increment stats.total_vars here.
30993         (create_function_info_for): Do not increment stats.total_vars here.
30994         (get_function_part_constraint): Fix build with C++.
30995         (insert_into_field_list): Remove.
30996         (push_fields_onto_fieldstack): Properly merge fields.
30997         (create_variable_info_for): Split and simplify.
30998         (create_variable_info_for_1): New piece.
30999         (intra_create_variable_infos): Properly make restrict constraints
31000         from parameters.
31001
31002 2010-04-28  Richard Guenther  <rguenther@suse.de>
31003
31004         PR c++/43880
31005         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
31006
31007 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31008             Jan Hubicka  <hubicka@ucw.cz>
31009
31010         * doc/invoke.texi (-Wsuggest-attribute=const,
31011         -Wsuggest-attribute=pure): Document.
31012         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
31013         (function_always_visible_to_compiler_p,
31014         suggest_attribute, warn_function_pure, warn_function_const):
31015         New functions.
31016         (check_call): Improve debug info.
31017         (analyze_function): Do not check availability.
31018         (add_new_function): Check availability.
31019         (propagate): Output warnings.
31020         (skip_function_for_local_pure_const): New function.
31021         (local_pure_const): Use it; output warnings.
31022         * common.opt (Wsuggest-attribute=const,
31023         Wsuggest-attribute=pure): New.
31024
31025 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31026
31027         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
31028         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
31029         or DW_CFA_def_cfa_offset{,_sf}.
31030
31031 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31032
31033         * tree.h: Fix truncated long macros.
31034
31035 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
31036
31037         * collect2.c (TARGET_64BIT): Redefine to target's default.
31038         * tlink.c: Likewise.
31039         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
31040         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
31041         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
31042         for underscoring __USER_LABEL_PREFIX__.
31043         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
31044         (SUB_LINK_ENTRY32): New.
31045         (SUB_LINK_ENTRY64): New.
31046         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
31047         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
31048         (SUB_LINK_ENTRY64): New.
31049         (SUB_LINK_ENTRY): New.
31050         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
31051         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
31052         x64 target is choosen.
31053         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
31054         * configure: Regenerated.
31055         * configure.ac (leading-mingw64-underscores): Option added.
31056
31057 2010-04-27  Jan Hubicka  <jh@suse.cz>
31058
31059         * doc/invoke.texi (-fipa-profile): Document.
31060         * opts.c (decode_options): Enable ipa-profile at -O1.
31061         * timevar.def (TV_IPA_PROFILE): Define.
31062         * common.opt (fipa-profile): Add.
31063         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
31064         flag for clones.
31065         (cgraph_propagate_frequency): Handle only local ones.
31066         * tree-pass.h (pass_ipa_profile): Declare.
31067         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
31068         (pass_ipa_profile): Use TV_IPA_PROFILE.
31069         * ipa.c (ipa_profile): New function.
31070         (gate_ipa_profile): Likewise.
31071         (pass_ipa_profile): New global variable.
31072         * passes.c (pass_ipa_profile): New.
31073
31074 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
31075
31076         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
31077
31078 2010-04-27  Martin Jambor  <mjambor@suse.cz>
31079
31080         PR middle-end/43812
31081         * ipa.c (dissolve_same_comdat_group_list): New function.
31082         (function_and_variable_visibility): Call
31083         dissolve_same_comdat_group_list when comdat group contains external or
31084         newly local nodes.
31085         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
31086         lists are circular and that they contain only DECL_ONE_ONLY nodes.
31087
31088 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
31089
31090         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
31091         (const_hash_1) <VECTOR_CST>: New case.
31092         (compare_constant) <VECTOR_CST>: Likewise.
31093         <ADDR_EXPR>: Deal with LABEL_REFs.
31094         (copy_constant) <VECTOR_CST>: New case.
31095
31096 2010-04-27  Jan Hubicka  <jh@suse.cz>
31097
31098         * cgraph.c (cgraph_propagate_frequency): New function.
31099         * cgraph.h (cgraph_propagate_frequency): Declare.
31100         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
31101         cgraph_propagate_frequency.
31102
31103 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
31104
31105         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
31106
31107 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
31108
31109         PR target/40657
31110         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
31111         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
31112         here to determine which regs to push and how much stack to reserve.
31113
31114 2010-04-27  Jie Zhang  <jie@codesourcery.com>
31115
31116         * doc/gimple.texi (gimple_statement_with_ops): Remove
31117         addresses_taken field.
31118         (gimple_statement_with_memory_ops): Likewise.
31119
31120 2010-04-27  Jan Hubicka  <jh@suse.cz>
31121
31122         * tree-inline.c (eni_inlining_weights): Remove.
31123         (estimate_num_insns): Special case more builtins.
31124
31125 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
31126
31127         PR c/32207
31128         * c-typeck.c (build_binary_op): Move forward check for comparison
31129         pointer with null pointer constant and adjust the diagnostic message.
31130
31131 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
31132
31133         PR lto/42776
31134         * configure.ac (gcc_cv_as_section_has_align): Set if installed
31135         binutils supports extended .section directive needed by LTO, or
31136         warn if older binutils found.
31137         (LTO_BINARY_READER): New AC_SUBST'd variable.
31138         (LTO_USE_LIBELF): Likewise.
31139         * config.gcc (lto_binary_reader): New target-specific configure
31140         variable.
31141         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
31142         (LTO_USE_LIBELF): Likewise.
31143         * configure: Regenerate.
31144
31145         * collect2.c (is_elf): Rename from this ...
31146         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
31147          object files in addition to ELF-formatted ones.
31148         (scan_prog_file): Caller updated.  Also allow for LTO info marker
31149         symbol to be prefixed or not by an extra underscore.
31150
31151         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
31152         * config/i386/winnt.c: Also #include lto-streamer.h
31153         (i386_pe_asm_named_section): Specify 1-byte section alignment for
31154         LTO named sections.
31155         (i386_pe_asm_output_aligned_decl_common): Add comment.
31156         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
31157
31158 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
31159
31160         PR target/43889
31161         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
31162         Add missing earlyclobber for second alternative.
31163
31164 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
31165
31166         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
31167         bits for artificial defs at the top of the block.
31168         * fwprop.c (single_def_use_enter_block): Don't call it.
31169
31170 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
31171
31172         PR 43715
31173         * configure.ac: Use "$gcc_cv_nm -g" on darwin
31174         instead of "$gcc_cv_objdump -T".
31175         Use "-undefined dynamic_lookup" on darwin.
31176         * configure: Regenerate.
31177
31178 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
31179
31180         PR c/43893
31181         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
31182
31183 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31184
31185         * c-parser.c (struct c_token): Move location field up.
31186         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
31187         (struct c_declspecs): Convert typespec_word, storage_class, and
31188         default_int_p into bitfields.
31189         (struct c_declarator): Move loc field up.
31190
31191 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
31192
31193         * cfgloop.h (struct loop): Move can_be_parallel field up.
31194         * ipa-prop.h (struct ip_node_params): Move bitfields up.
31195         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
31196         down.
31197         (struct iv_cand): Convert pos field into a bitfield.
31198         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
31199         field up.
31200         (struct _stmt_vec_info): Shuffle fields for better packing.
31201
31202 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31203
31204         * varasm.c (IN_NAMED_SECTION): Remove guard.
31205         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
31206         (IN_NAMED_SECTION_P): ...this.
31207         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
31208         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
31209
31210 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
31211
31212         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
31213         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
31214         of shadowing it.  Fix comments.
31215
31216 2010-04-26  Jan Hubicka  <jh@suse.cz>
31217
31218         * cgraph.c (cgraph_create_node): Set node frequency to normal.
31219         (cgraph_clone_node): Copy function frequency.
31220         * cgraph.h (node_frequency): New enum
31221         (struct cgraph_node): Add.
31222         * final.c (rest_of_clean_state): Update.
31223         * lto-cgraph.c (lto_output_node): Output node frequency.
31224         (input_overwrite_node): Input node frequency.
31225         * tre-ssa-loop-ivopts (computation_cost): Update.
31226         * lto-streamer-out.c (output_function): Do not output function
31227         frequency.
31228         * predict.c (maybe_hot_frequency_p): Update and handle functions
31229         executed once.
31230         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
31231         attribute lookup.
31232         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
31233         (compute_function_frequency): Set noreturn functions to be executed
31234         once.
31235         (choose_function_section): Update.
31236         * lto-streamer-in.c (input_function): Do not input function frequency.
31237         * function.c (allocate_struct_function): Do not initialize function
31238         frequency.
31239         * function.h (function_frequency): Remove.
31240         (struct function): Remove function frequency.
31241         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
31242         (try_update): Update.
31243         * tree-inline.c (initialize_cfun): Do not update function frequency.
31244         * passes.c (pass_init_dump_file): Update.
31245         * i386.c (ix86_compute_frame_layout): Update.
31246         (ix86_pad_returns): Update.
31247
31248 2010-04-26  Jie Zhang  <jie@codesourcery.com>
31249
31250         PR tree-optimization/43833
31251         * tree-vrp.c (range_int_cst_p): New.
31252         (range_int_cst_singleton_p): New.
31253         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
31254         when both operands are constants.  Use range_int_cst_p in
31255         BIT_IOR_EXPR case.
31256
31257 2010-04-26  Jan Hubicka  <jh@suse.cz>
31258
31259         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
31260
31261 2010-04-26  Richard Guenther  <rguenther@suse.de>
31262
31263         PR lto/43080
31264         * gimple.c (gimple_decl_printable_name): Deal gracefully
31265         with a NULL DECL_NAME.
31266
31267 2010-04-26  Richard Guenther  <rguenther@suse.de>
31268
31269         PR lto/42425
31270         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
31271         if emitting debug information and it is either a function
31272         or a namespace decl.
31273
31274 2010-04-26  Ira Rosen  <irar@il.ibm.com>
31275
31276         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
31277         determine if the statement is vectorizable, and a macro to access it.
31278         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31279         Skip statements that can't be vectorized. If the analysis fails,
31280         mark the statement as unvectorizable if vectorizing basic block.
31281         (vect_compute_data_refs_alignment): Likewise.
31282         (vect_verify_datarefs_alignment): Skip statements marked as
31283         unvectorizable. Add print.
31284         (vect_analyze_group_access): Skip statements that can't be
31285         vectorized. If the analysis fails, mark the statement as
31286         unvectorizable if vectorizing basic block.
31287         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
31288         * tree-vect-stmts.c (vectorizable_store): Fix the number of
31289         generated stmts for SLP.
31290         (new_stmt_vec_info): Initialize the new field.
31291         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
31292         statements marked as unvectorizable.
31293
31294 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
31295
31296         * c-common.c (flag_isoc1x): New.
31297         (flag_isoc99): Update comment.
31298         * c-common.h (flag_isoc1x): New.
31299         (flag_isoc99): Update comment.
31300         * c-cppbuiltin.c (builtin_define_float_constants): Also define
31301         __<type>_DECIMAL_DIG__.
31302         * c-opts.c (set_std_c1x): New.
31303         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
31304         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
31305         * c.opt (-std=c1x, -std=gnu1x): New options.
31306         * doc/cpp.texi: Mention -std=c1x.
31307         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
31308         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
31309         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
31310         * doc/standards.texi: Mention C1X.
31311         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
31312         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
31313         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
31314         Define for C1X.
31315
31316 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
31317
31318         * config/i386/gmon-sol2.c (_mcleanup): Change format string
31319         placeholder from 0x%x to %#x.
31320         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
31321         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
31322         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
31323         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
31324         * config/i386/i386.c (ix86_target_string): Ditto.
31325         (output_pic_addr_const): Ditto.
31326         (print_operand): Ditto.
31327
31328 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
31329
31330         * combine.c (find_split_point): Add third argument.  Use it
31331         to find nested multiply-accumulate instructions.  Adjust calls.
31332         (try_combine): Adjust call to find_split_point.
31333
31334 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
31335
31336         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
31337
31338 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
31339
31340         PR tree-optimization/41442
31341         * fold-const.c (merge_truthop_with_opposite_arm): New function.
31342         (fold_binary_loc): Call it.
31343
31344 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31345
31346         * toplev.c (general_init): Set default for fdiagnostics-show-option.
31347         * opts.c (common_handle_option): Allow disabling it.
31348         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
31349
31350 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
31351
31352         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
31353         between modes if both types are integral.
31354
31355 2010-04-23  Richard Guenther  <rguenther@suse.de>
31356
31357         PR tree-optimization/43572
31358         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
31359
31360 2010-04-23  Richard Guenther  <rguenther@suse.de>
31361
31362         PR lto/43455
31363         * tree-inline.c (tree_can_inline_p): Also check compatibility
31364         of return types.
31365
31366 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31367
31368         PR tree-optimization/43846
31369         * tree-sra.c (struct access): New flag grp_assignment_read.
31370         (build_accesses_from_assign): Set grp_assignment_read.
31371         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
31372         (enum mark_read_status): New type.
31373         (analyze_access_subtree): Propagate grp_assignment_read, create
31374         accesses also if both direct_read and root->grp_assignment_read.
31375
31376 2010-04-23  Martin Jambor  <mjambor@suse.cz>
31377
31378         PR middle-end/43835
31379         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
31380         function does not have type attributes.
31381
31382 2010-04-23  Richard Guenther  <rguenther@suse.de>
31383
31384         PR lto/42653
31385         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
31386         of FUNCTION_DECLs.
31387
31388 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31389
31390         * sese.h (create_if_region_on_edge): Remove.
31391
31392         * sese.c (create_if_region_on_edge): Make static.
31393
31394         * tree-inline.c: Do not include ggc.h.
31395
31396         * expr.c: Do not include ggc.h.
31397
31398         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
31399         dependencies.
31400
31401 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
31402
31403         PR target/43744
31404         * config/sh/sh.c (find_barrier): Don't emit a constant pool
31405         in the middle of insns for casesi_worker_2.
31406
31407 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
31408
31409         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
31410
31411 2010-04-22  Ira Rosen  <irar@il.ibm.com>
31412
31413         PR tree-optimization/43842
31414         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
31415         loop unrolling in update of exit phis. Fix comment.
31416         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
31417         least two reduction statements in the loop before starting SLP
31418         analysis.
31419
31420 2010-04-22  Nick Clifton  <nickc@redhat.com>
31421
31422         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
31423
31424 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
31425
31426         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
31427         to simplify a + ~a.
31428
31429 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31430
31431         * tree-parloops.c (loop_parallel_p): New argument
31432         parloop_obstack.  Pass it down.
31433         (parallelize_loops): New variable parloop_obstack.  Initialize it,
31434         pass it down, free it.
31435
31436         * tree-loop-linear.c (linear_transform_loops): Pass down
31437         lambda_obstack.
31438
31439         * tree-data-ref.h (lambda_compute_access_matrices): New argument
31440         of type struct obstack *.
31441
31442         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
31443         scratch_obstack.  Initialize it, pass down, free it.
31444
31445         * lambda.h (lambda_loop_new): Remove.
31446         (lambda_matrix_new, lambda_matrix_inverse)
31447         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
31448         argument of type struct obstack *.
31449
31450         * lambda-trans.c (lambda_trans_matrix_new): New argument
31451         lambda_obstack.  Pass it down, use obstack allocation for ret.
31452         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
31453         it down.
31454
31455         * lambda-mat.c (lambda_matrix_get_column)
31456         (lambda_matrix_project_to_null): Remove.
31457         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
31458         allocation for mat.
31459         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
31460         lambda_obstack.
31461
31462         * lambda-code.c (lambda_loop_new): New function.
31463         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
31464         (lambda_compute_auxillary_space, lambda_compute_target_space)
31465         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
31466         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
31467         (build_access_matrix): New argument lambda_obstack.  Use obstack
31468         allocation for am.
31469         (lambda_compute_step_signs, lambda_compute_access_matrices): New
31470         argument lambda_obstack.  Pass it down.
31471
31472 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31473
31474         * optabs.h (expand_widening_mult): Declare.
31475
31476 2010-04-22  Richard Guenther  <rguenther@suse.de>
31477
31478         PR tree-optimization/43845
31479         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
31480         lookup the CALL_EXPR function and arguments.
31481
31482 2010-04-22  Nick Clifton  <nickc@redhat.com>
31483
31484         * config/stormy16/stormy16.c
31485         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
31486         * config/stormy16/stormy16.h: Tidy up formatting.
31487         (DONT_USE_BUILTIN_SETJMP): Remove definition.
31488         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
31489         (ineqbranchsi): Delete pattern.
31490         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
31491         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
31492         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
31493         stormy16-lib2-ucmpsi2.c.
31494
31495 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31496
31497         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
31498         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
31499         extra set merge_set_noclobber, and use it to relax the final test
31500         slightly.
31501         * df.h (df_simulate_find_noclobber_defs): Declare.
31502         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
31503         conditional defs.
31504         (df_simulate_find_noclobber_defs): New function.
31505
31506 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
31507
31508         * config/i386/i386.md: Use {} around multi-line preparation statements.
31509
31510 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
31511
31512         * c-tree.h (push_init_level, pop_init_level, set_init_index)
31513         (process_init_element): New argument of type struct obstack *.
31514
31515         * c-typeck.c (push_init_level, pop_init_level, set_designator)
31516         (set_init_index, set_init_label, set_nonincremental_init)
31517         (set_nonincremental_init_from_string, find_init_member)
31518         (output_init_element, output_pending_init_elements)
31519         (process_init_element): New argument braced_init_obstack.  Pass it
31520         down.
31521         (push_range_stack, add_pending_init): New argument
31522         braced_init_obstack.  Use obstack allocation.
31523
31524         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
31525         braced_init_obstack.  Pass it down.
31526         (c_parser_braced_init): New variables ret, braced_init_obstack.
31527         Initialize obstack, pass it down and finally free it.
31528
31529 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
31530
31531         PR middle-end/29274
31532         * tree-pass.h (pass_optimize_widening_mul): Declare.
31533         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
31534         gate_optimize_widening_mul): New static functions.
31535         (pass_optimize_widening_mul): New.
31536         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
31537         <case MULT_EXPR>: Remove support for widening multiplies.
31538         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
31539         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
31540         simplify_gen_unary rather than directly building extensions.
31541         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
31542         WIDEN_MULT_EXPR.
31543         * expmed.c (expand_widening_mult): New function.
31544         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
31545
31546 2010-04-21  Jan Hubicka  <jh@suse.cz>
31547
31548         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
31549         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
31550         * lto-wpa-fixup.c: Remove.
31551         * Makefile.in (lto-wpa-fixup.o): Remove.
31552         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
31553         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
31554         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
31555
31556 2010-04-21  Jan Hubicka  <jh@suse.cz>
31557
31558         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
31559         add write_optimization_summary, read_optimization_summary.
31560         (ipa_write_summaries_of_cgraph_node_set): Remove.
31561         (ipa_write_optimization_summaries): Declare.
31562         (ipa_read_optimization_summaries): Declare.
31563         * ipa-cp.c (pass_ipa_cp): Update.
31564         * ipa-reference.c (pass_ipa_reference): Update.
31565         * ipa-pure-const.c (pass_ipa_pure_const): Update.
31566         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
31567         Update.
31568         * ipa-inline.c (pass_ipa_inline): Update.
31569         * ipa.c (pass_ipa_whole_program): Update.
31570         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
31571         * passes.c (ipa_write_summaries_1): Do not test wpa.
31572         (ipa_write_optimization_summaries_1): New.
31573         (ipa_write_optimization_summaries): New.
31574         (ipa_read_summaries): Do not test ltrans.
31575         (ipa_read_optimization_summaries_1): New.
31576         (ipa_read_optimization_summaries): New.
31577
31578 2010-04-21  Jan Hubicka  <jh@suse.cz>
31579
31580         * lto-cgraph.c (lto_output_node): Do not output comdat groups
31581         for boundary nodes.
31582         (output_cgraph): Do not arrange comdat groups for boundary nodes.
31583
31584 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31585
31586         PR debug/40040
31587         * dwarf2out.c (add_name_and_src_coords_attributes): Add
31588         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
31589
31590 2010-04-21  Jan Hubicka  <jh@suse.cz>
31591
31592         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
31593
31594 2010-04-21  Jan Hubicka  <jh@suse.cz>
31595
31596         * varpool.c (decide_is_variable_needed): Variable is always needed
31597         during ltrans.
31598
31599 2010-04-21  Jan Hubicka  <jh@suse.cz>
31600
31601         * opts.c (decode_options): Enable pure-const pass for whopr.
31602
31603 2010-04-21  Jan Hubicka  <jh@suse.cz>
31604
31605         * cgraph.c (dump_cgraph_node): Dump also assembler name.
31606         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
31607         at WPA dumping.
31608         (cgraph_decide_inlining): Do not expect callee to be removed in all
31609         cases.
31610
31611 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
31612
31613         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
31614
31615 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31616
31617         * config/i386/i386.md (x86_shrd): Add athlon_decode and
31618         amdfam10_decode attributes.
31619
31620 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31621
31622         PR middle-end/43570
31623         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
31624         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
31625         (lower_copyprivate_clauses): Use private var in outer
31626         context instead of original var.  Make sure the types
31627         are correct for VLAs.
31628
31629 2010-04-21  Richard Guenther  <rguenther@suse.de>
31630
31631         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
31632         to non-pointer objects.
31633
31634 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
31635
31636         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
31637         last chain entry if it starts with the still current label.
31638         (add_location_or_const_value_attribute): Check that
31639         loc_list->first->next is NULL instead of comparing ->first with ->last.
31640         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
31641         to add_var_loc_to_decl.
31642
31643         * dwarf2out.c (output_call_frame_info): For dw_cie_version
31644         >= 4 add also address size and segment size fields into CIE header.
31645
31646         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
31647         long as address size is the same as sizeof (void *) and
31648         segment size is 0.
31649         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
31650         address size or segment size is unexpected, return DW_EH_PE_omit.
31651         (classify_object_over_fdes): If get_cie_encoding returned
31652         DW_EH_PE_omit, return -1.
31653         (init_object): If classify_object_over_fdes returned -1,
31654         pretend there were no FDEs at all.
31655
31656 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
31657
31658         * config/i386/i386.md (bswap<mode>2): Macroize expander from
31659         bswap{si,di}2 using SWI48 mode iterator.
31660         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
31661         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
31662         set modrm attribute of bswap insn to 0 and remove length attribute.
31663         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
31664         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
31665         set mode attribute to <MODE> and remove length attribute.
31666
31667 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
31668
31669         PR rtl-optimization/43520
31670         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
31671         zero available registers.
31672
31673 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31674
31675         * builtins.c (fold_builtin_cproj): Fold more cases.
31676
31677 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31678
31679         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
31680         (fold_builtin_1): Fold builtin cproj.
31681         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
31682         Use ATTR_CONST_NOTHROW_LIST.
31683
31684 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
31685
31686         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
31687         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
31688         ffsi2_no_cmove for !TARGET_CMOVE.
31689         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
31690         (ffssi2): Remove expander.
31691         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
31692         mode iterator.
31693         (ctz<mode>2): Ditto from ctz{si,di}2.
31694         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
31695         mode iterator.
31696         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
31697         mode iterator.
31698
31699 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31700
31701         * dwarf2out.c (AT_linkage_name): Define.
31702         (clone_as_declaration): Handle DW_AT_linkage_name.
31703         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
31704         of DW_AT_MIPS_linkage_name.
31705         (move_linkage_attr): Likewise.
31706         (dwarf2out_finish): Likewise.
31707
31708 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
31709
31710         PR middle-end/41952
31711         * fold-const.c (fold_comparison): New folding rule.
31712
31713 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
31714
31715         * double-int.h (double_int_setbit): Declare.
31716         * double-int.c (double_int_setbit): New function.
31717         * rtl.h (immed_double_int_const): Declare.
31718         * emit-rtl.c (immed_double_int_const): New function.
31719         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
31720         and immed_double_int_const functions.
31721         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
31722         expand_copysign_bit): (Ditto.).
31723         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
31724         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
31725         * dojump.c (prefer_and_bit_test): (Ditto.).
31726         * expr.c (convert_modes, reduce_to_bit_field_precision,
31727         const_vector_from_tree): (Ditto.).
31728         * expmed.c (mask_rtx, lshift_value): (Ditto.).
31729
31730 2010-04-20  Jan Hubicka  <jh@suse.cz>
31731
31732         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
31733         (dump_cgraph_node): Dump new flags.
31734         * cgraph.h (struct cgraph_node): Add flags
31735         reachable_from_other_partition and in_other_partition.
31736         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
31737         other partition can not be removed.
31738         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
31739         the other partition must be output; silence sanity checking on
31740         leaking functions bodies from other paritition.
31741         * lto-cgraph.c (reachable_from_other_partition_p): New function.
31742         (lto_output_node): Output new flags; do not sanity check that inline
31743         clones are output; drop lto_forced_extern_inline_p code; do not mock
31744         visibility flags at partition boundaries.
31745         (add_node_to): New function.
31746         (output_cgraph): Use it to sort functions so masters appear before
31747         clones.
31748         (input_overwrite_node): Input new flags.
31749         * passes.c (ipa_write_summaries): Do not call
31750         lto_new_extern_inline_states.
31751         * lto-section-out.c (forced_extern_inline,
31752         lto_new_extern_inline_states lto_delete_extern_inline_states,
31753         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
31754         * lto-streamer.h (lto_new_extern_inline_states,
31755         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
31756         lto_forced_extern_inline_p): Kill.
31757
31758 2010-04-20  Richard Guenther  <rguenther@suse.de>
31759
31760         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
31761         from vars that can have pointers.
31762         (process_constraint): Dump useless constraints.
31763
31764 2010-04-20  Richard Guenther  <rguenther@suse.de>
31765
31766         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
31767         (dump_sa_points_to_info): Remove asserts.
31768         (init_base_vars): nothing_id isn't an escape point nor does it
31769         have pointers.
31770
31771 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
31772
31773         * tree.h (TYPE_REF_IS_RVALUE): Define.
31774         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
31775         should_move_die_to_comdat, prune_unused_types_walk): Handle
31776         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
31777         (modified_type_die, gen_reference_type_die): Emit
31778         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
31779         if TYPE_REF_IS_RVALUE and -gdwarf-4.
31780
31781 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31782
31783         PR target/43635
31784         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
31785         calls for -fpic -m31 if they have been sibcall optimized.
31786
31787 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
31788
31789         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
31790         ar.lc fixed and call-used.
31791
31792         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
31793
31794 2010-04-19  Jan Hubicka  <jh@suse.cz>
31795
31796         * opts.c (decode_options): Disable whpr incompatible passes.
31797         * lto/lto.c (lto_1_to_1_map): Skip clones.
31798         (read_cgraph_and_symbols): Do not mark everything as needed.
31799         (do_whole_program_analysis): Do map only after optimizing;
31800         set proper cgraph_state; use passmanager.
31801
31802 2010-04-19  DJ Delorie  <dj@redhat.com>
31803
31804         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
31805         POINTER_PLUS_EXPR and fix them.
31806
31807 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
31808
31809         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
31810         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
31811         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
31812         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
31813         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
31814         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
31815         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
31816         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
31817         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
31818         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
31819         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
31820
31821 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
31822
31823         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
31824         (check_cond_move_block): Likewise.
31825         (cond_move_process_if_block): Likewise.
31826         (noce_find_if_block): Improve formatting.
31827         (find_if_header): Pass 0 to memset and tweak conditions.
31828         (cond_exec_find_if_block): Fix long lines and tweak conditions.
31829
31830 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31831
31832         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
31833         for -gdwarf-4.
31834
31835         PR middle-end/43337
31836         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
31837         with non-local decl doesn't need chain.
31838
31839 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31840
31841         * ira-color.c (allocno_reload_assign): Avoid accumulating
31842         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
31843
31844 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31845
31846         * gimple.h (create_tmp_reg): Declare.
31847         * gimplify.c (create_tmp_reg): New function.
31848         (gimplify_return_expr): Use create_tmp_reg.
31849         (gimplify_omp_atomic): Likewise.
31850         (gimple_regimplify_operands): Likewise.
31851         * tree-dfa.c (make_rename_temp): Likewise.
31852         * tree-predcom.c (predcom_tmp_var): Likewise.
31853         (reassociate_to_the_same_stmt): Likewise.
31854         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
31855         (get_replaced_param_substitute): Likewise.
31856         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
31857         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
31858         * tree-ssa-pre.c (get_representative_for): Likewise.
31859         (create_expression_by_pieces): Likewise.
31860         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
31861         (create_tailcall_accumulator): Likewise.
31862
31863 2010-04-19  Martin Jambor  <mjambor@suse.cz>
31864
31865         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
31866         new_stmt.
31867         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
31868
31869 2010-04-19  Richard Guenther  <rguenther@suse.de>
31870
31871         PR tree-optimization/43796
31872         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
31873         from SCEV in the lattice.
31874         (vrp_visit_phi_node): Dump change.
31875
31876 2010-04-19  Richard Guenther  <rguenther@suse.de>
31877
31878         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
31879         * configure: Re-generated.
31880
31881 2010-04-19  Richard Guenther  <rguenther@suse.de>
31882
31883         PR tree-optimization/43783
31884         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
31885         constant ARRAY_REF operands two and three if possible.
31886
31887 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
31888
31889         PR target/43766
31890         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
31891
31892 2010-04-19  Jie Zhang  <jie@codesourcery.com>
31893
31894         PR target/43662
31895         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
31896
31897 2010-04-19  Ira Rosen  <irar@il.ibm.com>
31898
31899         PR tree-optimization/37027
31900         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
31901         and macro to access it.
31902         (vectorizable_reduction): Add argument.
31903         (vect_get_slp_defs): Likewise.
31904         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
31905         statements for possible use in SLP.
31906         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
31907         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
31908         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
31909         add new argument.
31910         (vectorizable_reduction): Likewise.
31911         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
31912         vect_get_slp_defs.
31913         (vectorizable_type_demotion, vectorizable_type_promotion,
31914         vectorizable_store): Likewise.
31915         (vect_analyze_stmt): Update call to vectorizable_reduction.
31916         (vect_transform_stmt): Likewise.
31917         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
31918         (vect_build_slp_tree): Fix indentation. Check that there are no loads
31919         from different interleaving chains in same node.
31920         (vect_slp_rearrange_stmts): New function.
31921         (vect_supported_load_permutation_p): Allow load permutations for
31922         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
31923         inside SLP nodes if necessary.
31924         (vect_analyze_slp_instance): Handle reductions.
31925         (vect_analyze_slp): Try to build SLP instances originating from groups
31926         of reductions.
31927         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
31928         (vect_get_constant_vectors): Create initial vectors for reductions
31929         according to reduction code. Add new argument.
31930         (vect_get_slp_defs): Add new argument, pass it to
31931         vect_get_constant_vectors.
31932         (vect_schedule_slp_instance): Remove SLP tree root statements.
31933
31934 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
31935
31936         * tree.h (ENUM_IS_SCOPED): Define.
31937         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
31938         for ENUM_IS_SCOPED enums.
31939
31940 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
31941
31942         * fold-const.c (fold_comparison): Use ssizetype.
31943         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
31944         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
31945         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
31946         * tree-object-size.c (compute_object_sizes): Use size_type_node.
31947
31948         * tree.h (initialize_sizetypes): Remove parameter.
31949         (build_common_tree_nodes): Remove second parameter.
31950         * stor-layout.c (initialize_sizetypes): Remove parameter.
31951         Always create an unsigned type.
31952         (set_sizetype): Assert that the passed type is unsigned and simplify.
31953         * tree.c (build_common_tree_nodes): Remove second parameter.
31954         Adjust call to initialize_sizetypes.
31955         * c-decl.c (c_init_decl_processing): Remove second argument in call to
31956         build_common_tree_nodes.
31957
31958 2010-04-18  Matthias Klose  <doko@ubuntu.com>
31959
31960         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
31961
31962 2010-04-18  Ira Rosen  <irar@il.ibm.com>
31963
31964         PR tree-optimization/43771
31965         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
31966         load permutation doesn't have gaps.
31967
31968 2010-04-18  Jan Hubicka  <jh@suse.cz>
31969
31970         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
31971         (sse_prologue_save_insn expander): Use new pattern.
31972         (sse_prologue_save_insn1): New pattern and splitter.
31973         (sse_prologue_save_insn): Update to deal also with 64bit aligned
31974         blocks.
31975         * i386.c (setup_incoming_varargs_64): Do not compute jump
31976         destination here.
31977         (ix86_gimplify_va_arg): Update alignment needed.
31978         (ix86_local_alignment): Do not align all local arrays to 128bit.
31979
31980 2010-04-17  Jan Hubicka  <jh@suse.cz>
31981
31982         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
31983
31984 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31985
31986         * arm.md (negdi2): Remove redundant code to force values into a
31987         register.
31988
31989 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31990
31991         * arm/bpabi.S: Add EABI alignment attributes to objects.
31992         * arm/bpabi-v6m.S: Likewise.
31993         * arm/crti.asm: Likewise.
31994         * arm/crtn.asm: Likewise.
31995         * arm/lib1funcs.asm: Likewise.
31996         * arm/libunwind.S: Likewise.
31997
31998 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
31999
32000         * arm-protos.h (tune_params): New structure.
32001         * arm.c (current_tune): New variable.
32002         (arm_constant_limit): Delete.
32003         (struct processors): Add pointer to the tune parameters.
32004         (arm_slowmul_tune): New tuning option.
32005         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
32006         (all_cores): Adjust to pick up the tuning model.
32007         (arm_constant_limit): New function.
32008         (arm_override_options): Select the appropriate tuning model.  Delete
32009         initialization of arm_const_limit.
32010         (arm_split_constant): Use the new constant-limit model.
32011         (arm_rtx_costs): Pick up the current tuning model.
32012         * arm.md (is_strongarm, is_xscale): Delete.
32013         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
32014         for Xscale variant architectures.
32015         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
32016
32017 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32018
32019         * config/arm/arm.c (arm_gen_constant): Remove unused variable
32020         can_shift.
32021         (arm_rtx_costs_1): Remove unused variable extra_cost.
32022         (arm_unwind_emit_set): Use variable offset.
32023         (thumb1_output_casesi): Remove unused variable flags.
32024
32025 2010-04-16  Jeff Law  <law@redhat.com>
32026
32027         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
32028         needing assignment rather than doing a two-phase assignment.  Remove
32029         unused variable 'm'.
32030
32031 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32032
32033         PR bootstrap/43767
32034         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
32035
32036 2010-04-16  Doug Kwan  <dougkwan@google.com>
32037
32038         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
32039         (next_operand_entry_id): New static variable.
32040         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
32041         (add_to_ops_vec): Assigned unique ID to operand entry.
32042         (struct oecount_s): New field ID.
32043         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
32044         (undistribute_ops_list): Assign unique IDs to oecounts.
32045         (init_reassoc): reset next_operand_entry_id.
32046
32047 2010-04-16  Doug Kwan  <dougkwan@google.com>
32048
32049         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
32050         missing left parenthesis.
32051
32052 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
32053
32054         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
32055         *btdi_rex64 using SWI48 mode iterator.
32056         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
32057         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
32058         *jcc_btdi_mask_rex64.
32059
32060 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
32061
32062         * double-int.h (tree_to_double_int): Convert to macro.
32063         * double-int.c (tree_to_double_int): Remove.
32064
32065 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32066
32067         PR debug/43762
32068         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
32069         with want_address 2 and in case a single element list might be
32070         possible, call it again with want_address 0.
32071
32072 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32073
32074         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
32075         case 'W' print operands for HI mode.
32076         * config/h8300/h8300.h (Y0, Y2) : New constraints.
32077         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
32078         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
32079         * config/h8300/predicate.md (bit_register_indirect_operand): New.
32080
32081         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
32082
32083         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
32084         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
32085         #xx:3 and #xx:4 mode.
32086
32087         * config/h8300/h8300.md (inverted load with HImode dest): Add
32088         support for H8300SX.
32089
32090         * config/h8300/predicate.md (bit_operand): Allow immediate values that
32091         satisfy 'U' constraint.
32092
32093 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32094
32095         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
32096         * configure: Regenerate.
32097         * config.in: Regenerate.
32098         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
32099         works.
32100
32101 2010-04-16  Richard Guenther  <rguenther@suse.de>
32102
32103         * tree.h (struct tree_decl_minimal): Move pt_uid ...
32104         (struct tree_decl_common): ... here.
32105         (DECL_PT_UID): Adjust.
32106         (SET_DECL_PT_UID): Likewise.
32107         (DECL_PT_UID_SET_P): Likewise.
32108
32109 2010-04-16  Richard Guenther  <rguenther@suse.de>
32110
32111         PR tree-optimization/43572
32112         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
32113         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
32114         * tree-flow.h (is_call_clobbered): Remove.
32115         * tree-flow-inline.h (is_call_clobbered): Likewise.
32116         * tree-dfa.c (dump_variable): Do not dump call clobber state.
32117         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
32118         (execute_return_slot_opt): Adjust.
32119         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
32120         check for call clobbered vars here.
32121         (find_tail_calls): Move tailcall verification to the
32122         proper place.
32123
32124 2010-04-16  Diego Novillo  <dnovillo@google.com>
32125
32126         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
32127
32128 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32129
32130         PR target/40603
32131         * config/arm/arm.md (cbranchqi4): New pattern.
32132         * config/arm/predicates.md (const0_operand,
32133         cbranchqi4_comparison_operator): New predicates.
32134
32135 2010-04-16  Richard Guenther  <rguenther@suse.de>
32136
32137         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
32138         (dump_gimple_stmt): Likewise.
32139
32140 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
32141
32142         * recog.h (struct recog_data): New field is_operator.
32143         (struct insn_operand_data): New field is_operator.
32144         * recog.c (extract_insn): Set recog_data.is_operator.
32145         * genoutput.c (output_operand_data): Emit code to set the
32146         is_operator field.
32147         * reload.c (find_reloads): Use it rather than testing for an
32148         empty constraint string.
32149
32150         PR target/41514
32151         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
32152         If the previous insn is a cbranchsi4_insn with the same arguments,
32153         omit the compare instruction.
32154
32155         * config/arm/arm.md (addsi3_cbranch): If destination is a high
32156         register, inputs must be low registers and we need a low register
32157         scratch.  Handle alternative 2 like alternative 3.
32158
32159 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
32160
32161         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
32162         don't call get_addr on both.  If one expression is a VALUE and
32163         the other a REG, check VALUE's locs if the REG isn't among them.
32164
32165 2010-04-16  Christian Bruel  <christian.bruel@st.com>
32166
32167         * config/sh/sh.h (sh_frame_pointer_required): New function.
32168         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
32169         (flag_omit_frame_pointer) Set.
32170         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
32171         (rounded_frame_size): Adjust size with outgoing_args_size.
32172         (sh_set_return_address): Must return from stack pointer.
32173         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
32174         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
32175         (ACCUMULATE_OUTGOING_ARGS): Define.
32176         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
32177         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
32178
32179 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32180
32181         PR target/43471
32182         * config/sh/sh.c (sh_legitimize_reload_address): Use
32183         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
32184         Remove a unneeded check for offset_base.
32185
32186 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
32187
32188         * configure: Regenerated.
32189
32190 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32191
32192         * config/s390/s390.c (s390_call_save_register_used): Switch back
32193         to HARD_REGNO_NREGS.
32194
32195 2010-04-15  Richard Guenther  <rguenther@suse.de>
32196
32197         * alias.c (alias_set_subset_of): Handle alias-set zero
32198         child properly.
32199
32200 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
32201             Julian Brown  <julian@codesourcery.com>
32202
32203         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
32204         alternatives according to use of high and low regs.
32205         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
32206         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
32207         optimizing for size on Thumb-2.
32208
32209 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
32210
32211         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
32212
32213 2010-04-15  Richard Guenther  <rguenther@suse.de>
32214
32215         * tree-ssa-structalias.c (struct variable_info): Add
32216         is_fn_info flag.
32217         (new_var_info): Initialize it.
32218         (dump_constraints): Support printing last added constraints.
32219         (debug_constraints): Adjust.
32220         (dump_constraint_graph): Likewise.
32221         (make_heapvar_for): Check for NULL cfun.
32222         (get_function_part_constraint): New function.
32223         (get_fi_for_callee): Likewise.
32224         (find_func_aliases): Properly implement IPA PTA constraints.
32225         (process_ipa_clobber): New function.
32226         (find_func_clobbers): Likewise.
32227         (insert_into_field_list_sorted): Remove.
32228         (create_function_info_for): Properly allocate vars for IPA mode.
32229         Do not use insert_into_field_list_sorted.
32230         (create_variable_info_for): Properly generate constraints for
32231         global vars in IPA mode.
32232         (dump_solution_for_var): Always dump the solution.
32233         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
32234         (find_what_var_points_to): Adjust.
32235         (pt_solution_set): Change.
32236         (pt_solution_ior_into): New function.
32237         (pt_solution_empty_p): Export.
32238         (pt_solution_includes_global): Adjust.
32239         (pt_solution_includes_1): Likewise.
32240         (pt_solutions_intersect_1): Likewise.
32241         (dump_sa_points_to_info): Check some invariants.
32242         (solve_constraints): Move constraint dumping ...
32243         (compute_points_to_sets): ... here.
32244         (ipa_pta_execute): ... and here.
32245         (compute_may_aliases): Do not re-compute points-to info
32246         locally if IPA info is available.
32247         (ipa_escaped_pt): New global var.
32248         (ipa_pta_execute): Properly implement IPA PTA.
32249         * tree-into-ssa.c (dump_decl_set): Support dumping
32250         decls not in referenced-vars.
32251         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
32252         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
32253         (dump_points_to_solution): Likewise.
32254         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
32255         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
32256         (remap_gimple_stmt): Reset call clobber/use information if necessary.
32257         (copy_decl_to_var): Copy DECL_PT_UID.
32258         (copy_result_decl_to_var): Likewise.
32259         * tree.c (make_node_stat): Initialize DECL_PT_UID.
32260         (copy_node_stat): Copy it.
32261         * tree.h (DECL_PT_UID): New macro.
32262         (SET_DECL_PT_UID): Likewise.
32263         (DECL_PT_UID_SET_P): Likewise.
32264         (struct tree_decl_minimal): Add pt_uid member.
32265         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
32266         (pt_solution_empty_p): Declare.
32267         (pt_solution_set): Adjust.
32268         (ipa_escaped_pt): Declare.
32269         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
32270         * gimple-pretty-print.c (pp_points_to_solution): New function.
32271         (dump_gimple_call): Dump call clobber/use information.
32272         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
32273         * tree-pass.h (TDF_ALIAS): New dump option.
32274         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
32275         * doc/invoke.texi (-fipa-pta): Update documentation.
32276
32277 2010-04-15  Richard Guenther  <rguenther@suse.de>
32278
32279         * Makefile.in (OBJS-common): Add gimple-fold.o.
32280         (gimple-fold.o): New rule.
32281         * tree.h (maybe_fold_offset_to_reference,
32282         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
32283         prototypes ...
32284         * gimple.h: ... here.
32285         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
32286         may_propagate_address_into_dereference): Move prototypes ...
32287         * gimple.h: ... here.
32288         * tree-ssa-ccp.c (get_symbol_constant_value,
32289         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
32290         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
32291         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
32292         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
32293         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
32294         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
32295         gimplify_and_update_call_from_tree): Move ...
32296         * gimple-fold.c: ... here.  New file.
32297         (ccp_fold_builtin): Rename to ...
32298         (gimple_fold_builtin): ... this.
32299         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
32300
32301 2010-04-15  Richard Guenther  <rguenther@suse.de>
32302
32303         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
32304         fit_double_type, force_fit_type_double, add_double_with_sign,
32305         neg_double, mul_double_with_sign, lshift_double, rshift_double,
32306         lrotate_double, rrotate_double, div_and_round_double): Move ...
32307         * double-int.c: ... here.
32308         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
32309         add_double, neg_double, mul_double_with_sign, mul_double,
32310         lshift_double, rshift_double, lrotate_double, rrotate_double,
32311         div_and_round_double): Move prototypes ...
32312         * double-int.h: ... here.
32313
32314 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
32315
32316         PR target/43742
32317         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
32318         matching constraints to ensure inputs match the output.
32319
32320 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
32321
32322         PR target/43742
32323         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
32324         in an input-only operand.
32325
32326 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
32327
32328         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
32329         (double_int_not, double_int_lshift, double_int_rshift): Declare.
32330         (double_int_negative_p): Convert to static inline function.
32331         * double-int.c (double_int_lshift, double_int_lshift): New functions.
32332         (double_int_negative_p): Remove.
32333         * tree.h (lshift_double, rshift_double):
32334         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
32335         * fold-const.c (fold_convert_const_int_from_real,
32336         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
32337         (lshift_double): Change type of arith argument to bool.
32338         (rshift_double): Change type of arith argument to bool. Correct
32339         comment.
32340         * expmed.c (mask_rtx, lshift_value): (Ditto.).
32341
32342 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
32343
32344         PR target/21803
32345         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
32346         at the start and end of the then/else blocks, and omit them from the
32347         conversion.
32348         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
32349         argument; all callers changed.  Pass zero to old_insns_match_p instead.
32350         (flow_find_head_matching_sequence): New function.
32351         (old_insns_match_p): Check REG_EH_REGION notes for calls.
32352         * basic-block.h (flow_find_cross_jump,
32353         flow_find_head_matching_sequence): Declare functions.
32354
32355 2010-04-14  Jason Merrill  <jason@redhat.com>
32356
32357         PR c++/36625
32358         * c-common.c (attribute_takes_identifier_p): New fn.
32359         * c-common.h: Declare it.
32360
32361 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32362
32363         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
32364         splitter condition.
32365         (*udivmod<mode>4): Ditto.
32366
32367 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32368
32369         * config/i386/i386.md (maxmin_int): Rename code attribute from
32370         maxminiprefix and update all users.
32371         (maxmin_float): Ditto from maxminfprefix.
32372         (logic): Ditto from logicprefix.
32373         (absneg_mnemonic): Ditto from absnegprefix.
32374         * config/i386/mmx.md: Update all users of maxminiprefix,
32375         maxminfprefix and logicprefix for rename.
32376         * config/i386/sse.md: Ditto.
32377         * config/i386/sync.md (sync_<code><mode>): Update for
32378         logicprefix rename.
32379
32380 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32381
32382         PR 42966
32383         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
32384         warnings converted to errors.
32385
32386 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32387
32388         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
32389         used insn_type variable.
32390         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
32391         to avoid set-but-not-used warning.
32392
32393 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32394
32395         * df-core.c (df_ref_debug): Change format string placeholder
32396         from 0x%x to %#x.
32397         * dwarf2asm.c (dw2_asm_output_data_raw,
32398         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
32399         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
32400         * dwarf2out.c (output_cfi, output_cfi_directive,
32401         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
32402         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
32403         Ditto.
32404         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
32405         * print-rtl.c (print_rtx): Ditto.
32406
32407 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
32408
32409         PR middle-end/42694
32410         * builtins.c (expand_builtin_pow_root): New function to expand pow
32411         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
32412         series of sqrt and cbrt calls under -ffast-math.
32413         (expand_builtin_pow): Call it.
32414
32415 2010-04-14  Michael Matz  <matz@suse.de>
32416
32417         PR tree-optimization/42963
32418         * tree-cfg.c (touched_switch_bbs): New static variable.
32419         (group_case_labels_stmt): New function broken out from ...
32420         (group_case_labels): ... here, use the above.
32421         (start_recording_case_labels): Allocate touched_switch_bbs.
32422         (end_recording_case_labels): Deallocate it, call
32423         group_case_labels_stmt.
32424         (gimple_redirect_edge_and_branch): Remember index of affected BB.
32425
32426 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32427
32428         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
32429         from insn template.
32430
32431 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
32432
32433         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
32434
32435 2010-04-13  Jan Hubicka  <jh@suse.cz>
32436
32437         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
32438         of optimized out static functions.
32439         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
32440         cost computation.  Also sanity check for overflows.
32441         (update_caller_keys): Update cgraph_edge_badness call; properly
32442         update fibheap and sanity check that it is up to date.
32443         (add_new_edges_to_heap): Update cgraph_edge_badness.
32444         (cgraph_decide_inlining_of_small_function): Likewise;
32445         add sanity checking that badness in heap is up to date;
32446         improve dumping of reason; Update badness of calls to the
32447         offline copy of function currently inlined; dump badness
32448         of functions not inlined because of unit growth limits.
32449
32450 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32451
32452         PR middle-end/32628
32453         * c-common.c (pointer_int_sum): Disregard overflow that occured only
32454         because of sign-extension change when converting to sizetype here...
32455         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
32456
32457         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
32458         the folding to constants.  Remove redundant final conversion.
32459         (fold_binary) <associate>: Do not associate if the re-association of
32460         constants alone overflows.
32461         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
32462         to the end of the list.
32463         (multiple_of_p) <COND_EXPR>: New case.
32464
32465 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32466
32467         * opt-functions.awk (opt_sanitized_name): New.
32468         (opt_enum): New.
32469         * optc-gen.awk: Use it
32470         * opth-gen.awk: Use it.
32471
32472 2010-04-13  Martin Jambor  <mjambor@suse.cz>
32473
32474         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
32475         (sra_modify_assign): Delete stmts loading dead data even if racc has no
32476         children.  Call replace_uses_with_default_def_ssa_name to handle
32477         SSA_NAES on lhs.
32478
32479 2010-04-13  Michael Matz  <matz@suse.de>
32480
32481         PR middle-end/43730
32482         * builtins.c (expand_builtin_interclass_mathfn): Also create
32483         a register if the predicate doesn't match.
32484
32485 2010-04-13  Diego Novillo  <dnovillo@google.com>
32486
32487         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
32488         * c-pch.c: Include timevar.h.
32489         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
32490         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
32491         * ggc-common.c: Include timevar.h.
32492         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
32493         * timevar.def (TV_PCH_SAVE): Define.
32494         (TV_PCH_CPP_SAVE): Define.
32495         (TV_PCH_PTR_REALLOC): Define.
32496         (TV_PCH_PTR_SORT): Define.
32497         (TV_PCH_RESTORE): Define.
32498         (TV_PCH_CPP_RESTORE): Define.
32499
32500 2010-04-13  Michael Matz  <matz@suse.de>
32501
32502         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
32503         into MINUS_EXPRs.
32504         (can_reassociate_p): New function.
32505         (break_up_subtract_bb, reassociate_bb): Use it.
32506
32507 2010-04-13  Richard Guenther  <rguenther@suse.de>
32508
32509         PR bootstrap/43737
32510         * builtins.c (c_readstr): Fix assert.
32511
32512 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
32513
32514         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
32515         when generating cltd insn.
32516
32517         (*ashl<mode>3_1): Remove special handling for register operand 2.
32518         (*ashlsi3_1_zext): Ditto.
32519         (*ashlhi3_1): Ditto.
32520         (*ashlhi3_1_lea): Ditto.
32521         (*ashlqi3_1): Ditto.
32522         (*ashlqi3_1_lea): Ditto.
32523         (*<shiftrt_insn><mode>3_1): Ditto.
32524         (*<shiftrt_insn>si3_1_zext): Ditto.
32525         (*<shiftrt_insn>qi3_1_slp): Ditto.
32526         (*<rotate_insn><mode>3_1): Ditto.
32527         (*<rotate_insn>si3_1_zext): Ditto.
32528         (*<rotate_insn>qi3_1_slp): Ditto.
32529
32530 2010-04-13  Richard Guenther  <rguenther@suse.de>
32531
32532         * tree-ssa-structalias.c (callused_id): Remove.
32533         (call_stmt_vars): New.
32534         (get_call_vi): Likewise.
32535         (lookup_call_use_vi): Likewise.
32536         (lookup_call_clobber_vi): Likewise.
32537         (get_call_use_vi): Likewise.
32538         (get_call_clobber_vi): Likewise.
32539         (make_transitive_closure_constraints): Likewise.
32540         (handle_const_call): Adjust to do per-call call-used handling.
32541         (handle_pure_call): Likewise.
32542         (find_what_var_points_to): Remove general callused handling.
32543         (init_base_vars): Likewise.
32544         (init_alias_vars): Initialize call_stmt_vars.
32545         (compute_points_to_sets): Process call-used and call-clobbered
32546         vars for call statements.
32547         (delete_points_to_sets): Free call_stmt_vars.
32548
32549 2010-04-13  Richard Guenther  <rguenther@suse.de>
32550
32551         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
32552         Only add RW dependence for dependence distance zero.
32553         Adjust maximal vectorization factor according to dependences.
32554         Move alignment handling ...
32555         (vect_find_same_alignment_drs): ... here.  New function.
32556         (vect_analyze_data_ref_dependences): Adjust.
32557         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
32558         (vect_analyze_data_refs): Adjust minimal vectorization factor
32559         according to data references.
32560         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
32561         dependences before determining the vectorization factor.
32562         Analyze alignment after determining the vectorization factor.
32563         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
32564         dependences before alignment.
32565         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
32566         Adjust prototype.
32567         (vect_analyze_data_refs): Likewise.
32568         (MAX_VECTORIZATION_FACTOR): New define.
32569
32570 2010-04-13  Duncan Sands  <baldrick@free.fr>
32571
32572         * except.h (lang_eh_type_covers): Remove.
32573         * except.c (lang_eh_type_covers): Likewise.
32574
32575 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32576             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32577
32578         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
32579         * config/s390/s390.c: Replace UNTIS_PER_WORD with
32580         UNITS_PER_LONG where it is ABI relevant.
32581         (s390_return_addr_rtx): Likewise.
32582         (s390_back_chain_rtx): Likewise.
32583         (s390_frame_area): Likewise.
32584         (s390_frame_info): Likewise.
32585         (s390_initial_elimination_offset): Likewise.
32586         (save_gprs): Likewise.
32587         (s390_emit_prologue): Likewise.
32588         (s390_emit_epilogue): Likewise.
32589         (s390_function_arg_advance): Likewise.
32590         (s390_function_arg): Likewise.
32591         (s390_va_start): Likewise.
32592         (s390_gimplify_va_arg): Likewise.
32593         (s390_function_profiler): Likewise.
32594         (s390_optimize_prologue): Likewise.
32595         (s390_rtx_costs): Likewise.
32596         (s390_secondary_reload): Likewise.
32597         (s390_promote_function_mode): Likewise.
32598         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
32599         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
32600         registers available.
32601         (s390_unwind_word_mode): New function.
32602         (s390_function_value): Split 64 bit values into register pair if
32603         used as return value.
32604         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
32605         function call parameters.  Handle parallels.
32606         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
32607         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
32608         (DWARF_CIE_DATA_ALIGNMENT): New macro.
32609         (s390_expand_setmem): Remove unused variable src_addr.
32610         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
32611         deal with 64 bit registers.
32612         * config/s390/s390.h: Define __zarch__ predefined macro.
32613         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
32614         (UNITS_PER_LONG): New macro.
32615         * libjava/include/s390-signal.h: Define extended ucontext
32616         structure containing the upper halfs of the 64 bit registers.
32617
32618 2010-04-13  Simon Baldwin  <simonb@google.com>
32619
32620         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
32621
32622 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
32623
32624         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
32625         rvalue on the RHS if the LHS is of a non-renamable type.
32626         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
32627
32628 2010-04-13  Matthias Klose  <doko@ubuntu.com>
32629
32630         * gcc.c (cc1_options): Handle -iplugindir before processing
32631         the cc1 spec. Only add -iplugindir once.
32632         (cpp_unique_options): Add -iplugindir option if -fplugin* options
32633         found.
32634         * common.opt (iplugindir): Remove `Separate' property, initialize.
32635         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
32636         option.
32637         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
32638         (distclean): Remove plugin dir.
32639         * doc/invoke.texi: Document -iplugindir.
32640
32641 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
32642
32643         * doc/plugins.texi (Loading Plugins): Document short
32644         -fplugin=foo option.
32645         (Plugin API): Mention default_plugin_dir_name function.
32646
32647         * gcc.c (find_file_spec_function): Add new declaration.
32648         (static_spec_func): Use it for "find-file".
32649         (find_file_spec_function): Add new function.
32650         (cc1_options): Add -iplugindir option if -fplugin* options found.
32651
32652         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
32653
32654         * plugin.c (add_new_plugin): Updated comment, and handle short
32655         plugin name.
32656         (default_plugin_dir_name): Added new function.
32657
32658         * common.opt (iplugindir): New option to set the plugin directory.
32659
32660 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
32661
32662         * config/i386/i386.md (any_rotate): New code iterator.
32663         (rotate_insn): New code attribute.
32664         (rotate): Ditto.
32665         (SWIM124): New mode iterator.
32666         (<rotate_insn>ti3): New expander.
32667         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
32668         any_rotate code iterator.
32669         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
32670         using any_rotate code iterator and SWIM124 mode iterator.
32671         (ix86_rotlti3): New insn_and_split pattern.
32672         (ix86_rotrti3): Ditto.
32673         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
32674         ix86_rotl{di,ti}3 patterns.
32675         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
32676         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
32677         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
32678         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
32679         code iterator and SWI mode iterator.
32680         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
32681         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
32682         code iterator.
32683         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
32684         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
32685         (bswap rotatert splitter): Add splitter.
32686         (bswap splitter): Macroize splitter using any_rotate code iterator.
32687         Add insn predicate to split only for TARGET_USE_XCHGB or when
32688         optimizing function for size.
32689
32690 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32691
32692         * config/pa/pa.c (emit_move_sequence): Remove use of
32693         deleted variable flag_argument_noalias.
32694
32695 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32696
32697         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
32698         configurations.
32699         Add to unsupported targets list.
32700         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
32701         sparc*-sun-solaris2.[567]* from target lists.
32702         * configure: Regenerate.
32703         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
32704         removal.
32705         Remove Solaris 7 patch references.
32706         (Specific, sparc-sun-solaris2.7): Removed.
32707         (sparc-sun-solaris2*): Update Solaris 7 example.
32708         (sparc64-*-solaris2*): Likewise.
32709
32710 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32711
32712         * config.build (alpha*-dec-osf4*): Remove.
32713         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
32714         of obsolete configurations.
32715         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
32716         support.
32717         * config/alpha/t-osf4: Renamed to ...
32718         * config/alpha/t-osf5: ... this.
32719         * config/alpha/osf.h: Renamed to ...
32720         * config/alpha/osf5.h: ... this.
32721         Merged old osf5.h contents.
32722         Update comments.
32723         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
32724         (EXTRA_SPECS): Removed.
32725         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
32726         reflect removal of Tru64 UNIX V4.0/V5.0 support.
32727         Document that.
32728
32729 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32730
32731         * doc/contrib.texi (Contributors, Rainer Orth): Update.
32732
32733 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
32734
32735         PR/43702
32736         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
32737         __thiscall convention.
32738
32739 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32740
32741         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
32742         orig_base.
32743         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
32744
32745 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
32746
32747         * function.c (assign_parms_initialize_all): Add unused attribute
32748         to fntype.
32749
32750 2010-04-12  Richard Guenther  <rguenther@suse.de>
32751
32752         * gsstruct.def (GSS_CALL): New.
32753         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
32754         * gimple.h: Include tree-ssa-alias.h.
32755         (struct gimple_statement_call): New.
32756         (union gimple_statement_struct_d): Add gimple_call member.
32757         (gimple_call_reset_alias_info): Declare.
32758         (gimple_call_use_set): New function.
32759         (gimple_call_clobber_set): Likewise.
32760         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
32761         * gimple.c (gimple_call_reset_alias_info): New function.
32762         (gimple_build_call_1): Call it.
32763         * lto-streamer-in.c (input_gimple_stmt): Likewise.
32764         * tree-inline.c (remap_gimple_stmt): Likewise.
32765         (expand_call_inline): Remove callused handling.
32766         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
32767         * tree-dfa.c (dump_variable): Likewise.
32768         * tree-parloops.c (parallelize_loops): Likewise.
32769         * tree-ssa.c (init_tree_ssa): Likewise.
32770         (delete_tree_ssa): Likewise.
32771         * tree-flow-inline.h (is_call_used): Remove.
32772         * tree-flow.h (struct gimple_df): Remove callused member.
32773         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
32774         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
32775         (ref_maybe_used_by_call_p_1): Simplify.
32776         (call_may_clobber_ref_p_1): Likewise.
32777         * tree-ssa-structalias.c (compute_points_to_sets): Set
32778         the call stmt used and clobbered sets.
32779         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
32780         (find_tail_calls): Verify the tail call.
32781
32782 2010-04-12  Richard Guenther  <rguenther@suse.de>
32783
32784         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
32785         single-iteration always-inline inlining.
32786         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
32787         (cgraph_decide_inlining): Do not handle always-inline specially.
32788         (try_inline): Remove always-inline cycle detection special case.
32789         Do not recurse on always-inlines.
32790         (cgraph_early_inlining): Do not iterate if not optimizing.
32791         (cgraph_gate_early_inlining): remove.
32792         (pass_early_inline): Run unconditionally.
32793         (gate_cgraph_decide_inlining): New function.
32794         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
32795         not inlining or optimizing.
32796         (cgraph_decide_inlining_of_small_functions): Also consider
32797         always-inline functions.
32798         (cgraph_default_inline_p): Return true for nodes which should
32799         disregard inline limits.
32800         (estimate_function_body_sizes): Assume zero size and time for
32801         nodes which are marked as disregarding inline limits.
32802         (cgraph_decide_recursive_inlining): Do not perform recursive
32803         inlining on always-inline nodes.
32804
32805 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
32806
32807         PR bootstrap/43699
32808         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
32809         for exprs satisfying handled_component_p.
32810
32811 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
32812
32813         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
32814         non-constant aggregate elements.
32815
32816         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
32817         is a real initialization.
32818
32819 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
32820
32821         PR c/36774
32822         * c-decl.c (start_function): Move forward check for nested function.
32823
32824 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
32825
32826         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
32827         * config/sh/sh.c: Include reload.h.
32828         (sh_legitimize_reload_address): New.
32829         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
32830         sh_legitimize_reload_address.
32831
32832 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
32833
32834         * config/sh/sh.md (*movqi_pop): New insn pattern.
32835         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
32836
32837 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32838
32839         * config/i386/i386.md (any_shiftrt): New code iterator.
32840         (shiftrt_insn): New code attribute.
32841         (shiftrt): Ditto.
32842         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
32843         using any_shiftrt code iterator.
32844         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
32845         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
32846         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
32847         pattern from corresponding peephole2 patterns.
32848         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
32849         using any_shiftrt code iterator.
32850         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
32851         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
32852         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
32853         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
32854         *{ashr,lshr}<mode>3_cmp_zext.
32855         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
32856
32857 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32858
32859         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
32860         scratch register.
32861         (*lshr<mode>3_cconly): Ditto.
32862
32863 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
32864
32865         * config/i386/i386.md (lshr<mode>3): Macroize expander from
32866         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32867         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32868         pattern from *lshr{di,ti}3_1 and corresponding splitters using
32869         DWI mode iterator.
32870         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32871         from corresponding peephole2 patterns.
32872         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
32873         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
32874         and *lshrdi3_1_rex64 using SWI mode iterator.
32875         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
32876         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
32877         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
32878         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
32879         and *lshrdi3_cmp_rex64 using SWI mode iterator.
32880         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
32881         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
32882         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
32883         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
32884         SWI mode iterator.
32885
32886 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
32887
32888         * config/i386/i386.md (ashr<mode>3): Macroize expander from
32889         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
32890         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
32891         pattern from *ashr{di,ti}3_1 and corresponding splitters using
32892         DWI mode iterator.
32893         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
32894         from corresponding peephole2 patterns.
32895         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
32896         (ashrsi3_cvt): Rename from ashrsi3_31.
32897         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
32898         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
32899         and x86_64_shift_adj_3 using SWI48 mode iterator.
32900         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
32901         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
32902         and *ashrdi3_1_rex64 using SWI mode iterator.
32903         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
32904         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
32905         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
32906         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
32907         and *ashrdi3_cmp_rex64 using SWI mode iterator.
32908         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
32909         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
32910         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
32911         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
32912         SWI mode iterator.
32913         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
32914         * config/i386/i386.c (ix86_split_ashr): Update for renamed
32915         x86_shift<mode>_adj_3 expanders.
32916
32917 2010-04-10  Wei Guozhi  <carrot@google.com>
32918
32919         PR target/42601
32920         * config/arm/arm.c (arm_pic_static_addr): New function.
32921         (legitimize_pic_address): Call arm_pic_static_addr when it detects
32922         a static symbol.
32923         (arm_output_addr_const_extra): Output expression for new pattern.
32924         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
32925
32926 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
32927
32928         * ira-costs.c (record_reg_classes): Ignore alternatives that are
32929         not enabled.
32930
32931         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
32932         * web.c: Include "insn-config.h" and "recog.h".
32933         (union_match_dups): New function.
32934         (web_main): Call it.
32935         (union_defs): Don't try to recognize match_dups.
32936
32937         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
32938         if doing so would replace the entire pattern.
32939
32940 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
32941
32942         PR target/43707
32943         PR target/43709
32944         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
32945         and splitter pattern.  Change splitter operand 1 predicate to
32946         nonmemory_operand.
32947
32948 2010-04-09  Martin Jambor  <mjambor@suse.cz>
32949
32950         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
32951         lattices are addresses of CONST_DECLs with the same initial value.
32952         (ipcp_print_all_lattices): Print values of CONST_DECLs.
32953         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
32954
32955 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
32956             Bernd Schmidt  <bernds@codesourcery.com>
32957
32958         * loop-invariant.c (replace_uses): New static function.
32959         (move_invariant_reg): Use it to ensure we can replace the uses.
32960
32961 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
32962
32963         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
32964         function template.
32965         (picochip_override_options): Enable section anchors only above -O1.
32966         (picochip_reorg): Fixed a couple of build warnings.
32967
32968 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32969
32970         * configure.ac (plugin -rdynamic test): Log result.
32971         * configure: Regenerate.
32972         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
32973         (RDYNAMIC_SPEC): Define.
32974         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
32975
32976 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32977
32978         * configure.ac: Determine Sun ld version numbers.
32979         (comdat_group): Restrict GNU ld version checks to gld.
32980         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
32981         (enable_comdat): Support --enable-comdat.
32982         * configure: Regenerate.
32983         * doc/install.texi (Configuration): Document --enable-comdat.
32984
32985 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32986
32987         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
32988         * config/sol2-gld.h: ... here.
32989         * config.gcc (sparc*-*-solaris2*): Reflect this.
32990         (i[34567]86-*-solaris2*): Use it.
32991
32992 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
32993
32994         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
32995         setup_clocks_p.
32996         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
32997
32998 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32999
33000         PR 42965
33001         * diagnostic.c (diagnostic_initialize): Initialize
33002         some_warnings_are_errors.
33003         (diagnostic_finish): New.
33004         (diagnostic_action_after_output): Call it before exiting.
33005         (diagnostic_report_diagnostic): Do not print message here. Set
33006         some_warnings_are_errors.
33007         * diagnostic.h (diagnostic_context): Delete
33008         issue_warnings_are_errors_message. Add some_warnings_are_errors.
33009         (diagnostic_finish): Declare.
33010         * toplev.c (toplev_main): Call it before exit.
33011
33012 2010-04-09  Jason Merrill  <jason@redhat.com>
33013
33014         PR c++/42623
33015         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
33016         for incomplete type.
33017
33018         PR c++/41788
33019         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
33020         based on a warning flag.
33021
33022 2010-04-09  Richard Guenther  <rguenther@suse.de>
33023
33024         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
33025
33026 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
33027
33028         PR bootstrap/43684
33029         * varasm.c (default_assemble_visibility): Wrap vars that are
33030         set, but unused, by targets without GAS.
33031         * config/rs6000/rs6000.c (paired_emit_vector_compare):
33032         Remove set, but unused, vars.
33033         (rs6000_legitimize_tls_address): Likewise.
33034         (altivec_expand_dst_builtin): Likewise.
33035         * config/darwin.c (machopic_classify_symbol): Likewise.
33036         (machopic_indirection_name): Likewise.
33037
33038 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
33039
33040         * config/i386/i386.md (DWI): New mode iterator.
33041         (S): New mode attribute.
33042         (shift_operand): Ditto.
33043         (shift_immediate_operand): Ditto.
33044         (ashl_input_operand): Ditto.
33045         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
33046         using SDWIM mode iterator.
33047         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
33048         pattern from *ashl{di,ti}3_1 and corresponding splitters using
33049         DWI mode iterator.
33050         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
33051         from corresponding peephole2 patterns.
33052         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
33053         and x86_64_shift_adj_1 using SWI48 mode iterator.
33054         (x86_shift<mode>_adj_2): Ditto.
33055         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
33056         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
33057         using SWI48 mode iterator.
33058         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
33059         *ashldi3_cmp_rex64 using SWI mode iterator.
33060         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
33061         *ashldi3_cconly_rex64 using SWI mode iterator.
33062         * config/i386/i386.c (ix86_split_ashl): Update for renamed
33063         x86_shift<mode>_adj_{1,2}.
33064         (ix86_split_ashr): Ditto.
33065         (ix86_split_lshr): Ditto.
33066
33067 2010-04-09  Richard Guenther  <rguenther@suse.de>
33068
33069         * target.h (builtin_conversion): Pass in input and output types.
33070         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
33071         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
33072         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
33073         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
33074
33075         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
33076         Handle AVX modes.
33077         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
33078
33079 2010-04-09  Richard Guenther  <rguenther@suse.de>
33080
33081         PR target/43152
33082         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
33083
33084 2010-04-09  Richard Guenther  <rguenther@suse.de>
33085
33086         * tree-vectorizer.h (struct _stmt_vec_info): Document
33087         that vectype is the type of the LHS.
33088         (supportable_widening_operation, supportable_narrowing_operation):
33089         Get both input and output vector types as arguments.
33090         (vect_is_simple_use_1): Declare.
33091         (get_same_sized_vectype): Likewise.
33092         * tree-vect-loop.c (vect_determine_vectorization_factor):
33093         Set STMT_VINFO_VECTYPE to the vector type of the def.
33094         (vectorizable_reduction): Adjust.
33095         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
33096         Adjust.  Specify the output vector type.
33097         (vect_pattern_recog_1): Adjust.
33098         * tree-vect-stmts.c (get_same_sized_vectype): New function.
33099         (vectorizable_call): Adjust.
33100         (vectorizable_conversion): Likewise.
33101         (vectorizable_operation): Likewise.
33102         (vectorizable_type_demotion): Likewise.
33103         (vectorizable_type_promotion): Likewise.
33104         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
33105         the def.
33106         (vect_is_simple_use_1): New function.
33107         (supportable_widening_operation): Get both input and output
33108         vector types.
33109         (supportable_narrowing_operation): Likewise.
33110         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
33111
33112 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
33113
33114         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
33115         __thiscall and _thiscall as predefined macros.
33116         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
33117         thiscall attribute handling.
33118         (ix86_comp_type_attributes): Likewise.
33119         (ix86_function_regparm): Likewise.
33120         (ix86_return_pops_args): Likewise.
33121         (init_cumulative_args): Likewise.
33122         (find_drap_reg): Likewise.
33123         (ix86_static_chain): Likewise.
33124         (x86_this_parameter): Likewise.
33125         (x86_output_mi_thunk): Likewise.
33126         (ix86_attribute_table): Add description for thiscall attribute.
33127         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
33128         * doc/extend.texi: Add documentation for thiscall.
33129
33130 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33131
33132         PR c++/28584
33133         * c.opt (Wint-to-pointer-cast): Available in C++.
33134         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
33135
33136 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
33137
33138         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
33139         * calls.c (expand_call): Pass the function type to aggregate_value_p.
33140         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
33141         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
33142         function type instead.  Reorder and simplify checks.
33143
33144         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
33145
33146 2010-04-08  Jing Yu  <jingyu@google.com>
33147             Zdenek Dvorak  <ook@ucw.cz>
33148
33149         PR tree-optimization/42720
33150         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
33151         loop unswitch conditions here from ...
33152         (tree_unswitch_single_loop): ... here.
33153
33154 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33155
33156         * tree-if-conv.c: Fix comments and simplify logic.
33157
33158 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
33159
33160         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
33161         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
33162         (main_tree_if_conversion): Update call to tree_if_conversion.
33163
33164 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33165
33166         PR 42485
33167         * doc/invoke.texi (-b,-V): Delete.
33168         * doc/tm.texi: Do not mention -b.
33169         * gcc.c (display_help): Delete -b and -V.
33170         (process_command): Delete -b and -V.
33171         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
33172
33173 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
33174             Wolfgang Gellerich  <gellerich@de.ibm.com>
33175
33176         Implement target hook for loop unrolling
33177         * target.h (loop_unroll_adjust): Add a new target hook function.
33178         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
33179         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
33180         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
33181         (s390_loop_unroll_adjust): Implement the new target hook for s390.
33182         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
33183         target hook.
33184         (decide_unroll_stupid): Likewise.
33185
33186 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33187
33188         PR target/43643
33189         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
33190
33191 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33192
33193         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
33194         (Specific, *-*-solaris2*): Likewise.
33195         Don't prefer Sun as over GNU as.
33196
33197 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
33198
33199         * config/s390/s390.c (override_options): Adjust the z10 defaults
33200         for max-unroll-times, max-completely-peeled-insns
33201         and max-completely-peel-times.
33202
33203 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33204
33205         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
33206         instructions for z10.
33207         (s390_expand_setmem): Likewise.
33208         (s390_expand_cmpmem): Likewise.
33209
33210 2010-04-08  Richard Guenther  <rguenther@suse.de>
33211
33212         PR tree-optimization/43679
33213         * tree-ssa-pre.c (eliminate): Only propagate copies.
33214
33215 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33216
33217         PR bootstrap/43681
33218         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
33219         set but not used variable warning.
33220
33221 2010-04-08  Wei Guozhi  <carrot@google.com>
33222
33223         PR target/41653
33224         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
33225         (arm_size_rtx_costs): Call the new function when optimized for size.
33226
33227 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
33228
33229         PR debug/43670
33230         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
33231         op0 is not a MEM, just return NULL instead of assertion
33232         failure.
33233         (discover_nonconstant_array_refs): Don't walk debug stmts.
33234
33235 2010-04-08  Doug Kwan  <dougkwan@google.com>
33236
33237         * configure.ac: Recognize gold and do not use its version number
33238         to test ld features.
33239         * configure: Regenerate.
33240
33241 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
33242
33243         PR middle-end/40815
33244         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
33245         (negate_value): Move code to push elements to broken_up_substracts ...
33246         (eliminate_plus_minus_pair): ... here.  Push operands that have no
33247         negative pair to plus_negates.
33248         (repropagate_negates, init_reassoc, fini_reassoc): Update.
33249
33250 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33251
33252         * doc/install.texi (Configuration): Move description of
33253         --enable-lto, --with-libelf*, --enable-gold from Java section to
33254         general section.
33255
33256         * doc/generic.texi (Working with declarations)
33257         (Function Properties, C and C++ Trees): Fix typos.
33258         * doc/sourcebuild.texi (Top Level): Likewise.
33259
33260 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33261
33262         PR c/18624
33263         * tree.h (DECL_READ_P): Define.
33264         (struct tree_decl_common): Add decl_read_flag.
33265         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
33266         a set but not used warning.
33267         (merge_decls): Merge DECL_READ_P flag.
33268         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
33269         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
33270         * c-common.c (handle_used_attribute, handle_unused_attribute):
33271         Likewise.
33272         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
33273         New prototypes.
33274         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
33275         New functions.
33276         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
33277         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
33278         c_parser_binary_expression, c_parser_cast_expression,
33279         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
33280         Call default_function_array_read_conversion instead of
33281         default_function_array_conversion where needed.
33282         (c_parser_unary_expression, c_parser_conditional_expression,
33283         c_parser_postfix_expression_after_primary, c_parser_initelt):
33284         Likewise.  Call mark_exp_read where needed.
33285         (c_parser_statement_after_labels, c_parser_asm_operands,
33286         c_parser_typeof_specifier, c_parser_sizeof_expression,
33287         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
33288         where needed.
33289         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
33290         New.
33291         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
33292         (warn_unused_but_set_parameter): Default to warn_unused
33293         && extra_warnings.
33294         * doc/invoke.texi: Document -Wunused-but-set-variable and
33295         -Wunused-but-set-parameter.
33296
33297         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
33298         used count variable.
33299         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
33300         when operandN variables aren't used in the body of the expander
33301         or splitter.
33302         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
33303         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
33304         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
33305         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
33306         FOR_EACH_IMM_USE_ON_STMT): Likewise.
33307         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
33308         * tree.c (PROCESS_ARG): Likewise.
33309
33310 2010-04-07  Simon Baldwin  <simonb@google.com>
33311
33312         * diagnostic.h (diagnostic_override_option_index): New macro to
33313         set a diagnostic's option_index.
33314         * c-tree.h (c_cpp_error): Add warning reason argument.
33315         * opts.c (_warning_as_error_callback): New.
33316         (register_warning_as_error_callback): Store callback for
33317         warnings enabled via enable_warning_as_error.
33318         (enable_warning_as_error): Call callback, minor code tidy.
33319         * opts.h (register_warning_as_error_callback): Declare.
33320         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
33321         response to -Werror=.
33322         (c_common_init_options): Register warning_as_error_callback in opts.c.
33323         * common.opt: Add -Wno-cpp option.
33324         * c-common.c (struct reason_option_codes_t): Map cpp warning
33325         reason codes to gcc option indexes.
33326         * (c_option_controlling_cpp_error): New function, lookup the gcc
33327         option index for a cpp warning reason code.
33328         * (c_cpp_error): Add warning reason argument, call
33329         c_option_controlling_cpp_error for diagnostic_override_option_index.
33330         * doc/invoke.texi: Document -Wno-cpp.
33331
33332 2010-04-07  Richard Guenther  <rguenther@suse.de>
33333
33334         * ipa-reference.c (mark_load): Use get_base_address.
33335         (mark_store): Likewise.
33336
33337         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
33338         inserting GIMPLE_NOPs into the IL.
33339         * tree-ssa-structalias.c (get_constraint_for_component_ref):
33340         Explicitly strip handled components and indirect references.
33341
33342         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
33343         folding address expressions.
33344         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
33345         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
33346         operand_equal_p to compare decls.
33347         (ptr_deref_may_alias_decl_p): Likewise.
33348         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
33349         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
33350         Handle reversed comparison ops.
33351         * tree-sra.c (asm_visit_addr): Use get_base_address.
33352         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
33353         * ipa-reference.c (mark_address): Use get_base_address.
33354
33355 2010-04-07  Richard Guenther  <rguenther@suse.de>
33356
33357         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
33358         Propagate constants everywhere.
33359
33360 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
33361
33362         PR debug/43516
33363         * tree.c (MAX_INT_CACHED_PREC): Define.
33364         (nonstandard_integer_type_cache): New array.
33365         (build_nonstandard_integer_type): Cache results for precision
33366         <= MAX_INT_CACHED_PREC.
33367
33368 2010-04-07  Richard Guenther  <rguenther@suse.de>
33369
33370         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
33371         -fargument-noalias-global, -fargument-noalias-anything): Remove.
33372         * common.opt: Likewise.
33373         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
33374         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
33375         (nonoverlapping_memrefs_p): Likewise.
33376         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
33377         * opts.c (common_handle_option): Handle OPT_fargument_alias,
33378         OPT_fargument_noalias, OPT_fargument_noalias_anything and
33379         OPT_fargument_noalias_global for backward compatibility.
33380
33381 2010-04-07  Richard Guenther  <rguenther@suse.de>
33382
33383         PR tree-optimization/43270
33384         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
33385         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
33386         * tree-ssa-pre.c (phi_translate_1): Adjust.
33387         (fully_constant_expression): Split out vn_reference handling to ...
33388         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
33389         Fold reads from constant strings.
33390         (vn_reference_lookup): Handle fully constant references.
33391         (vn_reference_lookup_pieces): Likewise.
33392         * Makefile.in (expmed.o-warn): Add -Wno-error.
33393
33394 2010-04-07  Martin Jambor  <mjambor@suse.cz>
33395
33396         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
33397
33398 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
33399
33400         PR driver/41594
33401         * gcc.c: Add -static-libstdc++ to list of recognized options.
33402
33403 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33404
33405         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
33406
33407 2010-04-07  Richard Guenther  <rguenther@suse.de>
33408
33409         PR middle-end/42617
33410         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
33411         bases build simple mem attributes to retain points-to information.
33412
33413 2010-04-07  Richard Guenther  <rguenther@suse.de>
33414
33415         PR middle-end/42617
33416         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
33417         preserve points-to related information.
33418
33419 2010-04-07  Richard Guenther  <rguenther@suse.de>
33420
33421         PR middle-end/42617
33422         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
33423         discard plain indirect references.
33424         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
33425         * tree.c (tree_nop_conversion): Likewise.
33426
33427 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
33428
33429         PR debug/43628
33430         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
33431
33432 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
33433
33434         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
33435         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
33436
33437 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33438
33439         * tree-if-conv.c: Fix indentation and comments.
33440
33441 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33442
33443         * tree-if-conv.c: Sort static functions in topological order.
33444
33445 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
33446
33447         * tree-if-conv.c: Fix indentation and comments.
33448
33449 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33450
33451         PR middle-end/43519
33452         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
33453         lang_hooks.types.type_for_size instead of
33454         build_nonstandard_integer_type.
33455         When converting an unsigned type to signed, double its precision.
33456         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
33457         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
33458         (graphite_create_new_loop_guard): When ub + 1 wraps around,
33459         use lb <= ub.
33460
33461 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33462
33463         PR middle-end/43519
33464         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
33465         POINTER_PLUS_EXPR for pointer types.
33466
33467 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33468
33469         PR middle-end/43519
33470         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
33471         * graphite-clast-to-gimple.c: Include langhooks.h.
33472         (max_signed_precision_type): New.
33473         (max_precision_type): Takes two types as arguments.
33474         (precision_for_value): New.
33475         (precision_for_interval): New.
33476         (gcc_type_for_interval): New.
33477         (gcc_type_for_value): New.
33478         (gcc_type_for_clast_term): New.
33479         (gcc_type_for_clast_red): New.
33480         (gcc_type_for_clast_bin): New.
33481         (gcc_type_for_clast_expr): Split up into several functions.
33482         (gcc_type_for_clast_eq): Rewritten.
33483         (compute_bounds_for_level): New.
33484         (compute_type_for_level_1): New.
33485         (compute_type_for_level): New.
33486         (gcc_type_for_cloog_iv): Removed.
33487         (gcc_type_for_iv_of_clast_loop): Rewritten.
33488         (graphite_create_new_loop): Compute the lower and upper bound types
33489         with gcc_type_for_clast_expr.
33490         (graphite_create_new_loop_guard): Same.
33491         (find_cloog_iv_in_expr): Removed.
33492         (compute_cloog_iv_types_1): Removed.
33493         (compute_cloog_iv_types): Removed.
33494         (gloog): Do not call compute_cloog_iv_types.
33495         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
33496         GBB_CLOOG_IV_TYPES.
33497         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
33498         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
33499         (GBB_CLOOG_IV_TYPES): Removed.
33500
33501 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33502
33503         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
33504         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
33505         (detect_commutative_reduction): Same.
33506
33507 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33508
33509         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
33510         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
33511         argument.
33512         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
33513         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
33514         (rewrite_commutative_reductions_out_of_ssa): Same.
33515         * passes.c (execute_function_todo): Call verify_ssa for every pass
33516         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
33517         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
33518         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
33519         with an extra argument.
33520         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
33521         verify_ssa only when the extra argument is true.
33522         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
33523         with an extra argument.
33524         (tree_transform_and_unroll_loop): Same.
33525
33526 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
33527
33528         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
33529         for all the passes of the LNO having LOOP_CLOSED_SSA.
33530         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
33531         * tree-loop-distribution.c (pass_loop_distribution): Same.
33532         * tree-pass.h (TODO_verify_loops): Removed.
33533         * tree-ssa-loop.c (pass_tree_loop_init): Same.
33534         (pass_lim): Same.
33535         (pass_tree_unswitch): Same.
33536         (pass_predcom): Same.
33537         (pass_vectorize): Same.
33538         (pass_linear_transform): Same.
33539         (pass_graphite_transforms): Same.
33540         (pass_iv_canon): Same.
33541         (pass_complete_unroll): Same.
33542         (pass_complete_unrolli): Same.
33543         (pass_parallelize_loops): Same.
33544         (pass_loop_prefetch): Same.
33545         (pass_iv_optimize): Same.
33546
33547 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
33548
33549         PR middle-end/32824
33550         * passes.c (init_optimization_passes): Move pass_lim before
33551         pass_copy_prop and pass_dce_loop.
33552
33553 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33554
33555         PR target/43667
33556         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
33557         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
33558         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
33559         MULTI_* defines for 4 argument vpermil2p* builtins.
33560
33561 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33562
33563         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
33564         * config/i386/i386.c (x86_maybe_negate_const_int): New.
33565         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
33566         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
33567         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
33568         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
33569         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
33570         Use x86_maybe_negate_const_int to output insn mnemonic.
33571         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
33572         check from instruction predicate.  Update comments.
33573         * config/i386/sync.md (sync_add<mode>): Use
33574         x86_maybe_negate_const_int to output insn mnemonic.
33575
33576 2010-04-06  Jan Hubicka  <jh@suse.cz>
33577
33578         PR tree-optimization/42906
33579         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
33580         IGNORE_SELF argument.  Set visited_control_parents for fully
33581         processed BBs.
33582         (find_obviously_necessary_stmts): Update call of
33583         mark_control_dependent_edges_necessary.
33584         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
33585
33586 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
33587
33588         * config/i386/i386.md: Remove comment about 'e' and 'E'
33589         operand modifier.
33590
33591 2010-04-06  Richard Guenther  <rguenther@suse.de>
33592
33593         PR tree-optimization/43627
33594         * tree-vrp.c (extract_range_from_unary_expr): Widenings
33595         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
33596         not varying.
33597
33598 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
33599
33600         * BASE-VER: Change to 4.6.0.
33601
33602         PR target/43638
33603         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
33604         handling.
33605
33606 2010-04-06  Richard Guenther  <rguenther@suse.de>
33607
33608         PR middle-end/43661
33609         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
33610
33611 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33612
33613         * doc/invoke.texi (Optimize Options): Document that LTO
33614         won't remove object access purely due to incompatible
33615         declarations.
33616
33617 2010-04-04  Matthias Klose  <doko@ubuntu.com>
33618
33619         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
33620         Initialize variable.
33621
33622 2010-04-03  Richard Guenther  <rguenther@suse.de>
33623
33624         PR middle-end/42509
33625         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
33626         require a non-NULL MEM_OFFSET.
33627
33628 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
33629
33630         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
33631         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
33632         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
33633         config/alpha/predicates.md, config/arm/arm.md,
33634         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
33635         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
33636         config/darwin9.h, config/darwin.c, config/darwin.h,
33637         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
33638         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
33639         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
33640         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
33641         config/mips/mips.md, config/mn10300/mn10300.c,
33642         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
33643         config/rs6000/aix.h, config/rs6000/dfp.md,
33644         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
33645         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
33646         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
33647         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
33648         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
33649         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
33650         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
33651         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
33652         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
33653         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
33654         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
33655         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
33656         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
33657         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
33658         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
33659         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
33660         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
33661         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
33662         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
33663         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
33664         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
33665         opt-functions.awk, opth-gen.awk, params.def, passes.c,
33666         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
33667         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
33668         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
33669         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
33670         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
33671         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
33672         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
33673         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
33674         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
33675         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
33676         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
33677         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
33678         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
33679         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
33680
33681 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33682
33683         PR other/43620
33684         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
33685         * aclocal.m4: Regenerate.
33686
33687 2010-04-02  Richard Guenther  <rguenther@suse.de>
33688
33689         PR tree-optimization/43629
33690         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
33691         if we have seen a constant value.
33692
33693 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
33694
33695         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
33696
33697 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
33698
33699         PR target/43469
33700         * arm.c (legitimize_tls_address): Adjust call to
33701         gen_tls_load_dot_plus_four.
33702         (arm_note_pic_base): New function.
33703         (arm_cannot_copy_insn_p): Use it.
33704         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
33705         constraint.
33706
33707 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33708
33709         PR bootstrap/43531
33710
33711         Revert:
33712         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33713
33714         * Makefile.in ($(out_object_file)): Depend on
33715         gt-$(basename $(notdir $(out_file))).h.
33716
33717 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
33718
33719         * config.gcc (lm32-*-rtems*): Add t-lm32.
33720
33721 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
33722
33723         * config.gcc: Add lm32-*-rtems*.
33724         * config/lm32/rtems.h: New file.
33725
33726 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
33727
33728         PR target/42609
33729         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
33730
33731 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
33732
33733         * dwarf2out.c (output_compilation_unit_header): For
33734         -gdwarf-4 use version 4 instead of version 3.
33735         (output_line_info): For version 4 and above emit additional
33736         maximum ops per insn header field.
33737         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
33738
33739         * dwarf2out.c (is_c_family, is_java): Remove.
33740         (lower_bound_default): New function.
33741         (add_bound_info, gen_descr_array_type_die): Use it.
33742
33743 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
33744
33745         PR debug/43325
33746         * dwarf2out.c (gen_variable_die): Allow debug info for variable
33747         re-declaration when it happens in a function.
33748
33749 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
33750
33751         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
33752         (cgraph_remove_function_insertion_hook): Same.
33753         (cgraph_call_function_insertion_hooks): Same.
33754
33755 2010-04-01  Richard Guenther  <rguenther@suse.de>
33756
33757         PR middle-end/43614
33758         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
33759         and TREE_THIS_VOLATILE.
33760         (copy_ref_info): Likewise.
33761         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
33762         * tree.c (build6_stat): Ignore side-effects of all but arg5
33763         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
33764         TARGET_MEM_REF.
33765
33766 2010-04-01  Richard Guenther  <rguenther@suse.de>
33767
33768         PR tree-optimization/43607
33769         * ipa-type-escape.c (check_call): Do not access non-existing
33770         arguments.
33771
33772 2010-04-01  Richard Guenther  <rguenther@suse.de>
33773
33774         PR middle-end/43602
33775         Revert
33776         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
33777                     Jack Howarth  <howarth@bromo.med.uc.edu>
33778
33779         * tree-profile.c (tree_init_ic_make_global_vars): Make static
33780         variables TLS.
33781
33782 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33783
33784         * doc/install.texi (Prerequisites): Document libelf usability on
33785         IRIX 5/6 and Solaris 2.
33786         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
33787         Update GNU as, GNU ld requirements.
33788         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
33789         Document Sun Studio compiler download.
33790         Update and simplify as, ld recommendations.
33791         (Specific, *-*-solaris2.7): Note obsoletion, removal.
33792
33793 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33794
33795         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
33796         with_tune_32 to pentium4.
33797
33798 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
33799
33800         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
33801
33802 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33803
33804         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
33805         obsoletion, removal.
33806         Update IDO URL.
33807         Document GNU as requirement.
33808         Update configure requirements.
33809         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
33810         Recomment IRIX 6.5.18+.
33811         Document IDF/IDL requirement.
33812         Document GNU as requirement.
33813         Document GNU ld bootstrap failure.
33814         Remove freeware.sgi.com reference.
33815
33816 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33817
33818         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
33819         UNIX V4.0, V5.0 obsoletion, removal.
33820         Remove --with-gc=simple reference.
33821         Update VM requirements during bootstrap.
33822         Remove -oldas bootstrap description.
33823         Update binutils reference.
33824         Remove comparison failure note.
33825
33826 2010-03-31  Richard Guenther  <rguenther@suse.de>
33827             Zdenek Dvorak  <ook@ucw.cz>
33828             Sebastian Pop  <sebastian.pop@amd.com>
33829
33830         PR middle-end/43464
33831         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
33832         with multiple arguments.
33833         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
33834
33835 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33836
33837         * graphite-dependences.c (print_pddr): Call print_pdr with an
33838         extra argument.
33839         * graphite-poly.c (debug_pdr): Add an extra argument for the
33840         verbosity level.
33841         (print_pdr): Same.
33842         (print_pbb_domain): Same.
33843         (print_pbb): Same.
33844         (print_scop_context): Same.
33845         (print_scop): Same.
33846         (print_cloog): Same.
33847         (debug_pbb_domain): Same.
33848         (debug_pbb): Same.
33849         (print_pdrs): Same.
33850         (debug_pdrs): Same.
33851         (debug_scop_context): Same.
33852         (debug_scop): Same.
33853         (debug_cloog): Same.
33854         (print_scop_params): Same.
33855         (debug_scop_params): Same.
33856         (print_iteration_domain): Same.
33857         (print_iteration_domains): Same.
33858         (debug_iteration_domain): Same.
33859         (debug_iteration_domains): Same.
33860         (print_scattering_function): Same.
33861         (print_scattering_functions): Same.
33862         (debug_scattering_function): Same.
33863         (debug_scattering_functions): Same.
33864         * graphite-poly.h (debug_pdr): Update declaration.
33865         (print_pdr): Same.
33866         (print_pbb_domain): Same.
33867         (print_pbb): Same.
33868         (print_scop_context): Same.
33869         (print_scop): Same.
33870         (print_cloog): Same.
33871         (debug_pbb_domain): Same.
33872         (debug_pbb): Same.
33873         (print_pdrs): Same.
33874         (debug_pdrs): Same.
33875         (debug_scop_context): Same.
33876         (debug_scop): Same.
33877         (debug_cloog): Same.
33878         (print_scop_params): Same.
33879         (debug_scop_params): Same.
33880         (print_iteration_domain): Same.
33881         (print_iteration_domains): Same.
33882         (debug_iteration_domain): Same.
33883         (debug_iteration_domains): Same.
33884         (print_scattering_function): Same.
33885         (print_scattering_functions): Same.
33886         (debug_scattering_function): Same.
33887         (debug_scattering_functions): Same.
33888
33889 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33890
33891         * graphite-poly.c (print_scattering_function_1): New.
33892         (print_scattering_function): Call it.
33893         (print_scop_params): Remove spaces at the end of lines.
33894         (print_cloog): New.
33895         (debug_cloog): New.
33896         * graphite-poly.h (print_cloog): Declared.
33897         (debug_cloog): Declared.
33898
33899 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33900
33901         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
33902         in loop->header.
33903         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
33904         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
33905         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
33906         to switch between adding the IV bump in loop->latch or in loop->header.
33907
33908 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
33909
33910         * graphite-poly.c (print_scattering_function): Pretty print following
33911         the scoplib format.
33912         (print_pdr): Same.
33913         (print_pbb_domain): Same.
33914         (dump_gbb_cases): Same.
33915         (dump_gbb_conditions): Same.
33916         (print_pdrs): Same.
33917         (print_pbb): Same.
33918         (print_scop_params): Same.
33919         (print_scop_context): Same.
33920         (print_scop): Same.
33921         (print_pbb_body): New.
33922         (lst_indent_to): New.
33923         (print_lst): Start new lines with a #.
33924         * graphite-poly.h (pbb_bb): New.
33925         (pbb_index): Use pbb_bb.
33926         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
33927         disjuncts.
33928         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
33929
33930 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33931
33932         * dwarf2out.c (size_of_die): For -gdwarf-4 use
33933         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
33934         and 0 instead of 1 for dw_val_class_flag.
33935         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
33936         dw_val_class_range_list, dw_val_class_loc_list,
33937         dw_val_class_lineptr and dw_val_class_macptr, use
33938         DW_FORM_flag_present for dw_val_class_flag and
33939         DW_FORM_exprloc for dw_val_class_loc.
33940         (output_die): For -gdwarf-4 print dw_val_class_loc
33941         size as uleb128 instead of 1 or 2 bytes and don't print
33942         anything for dw_val_class_flag.
33943
33944         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
33945         instead of cselib_lookup following by tweaking locs->setting_insn.
33946
33947         PR bootstrap/43596
33948         * cselib.c (cselib_process_insn): Clear cselib_current_insn
33949         even before returning from label, setjmp call or volatile asm
33950         handling.
33951
33952 2010-03-31  Richard Guenther  <rguenther@suse.de>
33953
33954         PR middle-end/43600
33955         * cgraphunit.c (cgraph_output_in_order): Do not allocate
33956         temporary data on stack.
33957
33958 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33959
33960         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
33961         (PUSHSECTION_ASM_OP): Remove.
33962         (POPSECTION_ASM_OP): Remove.
33963         (PUSHSECTION_FORMAT): Remove.
33964         * config/sol2.h (PUSHSECTION_FORMAT): Define.
33965         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
33966         * config/sol2.c (solaris_output_init_fini): Use it.
33967
33968 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33969
33970         PR 43574
33971         * opt-functions.awk (var_type_struct): Use signed char type
33972         for simple variables.
33973
33974 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33975
33976         * config/sol2.c: Include output.h.
33977         (solaris_assemble_visibility): New function.
33978         * config/t-sol2 (sol2.o): Add output.h dependency.
33979         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
33980         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
33981         Redefine.
33982
33983 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
33984
33985         PR target/43580
33986         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
33987         V2SImode or XFmode on PRE_DEC.
33988
33989         PR debug/43557
33990         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
33991         BLKmode.
33992
33993 2010-03-31  Jie Zhang  <jie@codesourcery.com>
33994
33995         PR 43562
33996         * reload.h (caller_save_initialized_p): Declare.
33997         * toplev.c (backend_init_target): Don't call
33998         init_caller_save but set caller_save_initialized_p to false.
33999         * caller-save.c (caller_save_initialized_p): Define.
34000         (init_caller_save): Check caller_save_initialized_p.
34001         * ira.c (ira): Call init_caller_save if flag_caller_saves.
34002
34003 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34004
34005         PR target/39048
34006         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
34007         and soft-fp/t-softfp to tmake_file.
34008         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
34009         (LIBGCC2_TF_CEXT): Define.
34010         (TF_SIZE): Define.
34011
34012 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
34013
34014         PR debug/42977
34015         * cselib.c (n_useless_values): Document handling of debug locs.
34016         (n_useless_debug_values, n_debug_values): New variables.
34017         (new_elt_loc_list): Don't add to debug values, keep count.
34018         (promote_debug_loc): New.
34019         (cselib_reset_table): Zero new variables.
34020         (entry_and_rtx_equal_p): Promote debug locs.
34021         (discard_useless_locs): Increment n_useless_debug_values for
34022         debug values.
34023         (remove_useless_values): Adjust n_useless_values and n_debug_values
34024         with n_useless_debug_values.
34025         (add_mem_for_addr): Promote debug locs.
34026         (cselib_lookup_mem): Likewise.
34027         (cselib_lookup_addr): Renamed to...
34028         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
34029         (cselib_log_lookup): ... this.  Turn into...
34030         (cselib_lookup_addr): ... new wrapper.
34031         (cselib_lookup_from_insn): New.
34032         (cselib_invalidate_regno): Increment n_useless_debug_values for
34033         debug values.
34034         (cselib_invalidate_mem): Likewise.
34035         (cselib_process_insn): Take n_deleted and n_debug_values into
34036         account to guard remove_useless_value call.
34037         (cselib_finish): Zero n_useless_debug_values.
34038         * cselib.h (cselib_lookup_from_insn): Declare.
34039         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
34040         (sched_analyze_2): Likewise.
34041
34042 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
34043
34044         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
34045         functions.
34046         (adjust_mems): Replace narrowing SUBREG of expression containing
34047         just PLUS, MINUS, MULT and ASHIFT of registers and constants
34048         with operations in the narrower mode.
34049
34050         PR debug/43593
34051         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
34052         regs_invalidated_by_call instead all call_used_reg_set registers.
34053
34054 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
34055
34056         PR middle-end/43430
34057         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
34058         pointer comparisons with types_compatible_p.
34059         * tree-vect-stmts.c (vectorizable_call): Same.
34060         (vectorizable_condition): Same.
34061
34062 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34063
34064         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
34065         stack check if the mask would be zero.
34066
34067 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
34068             Jack Howarth  <howarth@bromo.med.uc.edu>
34069
34070         * tree-profile.c (tree_init_ic_make_global_vars): Make static
34071         variables TLS.
34072
34073 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
34074
34075         PR other/25232
34076         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
34077         and __unordtf2.
34078         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
34079         Include ___unordxf2 and ___unordtf2.
34080         * config/i386/libgcc-glibc.ver: Do not define inheritance from
34081         GCC_4.4.0 here.
34082
34083 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
34084
34085         * config/lm32/t-lm32: New file.
34086         * config.gcc: Use the above file when targetting lm32.
34087
34088 2010-03-28  Duncan Sands  <baldrick@free.fr>
34089
34090         * Makefile.in (PLUGIN_HEADERS): Add except.h.
34091
34092 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34093
34094         PR middle-end/43431
34095         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
34096         Improve vectorization cost model diagnostic.
34097
34098 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
34099
34100         PR middle-end/43436
34101         * tree-vect-data-refs.c (vect_analyze_data_refs): When
34102         compute_data_dependences_for_loop returns false, early exit
34103         and output an extra diagnostic for the failed data reference
34104         analysis.
34105
34106 2010-03-29  Richard Guenther  <rguenther@suse.de>
34107
34108         PR tree-optimization/43560
34109         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
34110         (can_sm_ref_p): Treat stores to readonly locations as trapping.
34111
34112 2010-03-29  Jie Zhang  <jie@codesourcery.com>
34113
34114         PR 43564
34115         * toplev.c (process_options): Set optimization_default_node
34116         and optimization_current_node.
34117         * opts.c (decode_options): Don't set optimization_default_node
34118         and optimization_current_node.
34119
34120 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
34121
34122         * config/rtems.h: Abandon -qrtems_debug.
34123
34124 2010-03-28  Jan Hubicka  <jh@suse.cz>
34125
34126         PR tree-optimization/43505
34127         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
34128         map should not be copied.
34129
34130 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34131
34132         PR middle-end/41674
34133         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
34134         cdtors, set DECL_PRESERVE_P.
34135         * ipa.c (cgraph_externally_visible_p): Return true if declaration
34136         should be preseved.
34137
34138 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
34139
34140         PR tree-optimization/43528
34141         * stor-layout.c (place_field): Check that constant fits into
34142         unsigned HWI when skipping calculation of MS bitfield layout.
34143
34144 2010-03-27  Jan Hubicka  <jh@suse.cz>
34145
34146         PR middle-end/43391
34147         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
34148         notice_global_symbol work.
34149
34150 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
34151
34152         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
34153         instead of dwarf2out_decl.
34154         (struct var_loc_node): Remove section_label field.
34155         (dwarf2out_function_decl): New function.
34156         (dwarf2out_var_location): Don't set section_label field.
34157         (dwarf2out_begin_function): Don't empty decl_loc_table here.
34158
34159 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
34160
34161         PR tree-optimization/43544
34162         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34163         First argument for builtin vectorized function hook is now a
34164         tree to be able to distinguish between machine specific and
34165         standard builtins.
34166         * targhooks.c (default_builtin_vectorized_function): Ditto.
34167         * targhooks.h (default_builtin_vectorized_function): Ditto.
34168         * target.h (struct gcc_target): Ditto.
34169         * tree-vect-stmts.c (vectorizable_function): Ditto.
34170         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
34171         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
34172         Ditto.
34173
34174 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
34175
34176         PR c/43381
34177         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
34178         nested binding iff it is a FUNCTION_DECL.
34179         (store_parm_decls_newstyle): Pass nested=true to bind for
34180         FUNCTION_DECLs amongst parameters.
34181
34182 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34183
34184         * var-tracking.c (vt_expand_loc_callback): Don't run
34185         cselib_expand_value_rtx_cb in dummy mode if
34186         cselib_dummy_expand_value_rtx_cb returned false.
34187
34188         * var-tracking.c (emit_note_insn_var_location): For one part
34189         notes with offset 0, don't add EXPR_LIST around the location.
34190         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
34191         add_location_or_const_value_attribute): Adjust for that change.
34192
34193         PR debug/43540
34194         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
34195         into first operand and location into second.
34196         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
34197         dw_cfi_oprnd_loc for DW_CFA_expression.
34198         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
34199         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
34200         assume first argument is regnum and second argument is location.
34201
34202 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34203
34204         PR target/42113
34205         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
34206         of scratch register to DImode.  Split to DImode comparison operator.
34207         Use SImode subreg of scratch register in the multiplication.
34208         (*cmp_sadd_sidi): Ditto.
34209         (*cmp_ssub_si): Ditto.
34210         (*cmp_ssub_sidi): Ditto.
34211
34212 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
34213
34214         PR target/43524
34215         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
34216         Remove invalid assert and wrong comment.
34217
34218 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
34219
34220         PR debug/43516
34221         * flags.h (final_insns_dump_p): New extern.
34222         * final.c (final_insns_dump_p): New variable.
34223         (rest_of_clean_state): Set it before -fdump-final-insns=
34224         dumping, clear afterwards.
34225         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
34226         MEM_ALIAS_SET on MEMs.
34227
34228 2010-03-26  David S. Miller  <davem@davemloft.net>
34229
34230         * configure.ac: Fix sparc GOTDATA_OP bug check.
34231         * configure: Rebuild.
34232
34233 2010-03-26  Alan Modra  <amodra@gmail.com>
34234
34235         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
34236
34237 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34238
34239         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
34240         TLS_SECTION_ASM_FLAG.
34241
34242 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
34243
34244         PR bootstrap/43511
34245         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
34246         Clear first_function_block_is_cold.
34247
34248         PR c/43385
34249         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
34250         argument if the argument is truth_value_p.
34251
34252 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
34253
34254         * config/rs6000/constraints.md: Update copyright year for my changes.
34255
34256         PR target/43484
34257         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
34258         used in reg+reg addressing, swap registers.
34259
34260 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34261
34262         PR debug/43293
34263         * target.h (struct gcc_target): Add code_end hook.
34264         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
34265         if not yet defined.
34266         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
34267         * toplev.c (compile_file): Call targetm.asm_out.code_end
34268         hook before unwind info/debug info output.
34269         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
34270         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
34271         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34272         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
34273         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
34274         * config/i386/i386.c (ix86_file_end): Renamed to...
34275         (ix86_code_end): ... this.  Make static.  Don't call
34276         file_end_indicate_exec_stack.  Emit unwind info using
34277         final_start_function/final_end_function.
34278         (darwin_x86_file_end): Remove.
34279         (TARGET_ASM_CODE_END): Define.
34280         * config/i386/i386.h (TARGET_ASM_FILE_END,
34281         NEED_INDICATE_EXEC_STACK): Don't define.
34282         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
34283         (TARGET_ASM_FILE_END): Define to darwin_file_end.
34284         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
34285         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
34286
34287         PR target/43498
34288         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
34289         at the beginning and final_end_function at the end.
34290         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
34291
34292 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34293
34294         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
34295         and Sun as TLS syntax.
34296         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
34297         * configure: Regenerate.
34298         * config.in: Regenerate.
34299         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
34300         (default_elf_asm_named_section): Use it.
34301         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
34302         (i386_output_dwarf_dtprel): Likewise.
34303         (output_addr_const_extra): Likewise.
34304         (output_pic_addr_const): Lowercase @GOTTPOFF.
34305         (output_addr_const_extra): Likewise.
34306         (output_pic_addr_const): Lowercase @GOTNTPOFF.
34307         (output_addr_const_extra): Likewise.
34308         (output_pic_addr_const): Lowercase @INDNTPOFF.
34309         (output_addr_const_extra): Likewise.
34310         (output_pic_addr_const): Lowercase @NTPOFF.
34311         (output_addr_const_extra): Likewise.
34312         (output_pic_addr_const): Lowercase @TPOFF.
34313         (output_addr_const_extra): Likewise.
34314         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
34315         (*tls_global_dynamic_64): Likewise.
34316         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
34317         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
34318
34319         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
34320         (ASM_OUTPUT_TLS_COMMON): Use it.
34321         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
34322
34323         PR target/38118
34324         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
34325         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
34326         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
34327         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
34328         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34329         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
34330
34331 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34332
34333         * config/i386/i386.c (override_options): Don't accept
34334         -mtls-dialect=sun any longer.
34335         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
34336         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
34337         (*tls_local_dynamic_base_32_sun): Likewise.
34338         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
34339
34340 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
34341
34342         PR debug/43508
34343         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34344         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
34345
34346         PR debug/43479
34347         * ira.c (adjust_cleared_regs): New function.
34348         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
34349
34350         PR debug/19192
34351         PR debug/43479
34352         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
34353         from gimple_block.
34354         * expr.c (expand_expr_real): Restore previous
34355         curr_insn_source_location and curr_insn_block after
34356         expand_expr_real_1 call.
34357         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
34358         instead of expand_expr_real_1.
34359
34360 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
34361
34362         PR rtl-optimization/43413
34363         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
34364         hard regs too.
34365
34366 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
34367
34368         PR target/43348
34369         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
34370         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
34371
34372 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
34373
34374         * config/i386/i386.c (ix86_target_string): Add -mfma.
34375         Fix a typo in comment.
34376
34377 2010-03-22  Mike Stump  <mikestump@comcast.net>
34378
34379         PR target/23071
34380         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
34381         Don't overly align based upon packed packed fields.
34382
34383 2010-03-22  Jason Merrill  <jason@redhat.com>
34384
34385         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
34386         Use () rather than [], and move before the element type.
34387
34388 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34389
34390         * doc/configfiles.texi (Configuration Files): Removed
34391         fixinc/Makefile*, intl/Makefile.*.
34392         * doc/makefile.texi: Fixed markup. Abstract from version
34393         control system used.
34394         (Makefile): Removed obsolete java/parse.y example.
34395         * doc/sourcebuild.texi: Likewise.
34396         (Top Level): Added config, gnattools, libdecnumber, libgcc,
34397         libgomp, libssp.  Removed fastjar.
34398         (Miscellaneous Docs): Clarify location.
34399         Added COPYING3, COPYING3.LIB.
34400         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
34401
34402 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34403
34404         PR target/38085
34405         * config/i386/i386.c (x86_function_profiler)
34406         [!NO_PROFILE_COUNTERS]: Fix typo.
34407         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
34408         instead of callq.
34409
34410 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
34411             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34412
34413         * doc/sourcebuild.texi (Test Directives): Split into six
34414         subsections, with most of the current text in new subsections
34415         Directives, Selectors, and Final Actions.
34416         (Directives): Split list of test directives into multiple
34417         subsubsections.
34418         (Selectors): Describe use and syntax of selectors.
34419         (Effective-Target Keywords): Describe all existing keywords.
34420         (Add Options): Describe features for dg-add-options.
34421         (Require Support): Describe variants of dg-require-support.
34422         (Final Actions): Describe commands to use in dg-final.
34423
34424 2010-03-22  Michael Matz  <matz@suse.de>
34425
34426         PR middle-end/43475
34427         * recog.c (validate_replace_rtx_group): Replace also in
34428         REG_EQUAL and REG_EQUIV notes.
34429
34430 2010-03-22  Richard Guenther  <rguenther@suse.de>
34431
34432         PR tree-optimization/43390
34433         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
34434         sure vector extracts are type correct.
34435
34436 2010-03-22  Richard Guenther  <rguenther@suse.de>
34437
34438         PR middle-end/40106
34439         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
34440         x * sqrt (x) even when optimizing for size if the target
34441         has native support for sqrt.
34442
34443 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
34444
34445         * varasm.c (make_decl_rtl_for_debug): Also clear
34446         flag_mudflap for the duration of make_decl_rtl call.
34447
34448         PR debug/43443
34449         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
34450         locs from preserved VALUEs.
34451
34452 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34453
34454         PR middle-end/42718
34455         * pa.md (movmemsi): Set align to one if zero.
34456         (movmemdi): Likewise.
34457
34458 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
34459
34460         PR target/42321
34461         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
34462         with their corresponding prologue pushes.
34463
34464 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
34465
34466         PR target/43156
34467         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
34468         at the begining or end.
34469         (spu_expand_epilogue): Likewise.
34470
34471 2010-03-20  Richard Guenther  <rguenther@suse.de>
34472
34473         PR rtl-optimization/43438
34474         * combine.c (make_extraction): Properly zero-/sign-extend an
34475         extraction of the low part of a CONST_INT.  Also handle
34476         CONST_DOUBLE.
34477
34478 2010-03-19  Mike Stump  <mikestump@comcast.net>
34479
34480         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
34481         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
34482         (override_options): Use SUBTARGET32_DEFAULT_CPU.
34483
34484 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
34485
34486         PR c/43211
34487         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
34488         an error.
34489
34490 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
34491
34492         PR rtl-optimization/42258
34493         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
34494         use that may match DEF.
34495
34496         PR target/40697
34497         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
34498         the cost of loading the constant rather than assuming
34499         COSTS_N_INSNS (1).
34500         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
34501         outer code is AND, do the same tests as the andsi3 expander and
34502         return COSTS_N_INSNS (1) if and is cheap.
34503
34504         * optabs.c (avoid_expensive_constant): Fix formatting.
34505
34506 2010-03-19  Michael Matz  <matz@suse.de>
34507
34508         PR c++/43116
34509         * attribs.c (decl_attributes): When rebuilding a function pointer
34510         type use the same qualifiers as the original pointer type.
34511
34512 2010-03-19  Martin Jambor  <mjambor@suse.cz>
34513
34514         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
34515         and is_gimple_ip_invariant_address.
34516
34517 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34518
34519         Revert
34520         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34521
34522         * config/arm/arm.c (arm_override_options): Turn off
34523         flag_dwarf2_cfi_asm for AAPCS variants.
34524
34525 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34526
34527         PR target/43399
34528         * config/arm/arm.c (emit_multi_reg_push): Update comments.
34529         Use PRE_MODIFY instead of PRE_DEC.
34530         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
34531         (vfp_emit_fstmd): Likewise.
34532
34533 2010-03-19  Michael Matz  <matz@suse.de>
34534
34535         PR target/43305
34536         * builtins.c (expand_builtin_interclass_mathfn,
34537         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
34538         if that fails.
34539
34540 2010-03-19  Richard Guenther  <rguenther@suse.de>
34541
34542         PR tree-optimization/43415
34543         * tree-ssa-pre.c (phi_translate): Split out worker to ...
34544         (phi_translate_1): ... this.
34545         (phi_translate): Move all caching here.  Cache all NARY
34546         and REFERENCE translations.
34547
34548 2010-03-19  David S. Miller  <davem@davemloft.net>
34549
34550         With help from Eric Botcazou.
34551         * config/sparc/sparc.c: Include dwarf2out.h.
34552         (emit_pic_helper): Delete.
34553         (pic_helper_symbol_name): Delete.
34554         (pic_helper_emitted_p): Delete.
34555         (pic_helper_needed): New.
34556         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
34557         (get_pc_thunk_name): New.
34558         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
34559         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
34560         Set pic_helper_needed to true.  Don't call emit_pic_helper.
34561         (sparc_expand_prologue): Update load_pic_register call.
34562         (sparc_output_mi_thunk): Likewise.
34563         (sparc_file_end): Emit a hidden comdat symbol for the PIC
34564         thunk if possible.  Output CFI information as needed.
34565
34566 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34567             Jack Howarth  <howarth@bromo.med.uc.edu>
34568
34569         PR target/36399
34570         * config/i386/i386.h: Fix ABI on darwin x86-32.
34571
34572 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
34573
34574         * tree.h: Declare make_decl_rtl_for_debug.
34575         * varasm.c (make_decl_rtl_for_debug): New.
34576         * dwarf2out.c (rtl_for_decl_location): Call it.
34577         * cfgexpand.c (expand_debug_expr): Call it.
34578
34579 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34580
34581         PR bootstrap/43399
34582         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
34583         mem_mode.
34584
34585         PR bootstrap/43403
34586         * var-tracking.c (vt_init_cfa_base): Do nothing if
34587         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
34588
34589 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
34590
34591         PR debug/42873
34592         * var-tracking.c (canonicalize_vars_star): New.
34593         (dataflow_post_merge_adjust): Use it.
34594
34595 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
34596
34597         PR debug/43058
34598         * var-tracking.c (non_suitable_const): New function.
34599         (add_uses): For DEBUG_INSNs with constants, don't record any
34600         value, instead just the constant value itself.
34601         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
34602         is not VAR_LOC_UNKNOWN_P, set var to the constant.
34603         (emit_notes_in_bb): Likewise.
34604         (emit_note_insn_var_location): For onepart variables if
34605         cur_loc is a VOIDmode constant, use DECL_MODE.
34606
34607 2010-03-18  Martin Jambor  <mjambor@suse.cz>
34608
34609         PR middle-end/42450
34610         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
34611         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
34612         all non-clones.  Moved call redirection...
34613         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
34614         (cgraph_materialize_all_clones): Dispose of all
34615         combined_args_to_skip bitmaps.
34616         (verify_cgraph_node): Do not check for edges pointing to wrong
34617         nodes in inline clones.
34618         * tree-inline.c (copy_bb): Call
34619         cgraph_redirect_edge_call_stmt_to_callee.
34620         * ipa.c (cgraph_remove_unreachable_nodes): Call
34621         cgraph_node_remove_callees even when there are used clones.
34622
34623 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34624
34625         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
34626
34627 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
34628
34629         PR target/43383
34630         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
34631         for 32bit.
34632
34633 2010-03-18  Michael Matz  <matz@suse.de>
34634
34635         PR middle-end/43419
34636         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
34637         into sqrt(x) if we need to preserve signed zeros.
34638
34639 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
34640             Eric Botcazou  <ebotcazou@adacore.com>
34641
34642         PR rtl-optimization/43360
34643         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
34644         note if we don't know its invariant status.
34645
34646 2010-03-18  Michael Matz  <matz@suse.de>
34647
34648         PR tree-optimization/43402
34649         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
34650         PHI chains of ssa names registered for update.
34651
34652 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
34653
34654         PR target/42427
34655         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
34656         non-offsettable and pre_modify update addressing.
34657         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
34658         and "2" alternatives "#".
34659         (*movdd_softfloat32): Make all alternatives "#";
34660         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
34661         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
34662         (*movdf_softfloat32): Make all alternatives "#";
34663         (movdi): Use the new DIFD mode iterator to create a common splitter
34664         for movdi, movdf and movdd patterns.
34665
34666 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
34667
34668         * common.opt (dumpdir): Remove redundant tab.
34669
34670 2010-03-17  Martin Jambor  <mjambor@suse.cz>
34671
34672         PR tree-optimization/43347
34673         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
34674         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
34675
34676 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
34677
34678         PR rtl-optimization/42216
34679         * regrename.c (create_new_chain): New function, broken out from...
34680         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
34681         appending a use to an empty chain.
34682         (build_def_use): Remove previous changes that convert OP_INOUT to
34683         OP_OUT operands; instead detect the case where an OP_INOUT operand
34684         uses a previously untracked register and create an empty chain for it.
34685
34686 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34687
34688         * doc/extend.texi (Function Attributes): Rewrite unfinished
34689         sentence in ms_abi documentation.
34690
34691 2010-03-17  Alan Modra  <amodra@gmail.com>
34692
34693         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
34694         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
34695         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
34696         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
34697
34698 2010-03-16  Richard Henderson  <rth@redhat.com>
34699
34700         PR middle-end/43365
34701         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
34702         (lower_try_finally): Save and restore eh_seq around the expansion
34703         of the try-finally.
34704
34705 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34706
34707         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
34708         statements before splitting block.
34709
34710 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34711
34712         * doc/sourcebuild.texi (Testsuites): Fix markup.
34713         Use pathnames relative to gcc/testsuite.
34714         (Test Directives): Move description of how timeout is determined.
34715         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
34716         (C Tests): Correct gcc.misc-tests directory.
34717         Framework tests now live in gcc.test-framework.
34718
34719 2010-03-16  Richard Guenther  <rguenther@suse.de>
34720
34721         PR middle-end/43379
34722         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
34723         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
34724
34725 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
34726             Alexandre Oliva  <aoliva@redhat.com>
34727
34728         PR tree-optimization/42917
34729         * lambda-code.c (remove_iv): Skip debug statements.
34730         (lambda_loopnest_to_gcc_loopnest): Likewise.
34731         (not_interesting_stmt): Debug statements are not interesting.
34732
34733 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
34734
34735         PR debug/43051
34736         PR debug/43092
34737         * cselib.c (cselib_preserve_constants,
34738         cfa_base_preserved_val): New static variables.
34739         (preserve_only_constants): New function.
34740         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
34741         clear its REG_VALUES.  If cselib_preserve_constants, don't
34742         empty the whole hash table, but preserve there VALUEs with constants,
34743         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
34744         (cselib_preserve_cfa_base_value): New function.
34745         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
34746         (cselib_init): Change argument to int bitfield.  Set
34747         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
34748         is in it.
34749         (cselib_finish): Clear cselib_preserve_constants and
34750         cfa_base_preserved_val.
34751         * cselib.h (enum cselib_record_what): New enum.
34752         (cselib_init): Change argument to int.
34753         (cselib_preserve_cfa_base_value): New prototype.
34754         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
34755         * dse.c (dse_step1): Likewise.
34756         * cfgcleanup.c (thread_jump): Likewise.
34757         * sched-deps.c (sched_analyze): Likewise.
34758         * gcse.c (local_cprop_pass): Likewise.
34759         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
34760         If FN is non-NULL, call the callback always and whenever it returns
34761         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
34762         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
34763         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
34764         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
34765         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
34766         * var-tracking.c: Include recog.h.
34767         (bb_stack_adjust_offset): Remove.
34768         (vt_stack_adjustments): Don't call it, instead just gather the
34769         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
34770         (adjust_stack_reference): Remove.
34771         (compute_cfa_pointer): New function.
34772         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
34773         (struct adjust_mem_data): New type.
34774         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
34775         functions.
34776         (get_address_mode): New function.
34777         (replace_expr_with_values): Use it.
34778         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
34779         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
34780         (adjust_sets): Remove.
34781         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
34782         Use get_address_mode.
34783         (get_adjusted_src): Remove.
34784         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
34785         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
34786         (add_with_sets): Don't call adjust_sets.
34787         (fp_setter, vt_init_cfa_base): New functions.
34788         (vt_initialize): Change return type to bool.  Move most of pool etc.
34789         initialization to the beginning of the function from end.  Pass
34790         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
34791         If !frame_pointer_needed, call vt_stack_adjustment before mos
34792         vector is filled, call vt_init_cfa_base if argp/framep has been
34793         eliminated to sp.  If frame_pointer_needed and argp/framep has
34794         been eliminated to hard frame pointer, set
34795         hard_frame_pointer_adjustment and call vt_init_cfa_base after
34796         encountering fp setter in the prologue.  For MO_ADJUST, call
34797         log_op_type before pusing the op into mos vector, not afterwards.
34798         Call adjust_insn before cselib_process_insn/add_with_sets,
34799         call cancel_changes (0) afterwards.
34800         (variable_tracking_main_1): Adjust for vt_initialize calling
34801         vt_stack_adjustments and returning whether it succeeded or not.
34802
34803 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
34804
34805         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
34806         debug statements.
34807
34808 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
34809
34810         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
34811         has been set.
34812         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
34813         drap_reg has not been set.
34814
34815 2010-03-15  Michael Matz  <matz@suse.de>
34816
34817         PR middle-end/43300
34818         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
34819         use it to expand block copies.
34820         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
34821         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
34822         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
34823
34824 2010-03-15  Richard Guenther  <rguenther@suse.de>
34825
34826         PR tree-optimization/43367
34827         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
34828         elimination check.
34829
34830 2010-03-15  Richard Guenther  <rguenther@suse.de>
34831
34832         PR tree-optimization/43317
34833         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
34834
34835 2010-03-15  Martin Jambor  <mjambor@suse.cz>
34836
34837         PR tree-optimization/43141
34838         * tree-sra.c (create_abstract_origin): New function.
34839         (modify_function): Call create_abstract_origin.
34840
34841 2010-03-15  Chris Demetriou  <cgd@google.com>
34842
34843         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
34844         wasn't copied.
34845
34846 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34847
34848         PR middle-end/43354
34849         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
34850         call insert_out_of_ssa_copy for default definitions.
34851
34852 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34853
34854         * graphite-clast-to-gimple.c (my_long_long): Defined.
34855         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
34856         * graphite-sese-to-poly.c (my_long_long): Defined.
34857         (scop_ivs_can_be_represented): Use it.
34858
34859 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34860
34861         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
34862         graphite-max-bbs-per-function, and loop-block-tile-size.
34863         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
34864         with "maximum".
34865         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
34866
34867 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34868
34869         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
34870         forward declaration.
34871         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
34872         (add_upper_bounds_from_estimated_nit): New.
34873         (build_loop_iteration_domains): Use it.
34874
34875 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34876
34877         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
34878
34879 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34880
34881         PR middle-end/43306
34882         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
34883         should be an INTEGER_CST.  Also handle CASE_CONVERT.
34884
34885 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34886
34887         * graphite.c (graphite_initialize): To bound the number of bbs per
34888         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
34889         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
34890         * doc/invoke.texi: Document it.
34891
34892 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34893
34894         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
34895         * graphite-sese-to-poly.h (build_poly_scop): Same.
34896
34897 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
34898
34899         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
34900         the number of parameters in the scop.  Use as an upper bound
34901         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
34902         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
34903         * doc/invoke.texi: Document it.
34904
34905 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
34906
34907         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
34908         * doc/c-tree.texi: Remove.
34909         * doc/generic.texi: Merge c-tree.texi here.
34910         * doc/gccint.texi (Trees): Remove menu entry.
34911         (c-tree.texi): Remove @include.
34912         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
34913         * doc/languages.texi (Reading RTL): Ditto.
34914
34915 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
34916
34917         PR target/42869
34918         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
34919
34920 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
34921
34922         PR middle-end/42431
34923         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
34924         code added to work around reload clobbering CONST insns.
34925
34926 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
34927
34928         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
34929         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
34930         (cselib_preserve_only_values): Remove retain argument, don't
34931         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
34932         * cselib.h (cselib_preserve_only_values): Remove retain argument.
34933         * var-tracking.c (micro_operation): Move insn field before union.
34934         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
34935         (struct variable_tracking_info_def): Remove n_mos field, change
34936         mos into a vector of micro_operations.
34937         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
34938         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
34939         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
34940         changing into a vector.
34941         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
34942         come before all other uops generated by add_stores.
34943         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
34944         argument removal.
34945         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
34946         a vector.  Run just one pass over the bbs instead of separate counting
34947         and computation phase.
34948         (vt_finalize): Free VTI (bb)->mos vector instead of array.
34949
34950         PR debug/43329
34951         * tree-inline.c (remap_decls): Put old_var rather than origin_var
34952         into *nonlocalized_list vector.
34953         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
34954         even if origin is non-NULL.
34955         (gen_variable_die): Likewise.
34956         (process_scope_var): Don't change origin.
34957         (gen_decl_die): Likewise.
34958         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
34959         before adding new edges instead of after it, fix moving over
34960         debug stmts.
34961
34962 2010-03-11  David S. Miller  <davem@davemloft.net>
34963
34964         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
34965         of four.
34966         * configure: Rebuild.
34967
34968 2010-03-11  Martin Jambor  <mjambor@suse.cz>
34969
34970         PR tree-optimization/43257
34971         * tree.c (assign_assembler_name_if_neeeded): New function.
34972         (free_lang_data_in_cgraph): Assembler name assignment moved to the
34973         above new function.
34974         * tree.h (assign_assembler_name_if_neeeded): Declare.
34975         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
34976         the function if needed.
34977
34978 2010-03-11  Chris Demetriou  <cgd@google.com>
34979
34980         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
34981         include/stdint-gcc.h, and include/stdint.h world-readable.
34982
34983 2010-03-11  Richard Guenther  <rguenther@suse.de>
34984
34985         PR tree-optimization/43255
34986         * tree-vrp.c (process_assert_insertions_for): Do not insert
34987         asserts for trivial conditions.
34988
34989 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34990
34991         PR tree-optimization/43280
34992         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
34993         generation.  Move calculation of size out of the if branch.
34994         (find_bswap): Modify compare number generation.
34995
34996 2010-03-11  Richard Guenther  <rguenther@suse.de>
34997
34998         PR lto/43200
34999         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
35000         (input_gimple_stmt): Fixup handled component types during
35001         operand read.  Also fix up decls in ADDR_EXPRs.
35002
35003 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
35004
35005         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
35006         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
35007
35008 2010-03-10  Jan Hubicka  <jh@suse.cz>
35009
35010         PR c/43288
35011         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
35012         * varasm.c (get_variable_section): Don't do that here...
35013         (make_decl_rtl): ... and here.
35014         (do_assemble_alias): Produce decl RTL.
35015         (assemble_alias): Likewise.
35016
35017 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35018
35019         PR debug/43290
35020         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
35021         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
35022         of fde->vdrap_reg.
35023         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
35024         (based_loc_descr): Only express drap or vdrap regno based expressions
35025         using DW_OP_fbreg when not optimizing.
35026         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
35027         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
35028         REG_CFA_SET_VDRAP note.
35029
35030 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
35031
35032         PR tree-optimization/43236
35033         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
35034         error in calculation of base address in reverse iteration case.
35035         (generate_builtin): Take number of latch executions if the statement
35036         is in the latch.
35037
35038 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
35039
35040         PR middle-end/42859
35041         * tree-eh.c: Include pointer-set.h.
35042         (lower_eh_dispatch): Filter out duplicate case labels and
35043         remove the unneeded edge when the label is unused.  Return
35044         true when some edges are removed.
35045         (execute_lower_eh_dispatch): When any lowering resulted in
35046         removing an edge, also delete unreachable blocks.
35047
35048 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
35049
35050         PR bootstrap/43287
35051         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
35052         UNSPEC_MACHOPIC_OFFSET.
35053
35054 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
35055
35056         PR target/43294
35057         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
35058         (m68k_delegitimize_address): New function.
35059
35060 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
35061
35062         PR debug/43299
35063         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
35064
35065         PR debug/43299
35066         * var-tracking.c (adjust_sets): New function.
35067         (count_with_sets, add_with_sets): Use it.
35068         (get_adjusted_src): New inline function.
35069         (add_stores): Use it.
35070
35071         PR debug/43304
35072         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
35073         call cselib_dummy_expand_value_rtx_cb instead of
35074         cselib_expand_value_rtx_cb.
35075
35076         PR debug/43293
35077         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
35078         * config/i386/i386.c: Include debug.h and dwarf2out.h.
35079         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
35080         and .cfi_endproc around the pic thunks.
35081         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
35082         all queued unwind info register saves are saved before the call.
35083         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
35084         considered as sp-=4 for unwind info and the pop as sp+=4 which
35085         also clobbers dest, but doesn't actually restore it.
35086
35087         PR debug/43290
35088         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
35089         RTX_FRAME_RELATED_P.
35090
35091 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35092
35093         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
35094         whitespaces in output template.
35095
35096 2010-03-09  Jie Zhang  <jie@codesourcery.com>
35097
35098         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
35099         out array boundary.
35100
35101 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35102
35103         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
35104         builtins.exp in a separate job.
35105
35106 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35107
35108         * graphite-sese-to-poly.c (add_param_constraints): Use
35109         lower_bound_in_type and upper_bound_in_type.
35110
35111 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35112
35113         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
35114         instead of unsigned_type_node.
35115
35116 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35117             Reza Yazdani  <reza.yazdani@amd.com>
35118
35119         PR middle-end/43065
35120         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
35121         on pointer type parameters.
35122
35123 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35124
35125         PR middle-end/42644
35126         PR middle-end/42130
35127         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
35128         handle conversions from pointer to integers.
35129         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
35130         induction variable, to be able to work with code generated by CLooG.
35131         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
35132         (build_poly_scop): Bail out if we cannot codegen a loop.
35133
35134 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
35135
35136         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
35137         code generation with gloog_error.
35138
35139 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35140
35141         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
35142         Call fold_convert on all the returned values.
35143         (expand_scalar_variables_expr): Pass to
35144         expand_scalar_variables_ssa_name the type of the resulting expression.
35145
35146 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35147
35148         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
35149         ppl_min_for_le_pointset.
35150         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
35151         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
35152
35153 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35154
35155         * graphite-dependences.c (map_into_dep_poly): Removed.
35156         (dependence_polyhedron_1): Use combine_context_id_scat.
35157
35158 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35159
35160         * graphite-poly.h (struct poly_scattering): Add layout documentation.
35161         (struct poly_bb): Same.
35162         (combine_context_id_scat): New.
35163
35164 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35165
35166         PR middle-end/42326
35167         * sese.c (name_defined_in_loop_p): Return false for default
35168         definitions.
35169
35170 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35171
35172         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
35173         and clean up the logic.
35174
35175 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
35176
35177         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
35178         early return.
35179
35180 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
35181
35182         * var-tracking.c (remove_cselib_value_chains): Define only for
35183         ENABLE_CHECKING.
35184         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
35185         delete_slot_part, emit_notes_for_differences_1): Don't call
35186         remove_cselib_value_chains here.
35187         (set_slot_part, emit_notes_for_differences_2): Don't call
35188         add_cselib_value_chains here.
35189         (preserved_values): New vector.
35190         (preserve_value): New function.
35191         (add_uses, add_stores, vt_add_function_parameters): Use it
35192         instead of cselib_preserve_value.
35193         (changed_values_stack): New vector.
35194         (check_changed_vars_0): New function.
35195         (check_changed_vars_1, check_changed_vars_2): Use it.
35196         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
35197         changed_values_stack VALUEs.
35198         (vt_emit_notes): For all preserved_values call
35199         add_cselib_value_chains.  If ENABLE_CHECKING call
35200         remove_cselib_value_chains before verifying value_chains is empty.
35201         Initialize and free changed_values_stack.
35202         (vt_initialize): Initialize preserved_values.
35203         (vt_finalize): Free preserved_values.
35204
35205 2010-03-08  Richard Guenther  <rguenther@suse.de>
35206
35207         PR tree-optimization/43269
35208         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
35209         region detection.
35210
35211 2010-03-08  Martin Jambor  <mjambor@suse.cz>
35212
35213         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
35214         (ipa_is_param_called): Removed.
35215         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
35216         (ipa_print_node_params): Do not print the called flag.
35217         (ipa_write_node_info): Do not stream the called flag.
35218         (ipa_read_node_info): Likewise.
35219
35220 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
35221
35222         PR debug/43176
35223         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
35224         * cselib.c (struct expand_value_data): Add dummy field.
35225         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
35226         dummy to false.
35227         (cselib_dummy_expand_value_rtx_cb): New function.
35228         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
35229         any rtl.
35230         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
35231         * var-tracking.c: Include pointer-set.h.
35232         (variable): Change n_var_parts to char from int.  Add
35233         cur_loc_changed and in_changed_variables fields.
35234         (variable_canonicalize): Remove.
35235         (shared_var_p): New inline function.
35236         (unshare_variable): Maintain cur_loc_changed and
35237         in_changed_variables fields.  If var was in changed_variables,
35238         replace it there with new_var.  Just copy cur_loc instead of
35239         resetting it to something else.
35240         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
35241         (dataflow_set_union): Don't call variable_canonicalize.
35242         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
35243         of their DEBUG_EXPR_TREE_DECLs.
35244         (canonicalize_loc_order_check): Verify that cur_loc is NULL
35245         and in_changed_variables and cur_loc_changed is false.
35246         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
35247         and cur_loc_changed.  Don't update cur_loc here.
35248         (variable_merge_over_src): Don't call variable_canonicalize.
35249         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
35250         removing loc that is equal to cur_loc, clear cur_loc,
35251         set cur_loc_changed and ensure variable_was_changed is called.
35252         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
35253         compare pointers in cur_loc check, if it is equal to loc,
35254         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
35255         (variable_different_p): Remove compare_current_location argument,
35256         don't compare cur_loc.
35257         (dataflow_set_different_1): Adjust variable_different_p caller.
35258         (variable_was_changed): If dv had some var in changed_variables
35259         already, reset in_changed_variables flag for it and propagate
35260         cur_loc_changed over to the new variable.  On empty var
35261         always set cur_loc_changed.  Set in_changed_variables on whatever
35262         var is added to changed_variables.
35263         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
35264         Use shared_var_p.  When removing loc that is equal to cur_loc,
35265         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
35266         end, don't set it to something else, just call variable_was_changed.
35267         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
35268         loc being removed, clear cur_loc and set cur_loc_changed.
35269         Set cur_loc_changed if all locations have been removed.
35270         (struct expand_loc_callback_data): New type.
35271         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
35272         allocated.  Always create SUBREGs if simplify_subreg failed.
35273         Prefer to use cur_loc, when that fails and still in
35274         changed_variables (and seen first time) recompute it.  Set
35275         cur_loc_changed of variables which had to change cur_loc and
35276         compute elcd->cur_loc_changed if any of the subexpressions used
35277         had to change cur_loc.
35278         (vt_expand_loc): Adjust to pass arguments in
35279         expand_loc_callback_data structure.
35280         (vt_expand_loc_dummy): New function.
35281         (emitted_notes): New variable.
35282         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
35283         that weren't used for any other decl in current
35284         emit_notes_for_changes call call vt_expand_loc_dummy to update
35285         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
35286         first loc_chain location if NULL before.  Always use just
35287         cur_loc instead of first loc_chain location.  When cur_loc_changed
35288         is false, when not --enable-checking=rtl just don't emit any note.
35289         When rtl checking, compute the note and assert it is the same
35290         as previous note.  Clear cur_loc_changed and in_changed_variables
35291         at the end before removing from changed_variables.
35292         (check_changed_vars_3): New function.
35293         (emit_notes_for_changes): Traverse changed_vars to call
35294         check_changed_vars_3 on each changed var.
35295         (emit_notes_for_differences_1): Clear cur_loc_changed and
35296         in_changed_variables.  Recompute cur_loc of new_var.
35297         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
35298         (vt_emit_notes): Initialize and destroy emitted_notes.
35299
35300 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
35301
35302         PR rtl-optimization/42220
35303         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
35304         Use verify_reg_tracked to determine if we should use OP_OUT rather
35305         than OP_INOUT.
35306         (build_def_use): If we see an in-out operand for a register that we
35307         know nothing about, treat is an output if possible, fail the block if
35308         not.
35309
35310 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35311
35312         PR debug/42897
35313         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
35314         permanently.
35315
35316 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35317
35318         PR debug/42897
35319         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
35320         uses of relevant DEFs that are dead outside the loop too.
35321
35322 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
35323
35324         * var-tracking.c (dataflow_set_merge): Swap src and src2.
35325         Reverted:
35326         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35327         PR debug/41371
35328         * var-tracking.c (values_to_unmark): New variable.
35329         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35330         values_to_unmark vector.  Moved body to...
35331         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35332         instead queue it into values_to_unmark vector.
35333         (vt_find_locations): Free values_to_unmark vector.
35334
35335 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
35336
35337         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
35338         (site.exp): Export them when plugins are enabled.
35339
35340 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
35341
35342         PR middle-end/42326
35343         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
35344         that contain scevs.
35345         (chrec_fold_multiply): Same.
35346
35347 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
35348
35349         PR c/43248
35350         * c-decl.c (build_compound_literal): Return early if init is
35351         an error_mark_node.
35352
35353 2010-03-04  Martin Jambor  <mjambor@suse.cz>
35354
35355         PR tree-optimization/43164
35356         PR tree-optimization/43191
35357         * tree-sra.c (type_consists_of_records_p): Reject records with
35358         zero-size bit-fields at the end.
35359
35360 2010-03-04  Mike Stump  <mikestump@comcast.net>
35361
35362         * Makefile.in (TAGS): Remove *.y.
35363
35364 2010-03-04  Richard Guenther  <rguenther@suse.de>
35365
35366         PR tree-optimization/40761
35367         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
35368         in reverse order.
35369         (my_rev_post_order_compute): New function.
35370         (init_pre): Call it.
35371
35372 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
35373
35374         PR middle-end/43209
35375         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
35376         decrease the cost of an IV candidate when the cost is infinite.
35377
35378 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35379
35380         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
35381         Use '3DNow!' for the extension of that name, ensure normal space
35382         after the string.
35383         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
35384
35385 2010-03-03  Jeff Law  <law@redhat.com>
35386
35387         * PR middle-end/32693
35388         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
35389         than gen_rtx_SUBREG.
35390         (extract_bit_field_1): Likewise.
35391
35392 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
35393
35394         * doc/sourcebuild.texi (Test directives): Document that arguments
35395         include-opts and exclude-opts are now optional for dg-skip-if,
35396         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
35397
35398 2010-03-03  Jason Merrill  <jason@redhat.com>
35399
35400         PR c++/12909
35401         * cgraph.h (varpool_node): Add extra_name field.
35402         * varpool.c (varpool_extra_name_alias): New.
35403         (varpool_assemble_decl): Emit extra name aliases.
35404         (varpool_mark_needed_node): Look past an extra name alias.
35405         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
35406         * lto-streamer-in.c (lto_input_tree): Read it.
35407         * lto-streamer-out.c (output_unreferenced_globals): Write it.
35408
35409 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
35410
35411         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
35412         (sparc*-*-solaris2*): ...this.
35413
35414 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
35415
35416         PR debug/43229
35417         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
35418         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
35419         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
35420         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
35421
35422         PR debug/43237
35423         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
35424         fallthrough to default handling, just with want_address 0 instead of 2.
35425         For single element lists, add_AT_loc directly, otherwise create an
35426         artificial variable DIE and stick location list to it.
35427
35428         PR debug/43177
35429         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
35430         (VAL_EXPR_HAS_REVERSE): Define.
35431         (reverse_op): New function.
35432         (add_stores): For reversible operations add an extra MO_VAL_USE.
35433
35434 2010-03-02  Jason Merrill  <jason@redhat.com>
35435
35436         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
35437
35438 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
35439
35440         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
35441         (sparc64-*-linux*): Likewise.
35442         (sparc64-*-solaris2*): Include assembler files before linker ones.
35443         (sparc-*-solaris2*): Simplify and reorder to match previous case.
35444         * config/sparc/gas.h: Delete.
35445         * config/sparc/sol2-64.h: Add copyright notice.
35446         * config/sparc/sol2-gas-bi.h: Likewise.
35447         * config/sparc/sol2-gld.h: Likewise.
35448         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
35449         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
35450         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
35451         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
35452         (sparc_elf_asm_named_section): Rename into...
35453         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
35454
35455 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
35456
35457         * config/alpha/alpha.c (override_options): Fix -mtune error message.
35458
35459 2010-03-02  Jeff Law  <law@redhat.com>
35460
35461         PR middle-end/42431
35462         * reload1.c (rtx_p, substitute_stack): Declare.
35463         (substitute): Record addresses of changed rtxs.
35464         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
35465         Restore the original rtx when complete.
35466         (reload): Free subsitute_stack when complete.
35467
35468 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
35469
35470         * doc/gccint.texi (menu): Add Testsuites as a chapter.
35471         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
35472         new chapter.
35473         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
35474         LTO Testing, gcov Testing, profopt Testing, compat Testing,
35475         Torture Tests): Change from subsection to section.
35476
35477 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
35478             Steven Bosscher  <steven@gcc.gnu.org>
35479
35480         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
35481         instead of bb.
35482
35483 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
35484
35485         PR middle-end/42640
35486         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
35487         the assignment from the new induction variable to the assignment
35488         of the value from the original loop PHI function.
35489
35490 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
35491             Daniel Jacobowitz  <dan@codesourcery.com>
35492
35493         * doc/sourcebuild.texi (Test directives): Clarify options to
35494         dg-skip-if.
35495
35496 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35497
35498         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
35499         Disable cfi directives unless GCC and gas agree on using read-only
35500         .eh_frame sections for 64-bit.
35501         * configure: Regenerate.
35502
35503 2010-03-01  Richard Guenther  <rguenther@suse.de>
35504
35505         PR tree-optimization/43220
35506         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
35507         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
35508
35509 2010-03-01  Richard Guenther  <rguenther@suse.de>
35510             Martin Jambor  <mjambor@suse.cz>
35511
35512         PR middle-end/41250
35513         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
35514         gimplified parameters.
35515
35516 2010-03-01  Christian Bruel  <christian.bruel@st.com>
35517
35518         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
35519
35520 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
35521
35522         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
35523
35524 2010-03-01  Richard Guenther  <rguenther@suse.de>
35525
35526         PR middle-end/43213
35527         * expr.c (expand_assignment): Use the alias-oracle to tell
35528         if the rhs aliases the result decl.
35529
35530 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35531
35532         PR pch/14940
35533         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
35534         to sol_gt_pch_get_address.
35535         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
35536         64-bit, SPARC and x86.
35537         (sol_gt_pch_get_address): New function.
35538
35539 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
35540
35541         * toplev.h (inform_n, error_n): Declare.
35542         * diagnostic.c (inform_n, error_n): New function.
35543
35544 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
35545
35546         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
35547         has no rtl yet when processing local_decls, queue it and recheck
35548         if deferred stack allocation hasn't assigned it rtl.
35549
35550 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
35551
35552         * config/sh/sh.c (unspec_bbr_uid): New.
35553         (gen_block_redirect): Use it instead of INSN_UID.
35554         (gen_far_branch): Likewise.
35555
35556 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
35557
35558         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
35559         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
35560
35561 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35562
35563         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
35564         (Warning Options): -Wno-conversion-null is valid for
35565         Objective-C++ as well.
35566         * doc/tm.texi (Named Address Spaces): Likewise.
35567         * doc/plugins.texi (Plugins): Replace TABs with spaces.
35568         * doc/tree-ssa.texi (Tree SSA): Likewise.
35569
35570 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35571
35572         PR bootstrap/43202
35573         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
35574         by default.  Don't set the default arch for
35575         i[34567]86-*-darwin*|x86_64-*-darwin*.
35576
35577 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35578
35579         PR bootstrap/43202
35580         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
35581         default.  Set the default 32bit/64bit archs with $with_arch
35582         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
35583
35584 2010-02-27  Richard Guenther  <rguenther@suse.de>
35585
35586         PR tree-optimization/43186
35587         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
35588         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
35589         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
35590         unroller iterations.
35591
35592 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
35593
35594         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
35595         required and i[34567]86-*-* targets don't support 64bit ISA.
35596
35597 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
35598
35599         PR ada/43096
35600         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
35601         the same alias set.
35602
35603 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35604
35605         * config.gcc: Set the default arch at least to Prescott for
35606         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
35607         if SSE math is enabled.
35608
35609 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35610
35611         * diagnostic.c (diagnostic_initialize): Update.
35612         (diagnostic_report_diagnostic): Test inhibit_notes_p for
35613         informative notes.
35614         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
35615         (diagnostic_inhibit_notes): New.
35616         * toplev.c (process_options): inhibit notes with -fcompare-debug.
35617
35618 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35619
35620         PR c/20631
35621         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
35622         * doc/standards.texi: Likewise.
35623         * doc/extend.texi: Likewise.
35624         * doc/trouble.texi: Likewise.
35625         * doc/cppopts.texi: Likewise.
35626         * doc/install.texi: Likewise.
35627         * c.opt (std=c90,std=gnu90): New options.
35628         * c-opts.c (c_common_handle_option): Handle them.
35629
35630 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35631
35632         PR c/24577
35633         * c-decl.c (undeclared_variable): Use an informative note.
35634
35635 2010-02-26  Richard Guenther  <rguenther@suse.de>
35636
35637         PR tree-optimization/43186
35638         * gimple.h (gimple_fold): Remove.
35639         * gimple.c (gimple_fold): Remove.  Inline into single user ...
35640         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
35641         Try harder for conditions.
35642
35643 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35644
35645         PR debug/43190
35646         * function.c (used_types_insert): Don't skip through named pointer
35647         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
35648         and it is different from the main variant's type.
35649
35650 2010-02-26  Nick Clifton  <nickc@redhat.com>
35651
35652         * config/rx/rx.md (sminsi3): Remove bogus alternative.
35653
35654 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
35655
35656         * config.gcc: Support --with-fpmath=sse for x86.
35657
35658         * config/i386/ssemath.h: New.
35659
35660         * doc/install.texi (--with-fpmath=sse): Documented.
35661
35662 2010-02-26  Richard Guenther  <rguenther@suse.de>
35663
35664         PR tree-optimization/43188
35665         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
35666         vector types of over-aligned element type.
35667
35668 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
35669
35670         PR target/43175
35671         * config/i386/i386.c (expand_vec_perm_blend): Use correct
35672         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
35673
35674 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
35675
35676         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
35677
35678 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
35679
35680         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
35681         * var-tracking.c: Include diagnostic.h.
35682         (debug_dv): New function.
35683         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
35684
35685         PR debug/43160
35686         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
35687         (add_value_chain, add_value_chains, remove_value_chain,
35688         remove_value_chains): Handle DEBUG_EXPRs.
35689         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
35690
35691         PR debug/43161
35692         * regcprop.c (struct queued_debug_insn_change): New type.
35693         (struct value_data_entry): Add debug_insn_changes field.
35694         (struct value_data): Add n_debug_insn_changes field.
35695         (debug_insn_changes_pool): New variable.
35696         (free_debug_insn_changes, apply_debug_insn_changes,
35697         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
35698         (kill_value_one_regno): Call free_debug_insn_changes if needed.
35699         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
35700         fields.
35701         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
35702         changes for them.
35703         (copyprop_hardreg_forward_1): Don't call apply_change_group for
35704         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
35705         changes, call cprop_find_used_regs via note_stores.
35706         (copyprop_hardreg_forward): When copying vd from predecessor
35707         which has any queued DEBUG_INSN changes, make sure the pointers are
35708         cleared.  At the end call df_analyze and then if there are any
35709         DEBUG_INSN changes queued at the end of some basic block for still
35710         live registers, apply them.
35711         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
35712
35713 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
35714
35715         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
35716         (arm*-*-*): Ditto.
35717
35718 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
35719
35720         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
35721         targets.  Set the default with_cpu/with_arch from arch/cpu.
35722         Allow x86-64 and native for with_cpu/with_arch.
35723
35724 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
35725
35726         * ebitmap.c: Change calls to verify_popcount with calls to
35727         sbitmap_verify_popcount.
35728         (ebitmap_clear_bit): Fixed map->cacheindex test and
35729         map>cache update when bit clearing results in an empty
35730         element.
35731
35732 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
35733
35734         PR target/43154
35735         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
35736         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
35737         and support both V2DF and V2DI modes.
35738         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
35739         support both V2DF and V2DI modes.
35740         (general): Delete trailing whitespace from a few patterns.
35741
35742         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35743         V2DF/V2DI interleave high/low builtins.
35744
35745         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
35746         new VSX builtins.
35747
35748         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
35749         interleave high/low functions.
35750
35751 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
35752
35753         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
35754         #pragma extern_prefix.
35755
35756 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
35757
35758         PR debug/43166
35759         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
35760         BLKmode, assert op0 is a MEM and just adjust its mode.
35761
35762         PR debug/43165
35763         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
35764         if bitpos isn't multiple of mode's bitsize.
35765
35766 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35767
35768         * c.opt (-ftemplate-depth=): New.
35769         (-ftemplate-depth-): Deprecate.
35770         * optc-gen.awk: Handle -ftemplate-depth=.
35771         * opth-gen.awk: Likewise.
35772         * c-opts.c (c_common_handle_option): Likewise.
35773         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
35774
35775 2010-02-24  Jason Merrill  <jason@redhat.com>
35776
35777         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
35778
35779 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35780
35781         * cfg.c (alloc_aux_for_block): Remove inline.
35782         (alloc_aux_for_edge): Likewise.
35783
35784 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35785
35786         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
35787
35788 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35789
35790         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
35791         * config/i386/sol2-gas.h: New file.
35792         * config.gcc (i[34567]86-*-solaris2*): Use it.
35793
35794 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35795
35796         PR c/43128
35797         * c-typeck.c (ep_convert_and_check): New.
35798         (build_conditional_expr): Use it.
35799         (build_binary_op): Likewise.
35800
35801 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
35802
35803         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
35804
35805         PR debug/43150
35806         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
35807         bounds even for -O+.
35808         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
35809         expr needs to have DECL_NAME set.
35810
35811 2010-02-24  Nick Clifton  <nickc@redhat.com>
35812
35813         * config/mep/mep.c: Include gimple.h.
35814         (mep_function_uses_sp): Delete unused function.
35815         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
35816         parameters.  Use unsigned integers to count args.  Return a
35817         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
35818
35819 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35820
35821         PR target/43107
35822         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
35823         greater or equal to nelt instead of 2 * nelt.
35824         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
35825         with nelt - 1.
35826
35827 2010-02-23  Jason Merrill  <jason@redhat.com>
35828
35829         PR debug/42800
35830         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
35831         in cfun->local_decls even if they have register types.
35832
35833         PR c++/42837
35834         * stor-layout.c (place_field): Don't warn about unnecessary
35835         DECL_PACKED if the type is packed.
35836
35837 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
35838
35839         PR target/43139
35840         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
35841         GOTOFF relocs, even when the base reg isn't pic pointer.
35842
35843 2010-02-23  Michael Matz  <matz@suse.de>
35844
35845         PR debug/43077
35846         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
35847         (expand_gimple_basic_block): Generate and use debug temps if there
35848         are debug uses left after the last real use of TERed ssa names.
35849         Unlink debug immediate uses when they are expanded.
35850
35851 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35852
35853         PR 43123
35854         * config/i386/i386.c (override_options): Reorganise to provide
35855         better error messages.
35856
35857 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35858
35859         PR middle-end/43083
35860         * graphite-scop-detection.c (create_single_exit_edge): Move
35861         the call to find_single_exit_edge to....
35862         (create_sese_edges): ...here.  Don't handle multiple edges
35863         exiting the function.
35864         (build_graphite_scops): Don't handle multiple edges
35865         exiting the function.
35866
35867 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35868
35869         PR middle-end/43097
35870         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
35871         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
35872
35873 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
35874
35875         PR middle-end/43026
35876         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
35877
35878 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35879
35880         PR c++/43126
35881         * c-typeck.c (convert_arguments): Print declaration location.
35882         * c-common.c (validate_nargs): Rename as
35883         builtin_function_validate_nargs.
35884         (check_builtin_function_arguments): Update.
35885
35886 2010-02-22  Richard Guenther  <rguenther@suse.de>
35887
35888         PR lto/43045
35889         * tree-inline.c (declare_return_variable): Use the type of
35890         the call stmt lhs if available.
35891
35892 2010-02-22  Duncan Sands  <baldrick@free.fr>
35893
35894         * passes.c (register_pass): Always consider all pass lists when
35895         ref_pass_instance_number is zero.
35896
35897 2010-02-22  Richard Guenther  <rguenther@suse.de>
35898
35899         PR tree-optimization/42749
35900         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
35901         parameter.  Do arithmetic in the original type.
35902         (update_accumulator_with_ops): Likewise.
35903         (adjust_accumulator_values): Adjust.
35904
35905 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35906
35907         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
35908         (QI to BLKmode splitter): New splitter.
35909
35910 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
35911
35912         * config/i386/i386.c (initial_ix86_tune_features): Turn on
35913         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
35914
35915 2010-02-22  Richard Guenther  <rguenther@suse.de>
35916
35917         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
35918
35919 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
35920
35921         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
35922         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
35923         ($(T)crti.o, $(T)crtn.o): Remove rules.
35924
35925 2010-02-21  Tobias Burnus  <burnus@net-b.de>
35926
35927         PR fortran/35259
35928         * doc/invoke.texi (-fassociative-math): Document that this
35929         option is automatically enabled for Fortran.
35930
35931 2010-02-20  David S. Miller  <davem@davemloft.net>
35932
35933         * configure.ac: Test if linker and assembler properly support
35934         GOTDATA_OP relocations.
35935         * configure: Rebuild.
35936         * config.in: Likewise.
35937         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
35938         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
35939         (movsi_high_pic): Likewise.
35940         (movdi_lo_sum_pic): Likewise.
35941         (movdi_high_pic): Likewise.
35942         (movsi_pic_gotdata_op): New pattern.
35943         (movdi_pic_gotdata_op): Likewise.
35944         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
35945         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
35946
35947 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
35948
35949         PR target/43067
35950         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
35951         attribute to ssemul.
35952         (xop_mulv2div2di3_high): Ditto.
35953
35954 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35955
35956         PR c++/35669
35957         * c.opt (Wconversion-null): New option.
35958         * doc/invoke.texi (Wconversion-null): Document.
35959
35960 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35961
35962         * common.opt (Wlarger-than-): Add Undocumented.
35963
35964 2010-02-19  Mike Stump  <mikestump@comcast.net>
35965
35966         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
35967
35968 2010-02-19  Jason Merrill  <jason@redhat.com>
35969
35970         PR target/40332
35971         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
35972         * configure: Likewise.
35973
35974 2010-02-20  Alan Modra  <amodra@gmail.com>
35975
35976         PR middle-end/42344
35977         * cgraph.h (cgraph_make_decl_local): Declare.
35978         * cgraph.c (cgraph_make_decl_local): New function.
35979         (cgraph_make_node_local): Use it.
35980         * cgraphunit.c (cgraph_function_versioning): Likewise.
35981         * ipa.c (function_and_variable_visibility): Likewise.
35982
35983 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
35984
35985         PR bootstrap/43121
35986         * except.c (sjlj_emit_function_enter): Don't call
35987         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
35988         directly.
35989         * rtl.h (add_reg_br_prob_note): Remove prototype.
35990
35991 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35992
35993         PR 41779
35994         * c-common.c (conversion_warning): Remove widening conversions
35995         before checking the conversion of integers to reals.
35996
35997 2010-02-19  Mike Stump  <mikestump@comcast.net>
35998
35999         PR middle-end/43125
36000         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
36001
36002         PR objc/43061
36003         * cgraphunit.c (process_function_and_variable_attributes): Check
36004         DECL_PRESERVE_P instead of looking up attribute "used".
36005         * ipa-pure-const.c (check_decl): Likewise.
36006         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
36007         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
36008         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
36009         instead of attribute "used".
36010         * config/sol2-c.c (solaris_pragma_init): Likewise.
36011         (solaris_pragma_fini): Likewise.
36012
36013 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36014
36015         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
36016         Use XCNEW instead of xcalloc.
36017         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
36018         XNEW instead of xmalloc.
36019         (get_fields): Use XNEWVEC instead of xmalloc.
36020
36021         PR debug/43084
36022         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
36023         populate vars array.
36024         (create_new_general_access): For debug stmts just reset value.
36025         (get_stmt_accesses): For accesses within debug stmts just record them
36026         using add_access_to_acc_sites instead of preventing the peeling or
36027         counting them as accesses.
36028
36029         PR middle-end/42233
36030         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
36031
36032 2010-02-19  Richard Guenther  <rguenther@suse.de>
36033
36034         PR tree-optimization/42916
36035         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
36036         instructions.
36037
36038 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
36039
36040         * configure.ac: Replace all uses of changequote in macro arguments
36041         with proper quoting.
36042
36043 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36044
36045         PR middle-end/42233
36046         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
36047
36048 2010-02-19  Richard Guenther  <rguenther@suse.de>
36049
36050         PR tree-optimization/42944
36051         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
36052         test for aliasing with errno.
36053
36054 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
36055
36056         PR middle-end/42233
36057         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
36058         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
36059         * dojump.c: Include output.h.
36060         (inv): New inline function.
36061         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
36062         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
36063         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
36064         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
36065         argument, pass it down to other calls.
36066         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
36067         add REG_BR_PROB note to the conditional jump.
36068         * cfgexpand.c (add_reg_br_prob_note): Removed.
36069         (expand_gimple_cond): Don't call it, add the probability
36070         as last argument to jumpif_1/jumpifnot_1.
36071         * Makefile.in (dojump.o): Depend on output.h.
36072         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
36073         callers.
36074         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
36075         * stmt.c (do_jump_if_equal): Likewise.
36076         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
36077         * loop-unswitch.c (compare_and_jump_seq): Likewise.
36078         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
36079         Likewise.
36080         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
36081         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
36082         jumpifnot_1 callers.
36083         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
36084         callers.
36085         (store_expr): Adjust jumpifnot caller.
36086         (store_constructor): Adjust jumpif caller.
36087
36088         PR middle-end/42233
36089         * gimplify.c (gimple_boolify): For __builtin_expect call
36090         gimple_boolify also on its first argument.
36091
36092 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
36093
36094         * configure.ac (gnu-unique-object): Wrap regexps using [] in
36095         changequote block.
36096         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
36097         * configure: Regenerated.
36098
36099 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
36100
36101         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
36102         lang_hooks.types_compatible_p instead of comptypes.
36103
36104 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
36105
36106         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
36107         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
36108         if __prefer_thumb__ is defined.
36109
36110 2010-02-18  Martin Jambor  <mjambor@suse.cz>
36111
36112         PR tree-optimization/43066
36113         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
36114         array with zero-sized element type.
36115
36116 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
36117
36118         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
36119         rtx, allocate struct var_loc_node here and return it to the
36120         caller, and only if it is actually needed.
36121         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
36122         move it earlier and return immediately if it returns NULL.
36123
36124 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
36125
36126         * config/sparc/gas.h: New file.  Restore
36127         TARGET_ASM_NAMED_SECTION to its ELF default.
36128         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
36129         check !HAVE_GNU_AS.
36130         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36131         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
36132         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
36133         after sparc/sysv4.h.
36134
36135 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
36136
36137         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
36138
36139 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
36140
36141         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
36142         patterns from predicated pattern.
36143
36144 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
36145
36146         PR target/43103
36147         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
36148         for insn mnemonic suffix.
36149
36150 2010-02-17  Richard Guenther  <rguenther@suse.de>
36151
36152         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
36153         to loop PHI nodes.
36154
36155 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
36156
36157         PR debug/42918
36158         * caller-save.c (save_call_clobbered_regs): If BB ends with
36159         a DEBUG_INSN, move any notes in between last real insn and the last
36160         DEBUG_INSN after the last DEBUG_INSN.
36161
36162 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
36163
36164         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
36165         Fix return type.  Fix argument type.  Explain meaning of return value.
36166
36167 2010-02-16  Richard Guenther  <rguenther@suse.de>
36168
36169         PR tree-optimization/41043
36170         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
36171         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
36172         statements ...
36173         (vrp_visit_phi_node): ... but only for loop PHI nodes.
36174
36175 2010-02-16  Ira Rosen  <irar@il.ibm.com>
36176
36177         PR tree-optimization/43074
36178         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
36179         * tree-vect-loop.c (vect_analyze_loop_operations): Add
36180         vectorizable cycles in hybrid SLP check.
36181         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
36182
36183 2010-02-16  Richard Guenther  <rguenther@suse.de>
36184
36185         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
36186         (true_dependence): If memrefs_conflict_p computes must-alias
36187         trust it.  Move TBAA check after offset-based disambiguation.
36188         (canon_true_dependence): Likewise.
36189
36190 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
36191
36192         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
36193         * doc/invoke.texi: Document it.
36194         * var-tracking.c: Include toplev.h and params.h.
36195         (vt_find_locations): Return bool indicating success.  Compute
36196         hash sizes unconditionally.  Check new parameter, report.
36197         (variable_tracking_main_1): Check vt_find_locations results and
36198         retry.  Renamed from...
36199         (variable_tracking_main): ... this.  New wrapper to preserve
36200         flag_var_tracking_assignments.
36201         * Makefile.in (var-tracking.o): Adjust dependencies.
36202
36203 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
36204             Jakub Jelinek  <jakub@redhat.com>
36205
36206         PR target/42854
36207         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
36208         if weak_import attribute is present.
36209         * config/darwin.c (machopic_select_section): Likewise.
36210
36211 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
36212
36213         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
36214         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
36215         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
36216         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
36217
36218         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
36219         types.
36220
36221         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36222         Fix argument types.
36223
36224         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
36225         Rewrite text to refer to the names.
36226
36227 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
36228
36229         * config/i386/i386-builtin-types.def
36230         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
36231         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
36232         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
36233         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
36234         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
36235         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
36236         IX86_BUILTIN_VPERMIL2PS256.
36237         (MULTI_ARG_4_DF2_DI_I): Defined.
36238         (MULTI_ARG_4_DF2_DI_I1): Defined.
36239         (MULTI_ARG_4_SF2_SI_I): Defined.
36240         (MULTI_ARG_4_SF2_SI_I1): Defined.
36241         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
36242         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
36243         __builtin_ia32_vpermil2ps256.
36244         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36245         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36246         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
36247         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
36248         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
36249         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
36250         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
36251         CODE_FOR_xop_vpermil2v8sf3.
36252         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
36253         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
36254         * config/i386/xopintrin.h (_mm_permute2_pd): New.
36255         (_mm256_permute2_pd): New.
36256         (_mm_permute2_ps): New.
36257         (_mm256_permute2_ps): New.
36258
36259 2010-02-15  Nick Clifton  <nickc@redhat.com>
36260
36261         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
36262         boolean parameters.  Use emit_jump_insn when emitting a pop
36263         instruction containing a return insn.
36264         (push): Use 'true' rather than '1' as second parameter to F.
36265         (h8300_expand_prologue): Likewise.
36266         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
36267         (h8300_expand_epilogue): Likewise.
36268
36269 2010-02-15  Richard Guenther  <rguenther@suse.de>
36270
36271         PR middle-end/43068
36272         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
36273         if that is zero.
36274
36275 2010-02-15  Nick Clifton  <nickc@redhat.com>
36276
36277         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
36278         delta.
36279
36280 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
36281
36282         * intl.c (fake_ngettext): New function.
36283         * intl.h (fake_ngettext): Declare.
36284         (ngettext): Define macro.
36285         * collect2.c (notice_translated): New function.
36286         (main): Use notice_translated and ngettext.
36287         * collect2.h (notice_translated): Declare.
36288
36289 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
36290
36291         * reorg.c (delete_computation): Comment fixes.
36292         * caller-save.c (setup_save_areas): Idem.
36293         * sel-sched-dump.c (dump_lv_set): Idem.
36294         * rtl.def: Idem.
36295
36296 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36297
36298         * config/s390/s390.c (s390_sched_init): New function.
36299         (TARGET_SCHED_INIT): Target hook defined.
36300
36301 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
36302             Jack Howarth  <howarth@bromo.med.uc.edu>
36303             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
36304
36305         PR target/42982
36306         Partial revert of unintended change in fix for PR41605.
36307         * config/darwin.h: Fix typo.
36308         * config/darwin9.h: Same.
36309
36310 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36311
36312         * c-pch.c (pch_init): Clear v.
36313
36314 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36315
36316         PR middle-end/42930
36317         * graphite-scop-detection.c (graphite_can_represent_scev): Call
36318         graphite_can_represent_init for MULT_EXPR.
36319
36320 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36321
36322         PR middle-end/42914
36323         PR middle-end/42530
36324         * graphite-sese-to-poly.c (remove_phi): New.
36325         (translate_scalar_reduction_to_array): Call remove_phi.
36326
36327 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36328
36329         PR middle-end/42771
36330         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
36331         * graphite-clast-to-gimple.h (gloog): Update declaration.
36332         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
36333         * graphite-poly.h (struct poly_bb): Add missing comments.
36334         (struct scop): Add poly_scop_p field.
36335         (POLY_SCOP_P): New.
36336         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
36337         * graphite.c (graphite_transform_loops): Build the polyhedral
36338         representation for each scop before code generation.
36339         * sese.c (rename_variables_in_operand): Removed.
36340         (rename_variables_in_expr): Return the renamed expression.
36341         (rename_sese_parameters): New.
36342         * sese.h (rename_sese_parameters): Declared.
36343
36344 2010-02-11  Richard Guenther  <rguenther@suse.de>
36345
36346         PR tree-optimization/42998
36347         * tree-ssa-pre.c (create_expression_by_pieces): Treat
36348         POINTER_PLUS_EXPR properly.
36349
36350 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
36351             Changpeng Fang  <changpeng.fang@amd.com>
36352
36353         PR middle-end/40886
36354         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
36355         the cost of an IV candidate when the IV is used in a test against zero.
36356
36357         * gcc.dg/tree-ssa/ivopts-3.c: New.
36358
36359 2010-02-11  Richard Guenther  <rguenther@suse.de>
36360
36361         PR lto/41664
36362         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
36363         pointer-vs-decl case by swapping refs.  Handle some cases
36364         of pointer-vs-decl disambiguations more conservatively.
36365         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
36366         to false after expanding.
36367
36368 2010-02-11  Richard Guenther  <rguenther@suse.de>
36369
36370         PR driver/43021
36371         * gcc.c (process_command): Handle LTO file@offset case more
36372         appropriately.
36373
36374 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
36375
36376         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
36377         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
36378         of DEBUG_INSNs.
36379         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
36380
36381         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
36382         if MEM's mode size isn't DWARF2_ADDR_SIZE.
36383         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
36384         Optimize eq/ne comparisons when both arguments are known to be
36385         zero-extended.
36386         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
36387         Don't mask operands unnecessarily if they are known to be already
36388         zero-extended.
36389
36390 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
36391
36392         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
36393         instead of loop.
36394
36395 2010-02-10  Richard Guenther  <rguenther@suse.de>
36396
36397         PR tree-optimization/43017
36398         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
36399         for wrapping signed arithmetic.
36400
36401 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36402
36403         PR debug/43010
36404         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
36405         if no debug info should be emitted for it.
36406
36407 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
36408
36409         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
36410         note when flag_exceptions is set.
36411
36412 2010-02-10  Duncan Sands  <baldrick@free.fr>
36413
36414         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
36415
36416 2010-02-10  Richard Guenther  <rguenther@suse.de>
36417
36418         PR c/43007
36419         * tree.c (get_unwidened): Handle constants.
36420         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
36421
36422 2010-02-10  Martin Jambor  <mjambor@suse.cz>
36423
36424         PR lto/42985
36425         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
36426         check for variable argument counts independently.
36427
36428 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36429
36430         PR target/42841
36431         * config/sh/sh.c (find_barrier): Increase length for non delayed
36432         conditional branches.
36433
36434 2010-02-10  Christian Bruel  <christian.bruel@st.com>
36435
36436         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
36437
36438 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
36439
36440         * builtins.c (set_builtin_user_assembler_name): Also handle
36441         ffs if int is smaller than word.
36442
36443 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
36444
36445         PR middle-end/42973
36446         * ira-conflicts.c (get_dup): Remove.
36447         (process_reg_shuffles): Add new parameter.  Use it as an
36448         additional guard for copy generation.
36449         (add_insn_allocno_copies): Rewrite.
36450
36451 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
36452
36453         * common.opt (fsched2-use-traces): Preserved for backward
36454         compatibility.
36455         * doc/invoke.texi: Remove the documentation about option
36456         -fsched2-use-traces.
36457         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
36458         flag_sched2_use_traces.
36459         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
36460         the backward compatibility flag section.
36461
36462 2010-02-09  Richard Guenther  <rguenther@suse.de>
36463
36464         PR tree-optimization/43008
36465         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
36466         make HEAP variables initialized from global memory if they
36467         are not known builtin functions.
36468         (find_func_aliases): Adjust.
36469
36470 2010-02-09  Richard Guenther  <rguenther@suse.de>
36471
36472         PR tree-optimization/43000
36473         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
36474         arithmetic manually.
36475
36476 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
36477
36478         PR tree-optimization/42931
36479         * tree-loop-linear.c (try_interchange_loops): Don't call
36480         double_int_mul if estimated_loop_iterations failed.
36481
36482 2010-02-08  Martin Jambor  <mjambor@suse.cz>
36483
36484         PR middle-end/42898
36485         * tree-sra.c (build_accesses_from_assign): Do not mark in
36486         should_scalarize_away_bitmap if stmt has volatile ops.
36487         (sra_modify_assign): Do not process assigns piecemeal if if stmt
36488         has volatile ops.
36489
36490 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
36491
36492         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
36493
36494 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
36495
36496         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
36497         before the pattern.
36498
36499 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
36500
36501         PR middle-end/42946
36502         * df-core.c (df_finish_pass): Change type of saved_flags to int.
36503
36504 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36505
36506         PR middle-end/42988
36507         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
36508         to unknown_dependence.
36509         (graphite_legal_transform_dr): Handle the unknown_dependence.
36510         (graphite_carried_dependence_level_k): Same.
36511
36512 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
36513
36514         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
36515
36516 2010-02-07  Richard Guenther  <rguenther@suse.de>
36517
36518         PR middle-end/42991
36519         * expr.c (get_inner_reference): Always initialize *pbitsize.
36520
36521 2010-02-07  Richard Guenther  <rguenther@suse.de>
36522
36523         PR middle-end/42956
36524         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
36525         new ARRAY_REFs on variable size element or minimal index arrays.
36526         Complete.
36527         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
36528         gimple_fold_indirect_ref.
36529
36530 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
36531
36532         PR target/42957
36533         * arm.c (arm_override_options): Just return if the user has specified
36534         an invalid fpu name.
36535
36536 2010-02-03  Jason Merrill  <jason@redhat.com>
36537
36538         PR c++/42870
36539         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
36540         i386_pe_maybe_record_exported_symbol.
36541
36542 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
36543
36544         PR target/42924
36545         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36546         (pa_delegitimize_address): New function.
36547
36548 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
36549
36550         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
36551         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
36552
36553 2010-02-05  Richard Guenther  <rguenther@suse.de>
36554
36555         PR lto/42762
36556         * lto-streamer-in.c (get_resolution): Deal with references
36557         to undefined functions.
36558
36559 2010-02-05  Richard Guenther  <rguenther@suse.de>
36560
36561         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
36562         (fold_const_aggregate_ref): Likewise.
36563         (ccp_fold_stmt): Substitute loads.
36564         (maybe_fold_reference): Verify types before substituting.
36565         Unshare properly.
36566         (fold_gimple_assign): Unshare properly.
36567         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
36568
36569 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
36570
36571         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
36572         for rs6000_gen_cell_microcode.
36573
36574 2010-02-04  Richard Guenther  <rguenther@suse.de>
36575
36576         PR rtl-optimization/42952
36577         * dse.c (const_or_frame_p): Remove MEM handling.
36578
36579 2010-02-04  Nick Clifton  <nickc@redhat.com>
36580
36581         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
36582         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
36583         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
36584         (mn10300_asm_output_mi_thunk): New function.
36585         (mn10300_can_output_mu_thunk): New function.
36586         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
36587         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
36588         (FUNCTION_ARG): Delete incorrect comment.
36589
36590 2010-02-03  Jason Merrill  <jason@redhat.com>
36591
36592         PR c++/40138
36593         * fold-const.c (operand_equal_p): Handle erroneous types.
36594
36595 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
36596
36597         * config/h8300/h8300.md (can_delay): Fix attibute condition.
36598
36599 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
36600
36601         PR rtl-optimization/42941
36602         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
36603         of xmalloc.
36604
36605 2010-02-03  Jason Merrill  <jason@redhat.com>
36606
36607         PR c++/35652
36608         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
36609
36610 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
36611
36612         PR debug/42896
36613         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
36614         (cselib_reset_table): Renamed from...
36615         (cselib_reset_table_with_next_value): ... this.
36616         (cselib_get_next_uid): Renamed from...
36617         (cselib_get_next_unknown_value): ... this.
36618         * cselib.c (next_uid): Renamed from...
36619         (next_unknown_value): ... this.
36620         (cselib_clear_table): Adjust.
36621         (cselib_reset_table): Adjust.  Renamed from...
36622         (cselib_reset_table_with_next_value): ... this.
36623         (cselib_get_next_uid): Adjust.  Renamed from...
36624         (cselib_get_next_unknown_value): ... this.
36625         (get_value_hash): Use hash.
36626         (cselib_hash_rtx): Likewise.
36627         (new_cselib_val): Adjust.  Set and dump uid.
36628         (cselib_lookup_mem): Pass next_uid as hash.
36629         (cselib_subst_to_values): Likewise.
36630         (cselib_log_lookup): Dump uid.
36631         (cselib_lookup): Pass next_uid as hash.  Adjust.
36632         (cselib_process_insn): Adjust.
36633         (cselib_init): Initialize next_uid.
36634         (cselib_finish): Adjust.
36635         (dump_cselib_table): Likewise.
36636         * dse.c (canon_address): Dump value uid.
36637         * print-rtl.c (print_rtx): Print value uid.
36638         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
36639         (dvuid): New type.
36640         (dv_uid): New function, sort of renamed from...
36641         (dv_htab_hash): ... this, reimplemented in terms of it and...
36642         (dv_uid2hash): ... this.  New.
36643         (variable_htab_eq): Drop excess assertions.
36644         (tie_break_pointers): Removed.
36645         (canon_value_cmp): Compare uids.
36646         (variable_post_merge_New_vals): Print uids.
36647         (vt_add_function_parameters): Adjust.
36648         (vt_initialize): Reset table.  Adjust.
36649
36650 2010-02-03  Richard Guenther  <rguenther@suse.de>
36651
36652         PR tree-optimization/42944
36653         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
36654         (call_may_clobber_ref_p_1): Likewise.  Properly handle
36655         malloc and calloc clobbering errno.
36656
36657 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
36658
36659         * doc/invoke.texi: Fix name of sched1 dump.
36660
36661         * opts.c (decode_options): Set flag_tree_switch_conversion
36662         only conditionally on optimize >= 2.
36663
36664         * gcse.c: Assorted comment fixes in pass description.
36665
36666 2010-02-03  Anthony Green  <green@moxielogic.com>
36667
36668         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
36669         nop padding in order to maintain alignment of storage location of
36670         target function address.
36671         (moxie_trampoline_init): Store target function address at newly
36672         aligned location.
36673         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
36674         to 32.
36675         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
36676
36677 2010-02-03  Richard Guenther  <rguenther@suse.de>
36678
36679         PR middle-end/42927
36680         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
36681
36682 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36683
36684         * config.gcc: Reenable check for obsolete targets.
36685         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
36686         mips-sgi-irix6.[0-4]*.
36687
36688 2010-02-02  Nick Clifton  <nickc@redhat.com>
36689
36690         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
36691         constant size of 4 as being the same as 0.
36692         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
36693         can take values in the range 0..4.
36694
36695 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
36696
36697         PR java/41991
36698         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
36699         as _darwin10_Unwind_FindEnclosingFunction().
36700         * libgcc-libsystem.ver: New.
36701
36702 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
36703
36704         PR target/41399
36705         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
36706         implicitly set registers.
36707
36708 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
36709
36710         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
36711         (arm_override_options): Allow automatic selection of the thread
36712         pointer register if thumb2.
36713         (legitimize_pic_address): Improve code sequences for Thumb2.
36714         (arm_call_tls_get_addr): Likewise.
36715         (legitimize_tls_address): Likewise.
36716         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
36717         (pic_load_addr_32bit): ... this.  New named pattern.
36718         * thumb2.md (pic_load_addr_thumb2): Delete.
36719         (pic_load_dot_plus_four): Delete.
36720         (tls_load_dot_plus_four): New named pattern.
36721
36722 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36723
36724         PR libgomp/29986
36725         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
36726         Document fix for TLS bug.
36727
36728 2010-01-31  Richard Guenther  <rguenther@suse.de>
36729
36730         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
36731         conservatively correct.
36732
36733 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36734
36735         PR target/42850
36736         Revert:
36737         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36738
36739         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36740
36741 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
36742
36743         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
36744
36745 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
36746
36747         * config.gcc: Adjust order of makefile fragments for mingw targets.
36748
36749 2010-01-31  Richard Guenther  <rguenther@suse.de>
36750
36751         PR middle-end/42898
36752         * gimplify.c (gimplify_init_constructor): For volatile LHS
36753         initialize a temporary.
36754
36755 2010-01-31  Matthias Klose  <doko@ubuntu.com>
36756
36757         * configure.ac: Fix __stack_chk_fail check for cross builds configured
36758         --with-headers
36759         * configure: Regenerate.
36760
36761 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
36762
36763         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
36764         the same alias set and their sizes different constantness.
36765         (aliasing_component_refs_p): Revert 2009-10-24 change.
36766
36767 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36768
36769         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
36770         unused.
36771
36772 2010-01-29  Richard Guenther  <rguenther@suse.de>
36773
36774         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
36775         Assert we successfully updated the call.
36776
36777 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
36778
36779         PR rtl-optimization/42889
36780         * df.h (df_set_bb_dirty_nonlr): New prototype.
36781         * df-core.c (df_set_bb_dirty_nonlr): New function.
36782         * df-scan.c (df_insn_rescan): Call it instead of
36783         df_set_bb_dirty for DEBUG_INSNs.
36784
36785 2010-01-29  Richard Guenther  <rguenther@suse.de>
36786
36787         PR middle-end/37448
36788         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
36789         quadratic behavior in most cases.
36790
36791 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
36792
36793         PR target/42891
36794         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
36795         in the call to gen_x86_movsicc_0_m1.
36796
36797 2010-01-28  Richard Guenther  <rguenther@suse.de>
36798
36799         PR tree-optimization/42871
36800         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
36801
36802 2010-01-28  Richard Guenther  <rguenther@suse.de>
36803
36804         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
36805         into call arguments.
36806
36807 2010-01-28  Richard Guenther  <rguenther@suse.de>
36808
36809         PR middle-end/42883
36810         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
36811         the forwarder if the destination is an EH landing pad.
36812
36813 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
36814
36815         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
36816         block list passed to gimple_duplicate_sese_tail.
36817         (parallelize_loops): Avoid parallelization when the function
36818         has_nonlocal_label.
36819         Avoid parallelization when the preheader is IRREDUCIBLE.
36820         Try to optimize when estimated_loop_iterations_int is unresolved.
36821         Add the loop's location to the dump file.
36822         * tree-cfg.c (add_phi_args_after_redirect): Remove.
36823         (gimple_duplicate_sese_tail): Remove the check for the latch.
36824         Redirect nexits to the exit block.
36825         Remove handling of the incoming edges to the latch.
36826         Redirect the backedge from the copied latch to the exit bb.
36827
36828 2010-01-28  Michael Matz  <matz@suse.de>
36829
36830         PR target/42881
36831         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
36832         Wrap force_reg into a sequence, emit it before user.
36833
36834 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
36835
36836         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
36837         (arm_rev): New.
36838         (arm_legacy_rev): Likewise.
36839         (thumb_legacy_rev): Likewise.
36840
36841 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36842
36843         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
36844         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
36845         on MEM's address failed, try avoid_constant_pool_reference and
36846         recurse if it returned something different.
36847         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
36848         address, try avoid_constant_pool_reference and recurse if it
36849         returned something different.
36850         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
36851         address and avoid_constant_pool_reference returned something
36852         different, don't set have_address.
36853
36854 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
36855
36856         PR debug/42861
36857         * var-tracking.c (val_store): Add modified argument, obey it.
36858         Adjust callers.
36859         (count_uses): Move down logging of main.
36860         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
36861         don't need resolution.
36862         (emit_notes_in_bb): Likewise.
36863
36864 2010-01-27  Richard Guenther  <rguenther@suse.de>
36865
36866         PR middle-end/42878
36867         * tree-inline.c (remap_decl): Delay remapping of SSA name
36868         default definitions until we need them.
36869
36870 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
36871
36872         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
36873         (rs6000_delegitimize_address): New function.
36874
36875         * config/s390/s390.c (s390_delegitimize_address): Call
36876         delegitimize_mem_from_attrs.
36877
36878         PR middle-end/42874
36879         * tree-inline.c (cannot_copy_type_1): Removed.
36880         (copy_forbidden): Don't forbid copying of functions containing
36881         records/unions with variable length fields.
36882
36883 2010-01-27  Christian Bruel  <christian.bruel@st.com>
36884
36885         Revert:
36886         PR target/42841
36887         * config/sh/sh.c (find_barrier): Increase length for non delayed
36888         conditional branches.
36889
36890 2010-01-27  Matthias Klose  <doko@ubuntu.com>
36891
36892         * configure.ac (gnu-unique-object): Fix ldd version check.
36893         * configure: Regenerate.
36894
36895 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36896
36897         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
36898         HAVE_GNU_AS value.
36899         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
36900         Test for HAVE_GNU_AS value.
36901
36902 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36903
36904         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
36905         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
36906         INT64_TYPE): Define.
36907         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
36908         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
36909         INT_LEAST64_TYPE): Define.
36910         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
36911         UINT_LEAST64_TYPE): Define.
36912         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
36913         INT_FAST64_TYPE): Define.
36914         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
36915         UINT_FAST64_TYPE): Define.
36916         (INTMAX_TYPE, UINTMAX_TYPE): Define.
36917         (INTPTR_TYPE, UINTPTR_TYPE): Define.
36918         (SIG_ATOMIC_TYPE): Define.
36919
36920 2010-01-26  Richard Guenther  <rguenther@suse.de>
36921
36922         * df-scan.c (df_scan_set_bb_info): Remove assert.
36923         (df_insn_rescan_debug_internal): Merge asserts.
36924         (df_install_ref): Likewise.
36925         (df_mark_reg): Use bitmap_set_range.
36926         (df_hard_reg_used_p): Remove assert.
36927         (df_hard_reg_used_count): Likewise.
36928
36929 2010-01-26  Richard Guenther  <rguenther@suse.de>
36930
36931         PR rtl-optimization/42685
36932         * web.c (web_main): Ignore DEBUG_INSNs.
36933
36934 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
36935
36936         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
36937
36938         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
36939         Fix types of fndecl and arglist parameters.
36940
36941 2010-01-26  Richard Guenther  <rguenther@suse.de>
36942
36943         PR middle-end/42806
36944         * tree-eh.c (unsplit_eh): Skip debug insns.
36945
36946 2010-01-26  Richard Guenther  <rguenther@suse.de>
36947
36948         PR tree-optimization/42250
36949         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
36950
36951 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
36952
36953         PR fortran/42866
36954         * omp-low.c (expand_omp_sections): Only use single_pred if
36955         l2_bb is single_pred_p.
36956
36957 2010-01-25  Christian Bruel  <christian.bruel@st.com>
36958
36959         PR target/42841
36960         * config/sh/sh.c (find_barrier): Increase length for non delayed
36961         conditional branches.
36962         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
36963
36964 2010-01-24  David S. Miller  <davem@davemloft.net>
36965
36966         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
36967         define if not using GAS.
36968         * config/sparc/sparc.c (sparc_elf_asm_named_section):
36969         Likewise.  Delete SECTION_MERGE code, which is only applicable
36970         when using GAS.
36971
36972 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
36973
36974         PR c++/42748
36975         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
36976         mangling of va_list in system headers.
36977
36978 2010-01-23  Toon Moene  <toon@moene.org>
36979
36980         * tree-predcom.c (combine_chains): Return NULL, not false.
36981
36982 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
36983
36984         * tree-loop-distribution.c (distribute_loop): Fix declaration and
36985         initialization of variable res to agree with return type.
36986
36987 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
36988
36989         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
36990         * tree-sra.c: Add include of expr.h.
36991
36992 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
36993
36994         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
36995         insert the debug stmt on the single non-EH edge from the stmt.
36996
36997 2010-01-22  Richard Henderson  <rth@redhat.com>
36998
36999         PR tree-opt/42833
37000         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
37001         the RHS until after generate_subtree_copies has insertted its
37002         code before the current statement.
37003
37004 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
37005
37006         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
37007
37008         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
37009
37010 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37011
37012         PR tree-optimization/42585
37013         * tree-sra.c (struct access): New field grp_total_scalarization.
37014         (dump_access): Dump the new field.
37015         (should_scalarize_away_bitmap): New variable.
37016         (cannot_scalarize_away_bitmap): Likewise.
37017         (sra_initialize): Allocate new bitmaps.
37018         (sra_deinitialize): Free new bitmaps.
37019         (create_access_1): New function.
37020         (create_access): Parts moved to create_access_1.
37021         (type_consists_of_records_p): New function.
37022         (completely_scalarize_record): Likewise.
37023         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
37024         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
37025         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
37026         access.
37027         (analyze_all_variable_accesses): Completely scalarize small eligible
37028         records.
37029
37030 2010-01-21  Martin Jambor  <mjambor@suse.cz>
37031
37032         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
37033
37034 2010-01-21  Andrew Haley  <aph@redhat.com>
37035
37036         * gcc.c (process_command): Move lang_specific_driver before
37037         setting cc_libexec_prefix.
37038
37039 2010-01-21  Richard Guenther  <rguenther@suse.de>
37040
37041         PR middle-end/19988
37042         * fold-const.c (negate_expr_p): Pretend only negative
37043         real constants are easily negatable.
37044
37045 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
37046             Jason Merrill  <jason@redhat.com>
37047
37048         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
37049         (TYPE_TRANSPARENT_AGGR): this, for union and record.
37050         * calls.c (initialize argument_information): Handle it.
37051         * c-common.c (handle_transparent_union_attribute): Use new name.
37052         * c-decl.c (finish_struct): Ditto.
37053         * c-typeck.c (type_lists_compatible_p): Ditto.
37054         (convert_for_assignment): Use new name and also handle record.
37055         * function.c (aggregate_value_p): Handle it.
37056         (pass_by_reference): Ditto.
37057         (assign_parm_data_types): Ditto.
37058         * print-tree.c (print_node): Ditto.
37059         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
37060         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
37061         * tree.c (first_field): New fn.
37062
37063 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
37064
37065         PR target/42818
37066         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
37067         even when linking statically, for now.
37068
37069 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37070
37071         PR debug/42715
37072         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
37073         without a cselib val.
37074         (count_uses): Accept MO_VAL_SET with no val on stores.
37075         (add_stores): Likewise.
37076
37077 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37078
37079         * var-tracking.c (check_value_val): Add a compile time assertion.
37080         (dv_is_decl_p): Simplify.
37081         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
37082         gcc_assert if ENABLE_CHECKING.
37083
37084 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
37085
37086         PR debug/42782
37087         * var-tracking.c: Include tree-flow.h.
37088         (mem_dies_at_call): New.
37089         (dataflow_set_preserve_mem_locs): Use it.
37090         (dataflow_set_remove_mem_locs): Likewise.
37091         (dump_var): Renamed from dump_variable.  Adjust all callers.
37092         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
37093         * Makefile.in (var-tracking.o): Adjust deps.
37094
37095 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
37096
37097         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
37098
37099 2010-01-20  Richard Guenther  <rguenther@suse.de>
37100
37101         PR tree-optimization/42717
37102         * tree-ssa-dce.c (get_live_post_dom): Remove.
37103         (forward_edge_to_pdom): Take an arbitrary edge to copy
37104         degenerate PHI args from.
37105         (remove_dead_stmt): Use the first post-dominator even if it
37106         does not contain live statements as redirection destination.
37107
37108 2010-01-20  Richard Guenther  <rguenther@suse.de>
37109
37110         * tree-inline.c (estimate_num_insns): Handle EH builtins.
37111
37112 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37113
37114         * sel-sched.c (create_speculation_check): Remove set but not used
37115         variable twin.
37116         (try_transformation_cache): Remove set but not used variable ds.
37117         (calculate_privileged_insns): Remove set but not used variables
37118         cur_insn and min_spec_insn.
37119         (find_best_expr): Remove set but not used variable avail_n.
37120         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
37121         variable e.
37122         * cgraphunit.c (assemble_thunk): Remove set but not used variable
37123         false_label.
37124         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
37125         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
37126         new_scop_exit_edge.
37127
37128 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
37129
37130         PR bootstrap/42786
37131         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
37132         cpu types.  Add support for *-sse3 cpu types.
37133         (x86_64-*-*): Ditto.
37134
37135 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37136
37137         PR middle-end/42803
37138         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
37139         argument, call initializer_constant_valid_p_1 instead of
37140         initializer_constant_valid_p, pass CACHE to it, return NULL
37141         immediately if first call returns NULL.
37142         (initializer_constant_valid_p_1): New function.
37143         (initializer_constant_valid_p): Use it.
37144
37145 2010-01-20  Thomas Quinot  <quinot@adacore.com>
37146
37147         * tree.def (PLACEHOLDER_EXPR): Fix comment.
37148
37149 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
37150
37151         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
37152         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
37153         (loc_list_from_tree): Don't handle unsigned division.  Handle
37154         signed modulo using DW_OP_{over,over,div,mul,minus}.
37155         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
37156         modulo instead of signed.
37157
37158 2010-01-20  DJ Delorie  <dj@redhat.com>
37159
37160         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
37161         (Fpa): Pass it
37162         (h8300_emit_stack_adjustment): Propogate it.
37163         (push): Pass it.
37164         (h8300_expand_prologue): Likewise.
37165         (h8300_expand_epilogue): Likewise.
37166
37167 2010-01-19  Michael Matz  <matz@suse.de>
37168
37169         PR tree-optimization/41783
37170         * tree-data-ref.c (toplevel): Include flags.h.
37171         (dump_data_dependence_relation):  Also dump the inputs if the
37172         result will be unknown.
37173         (split_constant_offset_1): Look through some conversions.
37174         * tree-predcom.c (determine_roots_comp): Restart a new chain if
37175         the offset from last element is too large.
37176         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
37177         (reassociate_to_the_same_stmt): Handle vector registers.
37178         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
37179         (e.g. conversions).
37180         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
37181         wide_prolog_niters argument, emit widening instructions.
37182         (vect_do_peeling_for_alignment): Adjust caller, use widened
37183         variant of the iteration cound.
37184         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
37185
37186 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37187
37188         PR target/38697
37189         * config/arm/neon-testgen.m (emit_automatics): New parameter
37190         features. Adjust for Fixed_return_reg feature.
37191         (test_intrinsic): Call emit_automatics with new feature.
37192         * config/arm/neon.ml: Update copyright years.
37193         (features): New Fixed_return_reg feature.
37194         (ops): Update feature for Vget_low.
37195
37196 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
37197
37198         PR tree-optimization/42719
37199         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
37200         stmt uses.
37201
37202         PR debug/42728
37203         * fwprop.c (all_uses_available_at): Return false if def_set dest
37204         is a REG that is used in def_insn.
37205
37206 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
37207
37208         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
37209
37210         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
37211         Add argument names.
37212
37213         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
37214
37215         * target.h (struct gcc_target) <secondary_reload>: Change type
37216         of last argument to secondary_reload_info *.
37217
37218 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
37219
37220         PR target/42774
37221         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
37222         memory references with unaligned offsets.  Remove CQImode handling.
37223         (unaligned_memory_operand): Return 1 for memory references with
37224         unaligned offsets.  Remove CQImode handling.
37225
37226 2010-01-18  Richard Guenther  <rguenther@suse.de>
37227
37228         PR middle-end/39954
37229         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
37230         builtin calls.
37231
37232 2010-01-18  Richard Guenther  <rguenther@suse.de>
37233
37234         PR tree-optimization/42781
37235         * tree-ssa-structalias.c (find_what_var_points_to): Skip
37236         restrict processing only if the original variable was artificial.
37237
37238 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
37239
37240         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
37241         find number of popped argument bytes.
37242
37243         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
37244         Fix the text that describes the return value for invalid insns.
37245
37246         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
37247
37248         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
37249         Clarify what 'cost of the -dependence' is.  Fix quoting.
37250
37251         * toplev.c (default_get_pch_validity): Rename argument to "sz".
37252         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
37253
37254 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
37255
37256         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
37257         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
37258
37259 2010-01-17  Richard Guenther  <rguenther@suse.de>
37260
37261         PR middle-end/42248
37262         * function.c (split_complex_args): Take a VEC to modify.
37263         (assign_parms_augmented_arg_list): Build a VEC instead of
37264         a chain of PARM_DECLs.
37265         (assign_parms_unsplit_complex): Take a VEC of arguments.
37266         Do not fixup unmodified parms.
37267         (assign_parms): Deal with the VEC.
37268         (gimplify_parameters): Likewise.
37269
37270 2010-01-17  Richard Guenther  <rguenther@suse.de>
37271
37272         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
37273         node existence check.
37274         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
37275         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
37276         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
37277         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
37278         (gimple_execute_on_growing_pred): Likewise.
37279
37280 2010-01-17  Richard Guenther  <rguenther@suse.de>
37281
37282         PR tree-optimization/42773
37283         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
37284         (compute_antic_aux): Likewise.
37285         (compute_partial_antic_aux): Likewise.
37286
37287 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
37288
37289         PR debug/42767
37290         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
37291         and US_TRUNCATE.
37292
37293 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
37294
37295         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
37296         appearance.
37297
37298         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
37299         Fix markup for strict argument.
37300
37301         (TARGET_SCHED_REORDER2): Fix argument types.
37302
37303         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
37304         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
37305
37306         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
37307         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
37308
37309         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
37310         Add argument name.
37311
37312         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
37313         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
37314         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
37315         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
37316         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
37317
37318         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
37319
37320         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
37321
37322         (TARGET_ASM_RELOC_RW_MASK): Add return type.
37323         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
37324
37325         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
37326
37327         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
37328         Use prototype.
37329
37330         (TARGET_ASM_NAMED_SECTION): Fix argument list.
37331
37332         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
37333         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
37334
37335         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
37336
37337         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
37338
37339         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
37340         referring to it.  Fix language.
37341
37342         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
37343
37344         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
37345
37346         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
37347
37348         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
37349
37350         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
37351         '@var{stream}.  Remove stray 'and'.
37352
37353         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
37354
37355         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
37356
37357         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
37358
37359         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
37360         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
37361
37362         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
37363         Fix description of return value.
37364         Rename argument "sz" to "len."
37365
37366         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
37367         Clarify meaning of 'true' return value.
37368
37369         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
37370
37371         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
37372         rep_mode versus mode_rep.
37373
37374         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
37375
37376         (TARGET_BUILTIN_DECL): Fix name.
37377
37378         (TARGET_COMMUTATIVE_P): Fix type of first argument.
37379
37380         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
37381
37382         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
37383
37384         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
37385
37386         (TARGET_RELAXED_ORDERING): Use @deftypevr.
37387
37388         (TARGET_GET_DRAP_RTX): Note that this is a hook.
37389         Clarify language.
37390
37391         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
37392         Rename argument tm_fn to md_fn.
37393
37394         (TARGET_OPTION_PRINT): Fix argument list.
37395
37396 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
37397
37398         PR target/42664
37399         * config/i386/i386.c (ix86_fixup_binary_operands):
37400         Revert FMA4 fixup of operands.
37401
37402 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37403
37404         PR other/42525
37405         * Makefile.in (write_entries_to_file, install-plugin):
37406         Use \012 instead of \n with tr.
37407
37408 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
37409
37410         * configure.ac (HAVE_AS_REF): New C macro.
37411         * configure: Regenerate.
37412         * config.in: Likewise.
37413         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
37414         if HAVE_AS_REF.
37415         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
37416         if HAVE_AS_REF.
37417
37418 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
37419
37420         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
37421
37422         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
37423
37424         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
37425
37426         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
37427
37428         (TARGET_IN_SMALL_DATA_P): Fix argument type.
37429
37430         (TARGET_BINDS_LOCAL_P): Fix argument type.
37431
37432         (TARGET_ASM_FILE_END): Use prototype.
37433
37434         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
37435
37436         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
37437
37438         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
37439
37440         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
37441
37442         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
37443         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
37444
37445         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
37446         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
37447
37448         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
37449         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
37450         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
37451         (TARGET_ADDR_SPACE_CONVERT): Likewise.
37452
37453         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
37454
37455         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
37456
37457         (TARGET_INIT_BUILTINS): Use prototype.
37458
37459         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
37460         Put 'const char *' in braces.  Fix parameter types.
37461         (TARGET_INVALID_CONVERSION): Fix parameter types.
37462         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
37463         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
37464
37465         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
37466         Fix argument type.
37467
37468         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
37469
37470         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
37471
37472 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
37473
37474         * doc/tm.texi (TARGET_HELP): Fix return type.
37475
37476         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
37477         in braces.  Fix argument types.
37478
37479         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
37480
37481         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
37482
37483         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
37484
37485         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
37486         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
37487
37488         (TARGET_MANGLE_TYPE): Fix argument types.
37489
37490         (TARGET_IRA_COVER_CLASSES): Use prototype.
37491
37492         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
37493
37494         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
37495
37496         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
37497
37498         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
37499
37500         (TARGET_CALLEE_COPIES): Fix argument types.
37501
37502         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
37503
37504         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
37505
37506         (TARGET_FUNCTION_VALUE): Fix argument types.
37507
37508         (TARGET_RETURN_IN_MSB): Fix argument type.
37509
37510         (TARGET_RETURN_IN_MEMORY): Fix argument types.
37511
37512         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
37513
37514         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
37515
37516         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
37517         agree with return type.
37518
37519         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
37520
37521 2010-01-15  Jing Yu  <jingyu@google.com>
37522
37523         PR rtl-optimization/42691
37524         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
37525         a pseudo to a constant and are merged, and adjust comments.
37526
37527 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
37528
37529         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
37530
37531 2010-01-15  Richard Guenther  <rguenther@suse.de>
37532
37533         PR middle-end/42739
37534         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
37535         labels of computed or non-local gotos to the destination.
37536         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
37537         landing pad label is the first label.
37538
37539 2010-01-15  Richard Guenther  <rguenther@suse.de>
37540
37541         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
37542
37543 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
37544
37545         PR target/42747
37546         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
37547         to allow generation of the xssqrtdp instruction on power7.
37548         (sqrtdf2_fpr): Ditto.
37549
37550 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37551
37552         PR middle-end/42674
37553         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
37554         functions with noreturn attribute.
37555
37556         PR c++/42608
37557         * varasm.c (declare_weak): Add weak attribute to decl if it
37558         doesn't have one already.
37559         (assemble_external): Only add decls to weak_decls if they also
37560         have weak attribute.
37561
37562 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
37563
37564         * var-tracking.c (var_reg_delete): Don't delete the association
37565         between REGs and values or one-part variables if the register
37566         isn't clobbered.
37567
37568 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37569
37570         PR debug/42657
37571         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
37572         because its first operand is a non-localized variable.
37573
37574 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37575
37576         PR tree-optimization/42706
37577         * tree-sra.c (encountered_recursive_call): New variable.
37578         (encountered_unchangable_recursive_call): Likewise.
37579         (sra_initialize): Initialize both new variables.
37580         (callsite_has_enough_arguments_p): New function.
37581         (scan_function): Call decl and flags check only for IPA-SRA, check
37582         whether there is a recursive call and whether it has enough arguments.
37583         (all_callers_have_enough_arguments_p): New function.
37584         (convert_callers): Look for recursive calls only when
37585         encountered_recursive_call is set.
37586         (ipa_early_sra): Bail out either if
37587         !all_callers_have_enough_arguments_p or
37588         encountered_unchangable_recursive_call.
37589
37590 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37591
37592         * sel-sched.c: Add 2010 to copyright years.
37593         * sel-sched-ir.c: Likewise.
37594         * sel-sched-ir.h: Likewise.
37595
37596 2010-01-14  Martin Jambor  <mjambor@suse.cz>
37597
37598         PR tree-optimization/42714
37599         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
37600         constructors specially.
37601
37602 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37603
37604         * config/i386/drivers-i386.c (detect_caches_intel):
37605         Add l2sizekb parameter and fill in.
37606         (host_detect_local_cpu): Add l2sizekb, fill in.
37607         Add Atom small cache heuristic.
37608
37609 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37610
37611         * config/i386/drivers-i386.c (detect_caches_cpuid4):
37612         Add level3 parameter and fill in.
37613         (detect_caches_intel): Handle level3 cache.
37614
37615 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37616
37617         * config/i386/drivers-i386.c (host_detect_local_cpu):
37618         Fix core duo detection.
37619
37620 2010-01-14  Andi Kleen  <ak@linux.intel.com>
37621
37622         * config/i386/drivers-i386.c (host_detect_local_cpu):
37623         Fix Atom detection.
37624
37625 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37626
37627         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
37628         (rs6000_variable_issue_1): this.  Use...
37629         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
37630
37631 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37632
37633         * sel-sched-ir.c (sel_restore_other_notes): Rename to
37634         sel_restore_notes.  Update all callers.  Call reemit_notes
37635         for all insns.
37636
37637 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37638
37639         PR rtl-optimization/42246
37640         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
37641         loops.
37642
37643 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37644
37645         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
37646         all successors is the same as number of successors in current region.
37647
37648 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37649
37650         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
37651         to rename is not separable.  Otherwise check that its LHS is not NULL.
37652
37653 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37654
37655         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
37656
37657 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37658
37659         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
37660         available registers when failed to discover LHS register class.
37661         Fix indentation.  Update comment.
37662
37663 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37664             Alexander Monakov  <amonakov@ispras.ru>
37665
37666         PR rtl-optimization/42389
37667         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
37668         to can_issue_more.
37669         (advance_state_on_fence): Likewise.
37670         (sel_target_adjust_priority): Print debug output only when
37671         sched_verbose >= 4, not 2.
37672         (get_expr_cost): Do not issue all unique insns on the next cycle.
37673         (fill_insns): Initialize can_issue_more from the value saved
37674         with the fence.
37675         * sel-sched-ir.c (flist_add): New parameter issue_more.
37676         Init FENCE_ISSUE_MORE with it.
37677         (merge_fences): Likewise.
37678         (init_fences): Update call to flist_add.
37679         (add_to_fences, add_clean_fence_to_fences)
37680         (add_dirty_fence_to_fences): Likewise.
37681         (move_fence_to_fences): Update call to merge_fences.
37682         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
37683         sched groups.
37684         * sel-sched-ir.h (struct _fence): New field issue_more.
37685         (FENCE_ISSUE_MORE): New accessor macro.
37686
37687 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37688
37689         PR rtl-optimization/42388
37690         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
37691         that have no predecessors nor successors.  Do not call move_bb_info
37692         for empty blocks outside of current region.
37693
37694 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37695
37696         PR rtl-optimization/42294
37697         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
37698         * sel-sched.c (move_exprs_to_boundary): Transitively add all
37699         originators' originators.
37700
37701 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
37702
37703         PR rtl-optimization/39453
37704         PR rtl-optimization/42246
37705         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
37706         for pipelining_p.
37707         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
37708
37709 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37710             Alexander Monakov  <amonakov@ispras.ru>
37711
37712         PR middle-end/42245
37713         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
37714         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
37715         argument.  Update all callers.
37716         (tidy_control_flow): ... and here.  Recompute topological order
37717         of basic blocks in region if necessary.
37718         (sel_redirect_edge_and_branch): Change return type.  Return true
37719         if topological order might have been invalidated.
37720         (purge_empty_blocks): Export and move from...
37721         * sel-sched.c (purge_empty_blocks): ... here.
37722         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
37723         (maybe_tidy_empty_bb): Delete prototype.
37724         (purge_empty_blocks): Declare.
37725
37726 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
37727
37728         PR rtl-optimization/42249
37729         * sel-sched.c (try_replace_dest_reg): When chosen register
37730         and original register is the same, do not bail out early, but
37731         still check all original insns for validity of replacing destination
37732         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
37733         in this case.
37734
37735 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
37736
37737         PR c/42721
37738         Port from no-undefined-overflow branch:
37739         2009-03-09  Richard Guenther  <rguenther@suse.de>
37740
37741         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
37742
37743 2010-01-14  Richard Guenther  <rguenther@suse.de>
37744
37745         PR lto/42665
37746         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
37747
37748 2010-01-14  Ira Rosen  <irar@il.ibm.com>
37749
37750         PR tree-optimization/42709
37751         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
37752         as scalar type in creation of constant vector operand.
37753
37754 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37755
37756         PR testsuite/42414
37757         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
37758         (check-parallel-%): Match `testsuite' directory component only
37759         at the end.
37760
37761 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
37762
37763         PR translation/39521
37764         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
37765         strings with _().
37766
37767 2010-01-13  Richard Guenther  <rguenther@suse.de>
37768
37769         PR tree-optimization/42730
37770         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
37771         offset zero.
37772
37773 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
37774
37775         PR target/pr42542
37776         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
37777         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
37778         them signed.
37779
37780 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
37781
37782         * config/bfin/libgcc-bfin.ver: Regenerate based on current
37783         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
37784         ___umulsi3_highpart.
37785
37786         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
37787         rather than schedule_insns if the pass is enabled.
37788
37789 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37790
37791         PR tree-optimization/42704
37792         * tree-sra.c (sra_modify_assign): Do not delete assignments to
37793         SSA_NAMEs.
37794
37795 2010-01-13  Martin Jambor  <mjambor@suse.cz>
37796
37797         PR tree-optimization/42703
37798         * tree-sra.c (analyze_access_subtree): Check that we can build a
37799         reference to the original data within the aggregate.
37800
37801 2010-01-13  Richard Guenther  <rguenther@suse.de>
37802
37803         PR tree-optimization/42705
37804         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
37805
37806 2010-01-13  Richard Guenther  <rguenther@suse.de>
37807
37808         PR middle-end/42716
37809         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
37810
37811 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37812
37813         PR debug/41371
37814         * var-tracking.c (values_to_unmark): New variable.
37815         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37816         values_to_unmark vector.  Moved body to...
37817         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37818         instead queue it into values_to_unmark vector.
37819         (vt_find_locations): Free values_to_unmark vector.
37820
37821 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
37822
37823         * config/s390/s390.c (override_options): Set
37824         default of max-pending-list-length to 256
37825
37826 2010-01-13  Richard Guenther  <rguenther@suse.de>
37827
37828         PR lto/42678
37829         * tree-pass.h (PROP_gimple_lcx): New.
37830         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
37831         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
37832         before the final cleanup_eh.
37833         (dump_properties): Dump PROP_gimple_lcx.
37834         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
37835         (tree_lower_complex_O0): Remove.
37836         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
37837         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
37838         tree_lower_complex, schedule TODO_update_ssa.
37839         * lto-streamer-out.c (output_function): Stream the functions
37840         properties.
37841         * lto-streamer-in.c (input_function): Likewise.
37842         (lto_read_body): Do not override them here.
37843
37844 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
37845
37846         PR c/42708
37847         * c-typeck.c (build_c_cast): Fold value cast to union type before
37848         wrapping it in a CONSTRUCTOR.
37849
37850 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37851
37852         PR rtl-optimization/42699
37853         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
37854         involved.
37855
37856 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37857
37858         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37859         SUBTARGET_WARN_UNUSED_SPEC): Move ...
37860         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
37861         SUBTARGET_WARN_UNUSED_SPEC): ... here
37862         * config/mips/iris5.h (LIBGCC_SPEC): Define.
37863
37864 2010-01-12  Julian Brown  <julian@codesourcery.com>
37865
37866         * config/arm/neon-schedgen.ml (Utils): Don't try to
37867         open missing module.
37868         (find_with_result): New.
37869
37870 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
37871
37872         PR debug/42662
37873         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
37874         sharing when canonicalizing ({lt,ge}u (plus a b) b).
37875
37876         PR tree-optimization/42645
37877         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
37878         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
37879         decl_map, set processing_debug_stmt to -1 and return name without
37880         any remapping.
37881
37882 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
37883
37884         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
37885         binutils version, and reword target configuration description.
37886
37887 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
37888
37889         * config/avr/avr.h (LINKER_NAME): Remove.
37890
37891 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
37892
37893         PR target/42416
37894         * config/rs6000/rs6000.c (rs6000_override_options): On targets
37895         that support VSX, warn for -mno-altivec if vsx is not disabled,
37896         and disable vsx.
37897
37898 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
37899             Shujing Zhao  <pearly.zhao@oracle.com>
37900
37901         PR translation/42469
37902         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
37903         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
37904         character between option name and help text.
37905         * c.opt (imultilib): Likewise.
37906
37907 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
37908
37909         * lto-streamer-out.c (output_unreferenced_globals): Output static
37910         variables.
37911
37912 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
37913
37914         PR rtl-optimization/42621
37915         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
37916         optimizing for size.
37917         (duplicate_computed_gotos): Remove now-redundant check.
37918
37919 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
37920
37921         PR target/37454
37922         * configure.ac: Save and restore LDFLAGS and LIBS
37923         * configure: Regenerate.
37924
37925 2010-01-10  Richard Guenther  <rguenther@suse.de>
37926
37927         PR middle-end/42667
37928         * builtins.c (fold_builtin_strlen): Add type argument and
37929         convert the resulting length to it.
37930         (fold_builtin_1): Adjust.
37931
37932 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
37933
37934         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
37935         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
37936         1 insn.
37937         (num_insns_constant_wide): Adjust for that change.
37938
37939 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37940
37941         PR debug/42631
37942         * web.c (union_defs): Add used argument, to combine uses of
37943         uninitialized regs.
37944         (entry_register): Adjust type and tests of used argument.
37945         (web_main): Widen used for new use.  Pass it to union_defs.
37946         * df.h (union_defs): Adjust prototype.
37947
37948 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37949
37950         PR debug/42630
37951         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
37952         uses in new incoming argument.  Free body.
37953         (reset_debug_uses_in_loop): New.
37954         (analyze_insn_to_expand_var): Call the latter if the former found
37955         anything.  Fix whitespace.  Reject invalid dest overlaps before
37956         going through all insns in the loop.
37957
37958 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37959
37960         PR debug/42629
37961         * haifa-sched.c (dying_use_p): Debug insns don't count.
37962
37963 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37964
37965         PR middle-end/42363
37966         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
37967         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
37968         (verify_gimple_call): Reject LHS in noreturn calls.
37969
37970 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37971
37972         PR debug/42604
37973         PR debug/42395
37974         * tree-vect-loop-manip.c (adjust_info): New type.
37975         (adjust_vec): New pointer to vector.
37976         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
37977         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
37978         (slpeel_update_phis_for_duplicate_loop): Use them.
37979         (slpeel_update_phi_nodes_for_guard1): Likewise.
37980         (slpeel_update_phi_nodes_for_guard2): Likewise.
37981         (slpeel_tree_peel_loop_to_edge): Likewise.
37982         (vect_update_ivs_after_vectorizer): Likewise.
37983
37984 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37985
37986         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
37987         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
37988
37989 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
37990
37991         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
37992         bogus uninitialized warning.
37993
37994 2010-01-09  Richard Guenther  <rguenther@suse.de>
37995
37996         PR middle-end/42512
37997         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
37998         the evolution is compatible with the initial condition.
37999
38000 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
38001
38002         * gcc.c (process_command): Update copyright notice dates.
38003         * gcov.c (print_version): Likewise.
38004         * gcov-dump.c (print_version): Likewise.
38005         * mips-tfile.c (main): Likewise.
38006         * mips-tdump.c (main): Likewise.
38007
38008 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
38009
38010         PR target/41885
38011         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
38012         (rotlhi3): Delete.
38013         (rotlhi3_8): Delete.
38014         (rotlsi3): Delete.
38015         (rotlsi3_8): Delete.
38016         (rotlsi3_16): Delete.
38017         (rotlsi3_24): Delete.
38018         (rotl<mode>3): New.
38019         (*rotw<mode>3): New.
38020         (*rotb<mode>3): New.
38021         * config/avr/avr.c (avr_rotate_bytes): New function.
38022         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
38023
38024 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
38025
38026         PR target/37454
38027         * configure.ac: Modify -rdynamic check.
38028         * configure: Regenerate.
38029
38030 2010-01-08  DJ Delorie  <dj@redhat.com>
38031
38032         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
38033         register popping order.
38034
38035 2010-01-08  Richard Guenther  <rguenther@suse.de>
38036
38037         PR lto/42528
38038         * c.opt (fsigned-char): Also let LTO handle this option.
38039         (funsigned-char): Likewise.
38040
38041 2010-01-07  Richard Guenther  <rguenther@suse.de>
38042
38043         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
38044         (gimple_op): Likewise.
38045         (gimple_op_ptr): Likewise.
38046         (gimple_assign_set_lhs): Remove gcc_assert.
38047         (gimple_assign_set_rhs1): Likewise.
38048         (gimple_assign_set_rhs2): Likewise.
38049         (gimple_call_set_lhs): Likewise.
38050         (gimple_call_set_fn): Likewise.
38051         (gimple_call_set_fndecl): Likewise.
38052         (gimple_call_fndecl): Likewise.
38053         (gimple_call_return_type): Likewise.
38054         (gimple_call_set_chain): Likewise.
38055         (gimple_call_num_args): Likewise.
38056         (gimple_call_set_arg): Likewise.
38057         (gimple_cond_set_code): Likewise.
38058         (gimple_cond_set_lhs): Likewise.
38059         (gimple_cond_set_rhs): Likewise.
38060         (gimple_cond_set_true_label): Likewise.
38061         (gimple_cond_set_false_label): Likewise.
38062         (gimple_label_set_label): Likewise.
38063         (gimple_goto_set_dest): Likewise.
38064         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
38065         (gimple_debug_bind_get_value): Likewise.
38066         (gimple_debug_bind_get_value_ptr): Likewise.
38067         (gimple_debug_bind_set_var): Likewise.
38068         (gimple_debug_bind_set_value): Likewise.
38069         (gimple_debug_bind_reset_value): Likewise.
38070         (gimple_debug_bind_has_value_p): Likewise.
38071         (gimple_return_retval_ptr): Remove gcc_assert.
38072         (gimple_return_retval): Likewise.
38073         (gimple_return_set_retval): Likewise.
38074         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
38075         (safe_referenced_var_iterator): Remove.
38076         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
38077         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
38078         (fill_referenced_var_vec): Remove.
38079         (first_readonly_imm_use): Remove redundant gcc_assert.
38080         (phi_arg_index_from_use): Combine gcc_asserts.
38081         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
38082         (first_imm_use_stmt): Remove redundant gcc_assert.
38083         * tree-cfg.c (verify_gimple_call): Verify function and chain
38084         operands.  Verify arguments.
38085         (verify_types_in_gimple_stmt): Verify condition code and labels.
38086
38087 2010-01-07  Richard Guenther  <rguenther@suse.de>
38088
38089         PR tree-optimization/42641
38090         * sese.c (rename_map_elt_info): Use the SSA name version, do
38091         not hash pointers.
38092
38093 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
38094
38095         PR tree-optimization/42625
38096         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
38097         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
38098
38099 2010-01-07  Duncan Sands  <baldrick@free.fr>
38100
38101         * Makefile.in (PLUGIN_HEADERS): Add version.h.
38102
38103 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
38104
38105         PR target/42511
38106         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
38107         note itself is not function_invariant_p.
38108
38109 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
38110
38111         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
38112         Do not add the DF_NOTE problem.
38113         * store-motion.c (execute_rtl_store_motion): Likewise.
38114
38115 2010-01-07  Martin Jambor  <mjambor@suse.cz>
38116
38117         PR tree-optimization/42157
38118         * tree-sra.c (compare_access_positions): Stabilize sort if both
38119         accesses have integer types, return zero immediately if they are the
38120         same.
38121
38122 2010-01-06  Richard Henderson  <rth@redhat.com>
38123
38124         PR middle-end/41883
38125         * haifa-sched.c (add_to_note_list): Merge into ...
38126         (concat_note_lists): ... here, and ...
38127         (unlink_other_notes, rm_other_notes): Merge into...
38128         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
38129         NOTE_INSN_EPILOGUE_BEG.
38130
38131 2010-01-06  Richard Guenther  <rguenther@suse.de>
38132
38133         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
38134         not inline regular functions into always-inline functions.
38135
38136 2010-01-06  Nick Clifton  <nickc@redhat.com>
38137
38138         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
38139         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
38140         used together.
38141         (OVERRIDE_OPTIONS): Delete.
38142         (OPTIMIZATION_OPTIONS): Define.
38143         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
38144         * config/rx/rx.c (rx_handle_option): Issue an error message if
38145         -mcpu=rx200 and -fpu are used together.
38146         (rx_set_optimization_options): New function.  Issue an error
38147         message if an optimization attribute attempts to reset the FPU/
38148         math optimization pairing.
38149         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
38150         * config/rx/rx.opt: Set the default to 32-bit doubles.
38151         * config/rx/t-rx: Add multilibs for -nofpu option.
38152         * doc/invoke.texi: Update documentation of RX options.
38153
38154 2010-01-06  Richard Guenther  <rguenther@suse.de>
38155
38156         * tree-ssa-pre.c (name_to_id): New global.
38157         (alloc_expression_id): Simplify SSA name handling.
38158         (lookup_expression_id): Likewise.
38159         (init_pre): Zero name_to_id.
38160         (fini_pre): Free it.
38161
38162 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
38163
38164         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
38165
38166 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
38167
38168         PR target/42542
38169         * config/i386/sse.md (smaxv2di3): New.
38170         (umaxv2di3): Likewise.
38171         (sminv2di3): Likewise.
38172         (uminv2di3): Likewise.
38173
38174 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
38175
38176         PR target/42564
38177         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
38178         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
38179         (legitimize_tls_address): Likewise.
38180         (sparc_tls_referenced_p): Likewise.
38181         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
38182         and adjust calls to legitimize_pic_address.
38183         (legitimate_constant_p) Use sparc_tls_referenced_p.
38184         (legitimate_pic_operand_p): Likewise.
38185         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
38186         (sparc_tls_symbol_ref_1): Delete.
38187         (sparc_tls_referenced_p): Make static, recognize specific patterns.
38188         (legitimize_tls_address): Make static, handle CONST patterns.
38189         (legitimize_pic_address): Make static, remove unused parameter and
38190         adjust recursive calls.
38191         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
38192         and adjust call to legitimize_pic_address.
38193         (sparc_output_mi_thunk): Likewise.
38194
38195 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
38196             H.J. Lu  <hongjiu.lu@intel.com>
38197
38198         PR target/42542
38199         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
38200         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
38201         operands to make them signed.
38202
38203         Revert:
38204         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38205
38206         PR target/42542
38207         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38208         GTU to GT for V4SI and V2DI.
38209
38210         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38211         (umin<mode>3): Removed.
38212         (uminv8hi3): New.
38213         (uminv4si3): Likewise.
38214
38215 2010-01-05  Martin Jambor  <mjambor@suse.cz>
38216
38217         PR tree-optimization/42462
38218         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
38219         current_function_decl to helper functions and macros.
38220
38221 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38222
38223         PR bootstrap/41771
38224         * flags.h: Don't include real.h.
38225         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
38226         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
38227         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
38228         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
38229         * dominance.c: Update copyright.
38230         * gimple.c (walk_gimple_op): Remove inline.
38231         * tree-ssa-reassoc.c: Include real.h.
38232         * Makefile.in (FLAGS_H): Remove $(REAL_H).
38233         (tree-ssa-reassoc.o): Depend on $(REAL_H).
38234
38235 2010-01-05  Nick Clifton  <nickc@redhat.com>
38236
38237         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
38238         register to push into the stack frame when the accumulator has to
38239         be saved during interrupts.
38240
38241 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
38242
38243         * doc/invoke.texi: Remove the documentation about option
38244         -Wunreachable-code.
38245         * common.opt (Wunreachable-code):  Preserved for backward
38246         compatibility.
38247         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
38248         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
38249         the backward compatibility flag section.
38250
38251 2010-01-05  Richard Guenther  <rguenther@suse.de>
38252
38253         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
38254
38255 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
38256
38257         PR other/42611
38258         * cfgexpand.c (expand_one_var): Diagnose too large variables.
38259
38260         PR tree-optimization/42508
38261         * tree-sra.c (convert_callers): Check for recursive call
38262         by comparing cgraph nodes instead of decls.
38263         (modify_function): Call ipa_modify_formal_parameters also
38264         on all same_body aliases.
38265
38266         * cgraphunit.c (cgraph_materialize_all_clones): Compare
38267         cgraph nodes when checking for same_body aliases.
38268
38269 2010-01-05  Richard Guenther  <rguenther@suse.de>
38270
38271         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
38272         allocation and lookup.
38273         (get_or_alloc_expr_for_constant): Likewise.
38274         (phi_translate): Sink allocation.
38275
38276 2010-01-04  Richard Guenther  <rguenther@suse.de>
38277
38278         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
38279         a new entry only if needed.
38280         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
38281         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
38282         hashtable lookup.
38283         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
38284         the result array.
38285         (phi_translate): Handle CONSTANTs early.
38286
38287 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38288
38289         PR tree-optimization/42398
38290         * tree-sra.c (struct access): Removed flag grp_different_types.
38291         (dump_access): Do not dump the removed flag.
38292         (sort_and_splice_var_accesses): Do not set the removed flag.
38293         (sra_modify_expr): Check for type compatibility directly.
38294
38295 2010-01-04  Martin Jambor  <mjambor@suse.cz>
38296
38297         PR tree-optimization/42366
38298         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
38299         edges with variable number of parameters.
38300         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
38301         flag instead of asserting it.
38302         (ipa_read_node_info): Read uses_analysis_done flag.
38303
38304 2010-01-04  Richard Guenther  <rguenther@suse.de>
38305
38306         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
38307         iterative_hash_* as intended.
38308         (vn_reference_compute_hash): Likewise.  Simplify hashing
38309         SSA names.
38310         (vn_reference_lookup_2): Likewise.
38311         (vn_nary_op_compute_hash): Likewise.
38312         (vn_phi_compute_hash): Likewise.
38313         (expressions_equal_p): Remove strange code.
38314         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
38315         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
38316         (bitmap_insert_into_set_1): Take value-id as parameter.
38317         (add_to_value): Pass it.
38318         (bitmap_insert_into_set): Likewise.
38319         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
38320
38321 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
38322
38323         PR driver/42442
38324         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
38325         (do_self_spec): For switches with SWITCH_IGNORE set set also
38326         SWITCH_IGNORE_PERMANENTLY.
38327         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
38328         of SWITCH_IGNORE.
38329
38330 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
38331
38332         * lto-streamer-out.c (output_unreferenced_globals): Output the full
38333         tree of an unreferenced global var.
38334
38335 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38336
38337         PR target/42542
38338         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
38339         GTU to GT for V4SI and V2DI.
38340
38341         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
38342         (umin<mode>3): Removed.
38343         (uminv8hi3): New.
38344         (uminv4si3): Likewise.
38345
38346 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
38347
38348         PR lto/42581
38349         * collect2.c (main): Turn on trace in collect2 if -v is passed
38350         to gcc with LTO.
38351
38352 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
38353
38354         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
38355         description of expression operand.
38356
38357 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
38358
38359         * configure.ac: Add install-html to target_list for Make-hooks.
38360         * configure: Regenerate.
38361         * fortran/Make-lang.in (F95_HTMLFILES): New.
38362         (fortran.html): Use it.
38363         (fortran.install-html): New.
38364         * Makefile.in (install-html): Add lang.install-html.
38365         * java/Make-lang.in (JAVA_HTMLFILES): New.
38366         (java.html): Use it.
38367         (java.install-html): New.
38368         * objc/Make-lang.in (objc.install-html): New.
38369         * objcp/Make-lang.in (obj-c++.install-html): New.
38370         * cp/Make-lang.in (c++.install-html): New.
38371         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
38372         * lto/Make-lang.in (lto.install-html): New.
38373
38374 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38375
38376         PR lto/42520
38377         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
38378
38379 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38380
38381         PR rtl-optimization/41862
38382         * store-motion.c (store_killed_in_insn, compute_store_table,
38383         remove_reachable_equiv_notes, replace_store_insn,
38384         build_store_vectors): Ignore all DEBUG_INSNs.
38385
38386 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
38387
38388         PR lto/41564
38389         * common.opt: Add dumpdir.
38390
38391         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
38392         isn't specified.
38393         (option_map): Add --dumpdir.
38394
38395         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
38396
38397         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
38398
38399         * opts.c (decode_options): Try dump_dir_name first if
38400         dump_base_name isn't an absolute path.
38401         (common_handle_option): Handle OPT_dumpdir.
38402
38403         * toplev.c (dump_dir_name): New.
38404         (print_switch_values): Also ignore -dumpdir.
38405
38406         * toplev.h (dump_dir_name): New.
38407
38408 2010-01-03  Richard Guenther  <rguenther@suse.de>
38409
38410         PR tree-optimization/42589
38411         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
38412         double-word expansion of bswap32.
38413
38414 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
38415
38416         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
38417         with BLOCK_FOR_INSN.
38418         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
38419         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
38420         noce_process_if_block): Likewise.
38421         * gcse.c (compute_local_properties, insert_expr_in_table,
38422         insert_set_in_table, canon_list_insert, find_avail_set,
38423         pre_insert_copy_insn): Likewise.
38424
38425         * basic-block.h (BLOCK_NUM): Move from here...
38426         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
38427
38428 2010-01-03  Richard Guenther  <rguenther@suse.de>
38429
38430         PR tree-optimization/42438
38431         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
38432         contains_may_not_return_call flag.
38433         (BB_MAY_NOTRETURN): New.
38434         (valid_in_sets): Trapping nary operations are not valid
38435         in blocks that may not return.
38436         (insert_into_preds_of_block): Remove check for trapping expressions.
38437         (compute_avail): Compute also BB_MAY_NOTRETURN.
38438
38439 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
38440
38441         * doc/invoke.texi: Add 2010 to copyright years.
38442
38443 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
38444
38445         * config/sparc/sparc.c: Fix formatting nits.
38446
38447 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
38448             Alexander Monakov  <amonakov@ispras.ru>
38449
38450         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
38451
38452 2010-01-02  Richard Guenther  <rguenther@suse.de>
38453
38454         PR middle-end/42577
38455         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
38456         (simplify_switch_using_ranges): Mark to be removed edges
38457         as non-executable.
38458
38459 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
38460
38461         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
38462
38463         * collect2.c (scan_libraries): Add missing argument in call to
38464         scan_prog_file.
38465
38466 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
38467
38468         PR target/42448
38469         * config/alpha/predicates.md (aligned_memory_operand): Return false
38470         for CQImode.
38471         (unaligned_memory_operand): Return true for CQImode.
38472         * config/alpha/alpha.c (get_aligned_mem): Assert that location
38473         doesn not cross aligned SImode word boundary.
38474
38475 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
38476
38477         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
38478         Remove.
38479         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
38480         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
38481
38482 2010-01-02  Richard Guenther  <rguenther@suse.de>
38483
38484         PR lto/41597
38485         * toplev.c (compile_file): Emit LTO marker properly.  Change
38486         it to __gnu_lto_v1.
38487         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
38488
38489 2010-01-01  Richard Guenther  <rguenther@suse.de>
38490
38491         PR debug/42455
38492         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
38493
38494 2010-01-01  Richard Guenther  <rguenther@suse.de>
38495
38496         PR c/42570
38497         * c-decl.c (grokdeclarator): For zero-size arrays force
38498         structural equality checks as layout_type does.
38499
38500 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38501
38502         * builtins.c: Update copyright to 2010.
38503
38504 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
38505
38506         PR lto/42531
38507         * lto-streamer-out.c (produce_asm): Revert the last change.
38508         (copy_function): Likewise.
38509
38510         * lto-streamer.c (lto_get_section_name): Skip any leading
38511         asterisk in name.
38512
38513 2010-01-01  Richard Guenther  <rguenther@suse.de>
38514
38515         PR middle-end/42559
38516         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
38517         for LABEL_DECLs.
38518
38519 \f
38520 Copyright (C) 2010 Free Software Foundation, Inc.
38521
38522 Copying and distribution of this file, with or without modification,
38523 are permitted in any medium without royalty provided the copyright
38524 notice and this notice are preserved.